From 7ed4c83e0a0f990188e78699923f4f4879300f6e Mon Sep 17 00:00:00 2001 From: AWS SDK for Ruby Date: Thu, 31 Mar 2022 18:11:17 +0000 Subject: [PATCH] Updated API models and rebuilt service gems. --- README.md | 1 + apis/auditmanager/2017-07-25/docs-2.json | 4 +- apis/cloudcontrol/2021-09-30/api-2.json | 5 +- apis/cloudcontrol/2021-09-30/docs-2.json | 56 +- apis/databrew/2017-07-25/api-2.json | 3 +- apis/databrew/2017-07-25/docs-2.json | 6 +- apis/grafana/2020-08-18/api-2.json | 143 +- apis/grafana/2020-08-18/docs-2.json | 73 +- .../2022-03-31/api-2.json | 2764 +++++++++++ .../2022-03-31/docs-2.json | 1641 +++++++ .../2022-03-31/examples-1.json | 5 + .../2022-03-31/paginators-1.json | 70 + .../2022-03-31/smoke.json | 6 + .../2022-03-31/waiters-2.json | 5 + .../2019-12-02/api-2.json | 94 +- .../2019-12-02/docs-2.json | 87 +- .../2019-12-02/paginators-1.json | 6 + apis/workspaces/2015-04-08/api-2.json | 210 + apis/workspaces/2015-04-08/docs-2.json | 159 +- gems/aws-partitions/CHANGELOG.md | 5 + gems/aws-partitions/VERSION | 2 +- gems/aws-partitions/lib/aws-partitions.rb | 1 + gems/aws-partitions/partitions.json | 143 + gems/aws-sdk-auditmanager/CHANGELOG.md | 5 + gems/aws-sdk-auditmanager/VERSION | 2 +- .../lib/aws-sdk-auditmanager.rb | 2 +- .../lib/aws-sdk-auditmanager/client.rb | 93 +- gems/aws-sdk-cloudcontrolapi/CHANGELOG.md | 5 + gems/aws-sdk-cloudcontrolapi/VERSION | 2 +- .../lib/aws-sdk-cloudcontrolapi.rb | 2 +- .../lib/aws-sdk-cloudcontrolapi/client.rb | 44 +- .../lib/aws-sdk-cloudcontrolapi/types.rb | 92 +- gems/aws-sdk-gluedatabrew/CHANGELOG.md | 5 + gems/aws-sdk-gluedatabrew/VERSION | 2 +- .../lib/aws-sdk-gluedatabrew.rb | 2 +- .../lib/aws-sdk-gluedatabrew/client.rb | 10 +- .../lib/aws-sdk-gluedatabrew/types.rb | 10 +- gems/aws-sdk-managedgrafana/CHANGELOG.md | 5 + gems/aws-sdk-managedgrafana/VERSION | 2 +- .../lib/aws-sdk-managedgrafana.rb | 2 +- .../lib/aws-sdk-managedgrafana/client.rb | 153 +- .../lib/aws-sdk-managedgrafana/client_api.rb | 75 + .../lib/aws-sdk-managedgrafana/types.rb | 139 +- gems/aws-sdk-pinpointsmsvoicev2/CHANGELOG.md | 8 + gems/aws-sdk-pinpointsmsvoicev2/LICENSE.txt | 202 + gems/aws-sdk-pinpointsmsvoicev2/VERSION | 1 + .../aws-sdk-pinpointsmsvoicev2.gemspec | 32 + .../features/env.rb | 18 + .../features/smoke.feature | 11 + .../features/smoke_step_definitions.rb | 35 + .../features/step_definitions.rb | 8 + .../lib/aws-sdk-pinpointsmsvoicev2.rb | 54 + .../lib/aws-sdk-pinpointsmsvoicev2/client.rb | 3021 ++++++++++++ .../aws-sdk-pinpointsmsvoicev2/client_api.rb | 1652 +++++++ .../customizations.rb | 0 .../lib/aws-sdk-pinpointsmsvoicev2/errors.rb | 212 + .../aws-sdk-pinpointsmsvoicev2/resource.rb | 26 + .../lib/aws-sdk-pinpointsmsvoicev2/types.rb | 4130 +++++++++++++++++ .../lib/aws-sdk-pinpointsmsvoicev2/waiters.rb | 15 + .../spec/spec_helper.rb | 18 + gems/aws-sdk-resources/CHANGELOG.md | 5 + gems/aws-sdk-resources/VERSION | 2 +- .../aws-sdk-resources.gemspec | 1 + .../lib/aws-sdk-resources.rb | 1 + .../CHANGELOG.md | 5 + gems/aws-sdk-route53recoverycluster/VERSION | 2 +- .../lib/aws-sdk-route53recoverycluster.rb | 2 +- .../aws-sdk-route53recoverycluster/client.rb | 177 +- .../client_api.rb | 56 + .../aws-sdk-route53recoverycluster/errors.rb | 36 + .../aws-sdk-route53recoverycluster/types.rb | 166 +- gems/aws-sdk-workspaces/CHANGELOG.md | 5 + gems/aws-sdk-workspaces/VERSION | 2 +- .../lib/aws-sdk-workspaces.rb | 2 +- .../lib/aws-sdk-workspaces/client.rb | 283 +- .../lib/aws-sdk-workspaces/client_api.rb | 125 + .../lib/aws-sdk-workspaces/types.rb | 556 +++ services.json | 3 + 78 files changed, 16756 insertions(+), 257 deletions(-) create mode 100644 apis/pinpoint-sms-voice-v2/2022-03-31/api-2.json create mode 100644 apis/pinpoint-sms-voice-v2/2022-03-31/docs-2.json create mode 100644 apis/pinpoint-sms-voice-v2/2022-03-31/examples-1.json create mode 100644 apis/pinpoint-sms-voice-v2/2022-03-31/paginators-1.json create mode 100644 apis/pinpoint-sms-voice-v2/2022-03-31/smoke.json create mode 100644 apis/pinpoint-sms-voice-v2/2022-03-31/waiters-2.json create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/CHANGELOG.md create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/LICENSE.txt create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/VERSION create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/aws-sdk-pinpointsmsvoicev2.gemspec create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/features/env.rb create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/features/smoke.feature create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/features/smoke_step_definitions.rb create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/features/step_definitions.rb create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2.rb create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/client.rb create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/client_api.rb create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/customizations.rb create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/errors.rb create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/resource.rb create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/types.rb create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/waiters.rb create mode 100644 gems/aws-sdk-pinpointsmsvoicev2/spec/spec_helper.rb diff --git a/README.md b/README.md index a7a65a3b26a..cfb3e60d14b 100644 --- a/README.md +++ b/README.md @@ -528,6 +528,7 @@ RubyGems.org page under "LINKS" section. | Amazon Personalize Runtime | Aws::PersonalizeRuntime | aws-sdk-personalizeruntime | 2018-05-22 | | Amazon Pinpoint | Aws::Pinpoint | aws-sdk-pinpoint | 2016-12-01 | | Amazon Pinpoint Email Service | Aws::PinpointEmail | aws-sdk-pinpointemail | 2018-07-26 | +| Amazon Pinpoint SMS Voice V2 | Aws::PinpointSMSVoiceV2 | aws-sdk-pinpointsmsvoicev2 | 2022-03-31 | | Amazon Pinpoint SMS and Voice Service | Aws::PinpointSMSVoice | aws-sdk-pinpointsmsvoice | 2018-09-05 | | Amazon Polly | Aws::Polly | aws-sdk-polly | 2016-06-10 | | Amazon Prometheus Service | Aws::PrometheusService | aws-sdk-prometheusservice | 2020-08-01 | diff --git a/apis/auditmanager/2017-07-25/docs-2.json b/apis/auditmanager/2017-07-25/docs-2.json index e3d7bf3ee51..08010e49cb4 100644 --- a/apis/auditmanager/2017-07-25/docs-2.json +++ b/apis/auditmanager/2017-07-25/docs-2.json @@ -17,8 +17,8 @@ "DeleteAssessmentFrameworkShare": "

Deletes a share request for a custom framework in Audit Manager.

", "DeleteAssessmentReport": "

Deletes an assessment report from an assessment in Audit Manager.

", "DeleteControl": "

Deletes a custom control in Audit Manager.

", - "DeregisterAccount": "

Deregisters an account in Audit Manager.

", - "DeregisterOrganizationAdminAccount": "

Removes the specified member Amazon Web Services account as a delegated administrator for Audit Manager.

When you remove a delegated administrator from your Audit Manager settings, you continue to have access to the evidence that you previously collected under that account. This is also the case when you deregister a delegated administrator from Audit Manager. However, Audit Manager will stop collecting and attaching evidence to that delegated administrator account moving forward.

", + "DeregisterAccount": "

Deregisters an account in Audit Manager.

When you deregister your account from Audit Manager, your data isn’t deleted. If you want to delete your resource data, you must perform that task separately before you deregister your account. Either, you can do this in the Audit Manager console. Or, you can use one of the delete API operations that are provided by Audit Manager.

To delete your Audit Manager resource data, see the following instructions:

At this time, Audit Manager doesn't provide an option to delete evidence. All available delete operations are listed above.

", + "DeregisterOrganizationAdminAccount": "

Removes the specified Amazon Web Services account as a delegated administrator for Audit Manager.

When you remove a delegated administrator from your Audit Manager settings, you continue to have access to the evidence that you previously collected under that account. This is also the case when you deregister a delegated administrator from Organizations. However, Audit Manager will stop collecting and attaching evidence to that delegated administrator account moving forward.

When you deregister a delegated administrator account for Audit Manager, the data for that account isn’t deleted. If you want to delete resource data for a delegated administrator account, you must perform that task separately before you deregister the account. Either, you can do this in the Audit Manager console. Or, you can use one of the delete API operations that are provided by Audit Manager.

To delete your Audit Manager resource data, see the following instructions:

At this time, Audit Manager doesn't provide an option to delete evidence. All available delete operations are listed above.

", "DisassociateAssessmentReportEvidenceFolder": "

Disassociates an evidence folder from the specified assessment report in Audit Manager.

", "GetAccountStatus": "

Returns the registration status of an account in Audit Manager.

", "GetAssessment": "

Returns an assessment from Audit Manager.

", diff --git a/apis/cloudcontrol/2021-09-30/api-2.json b/apis/cloudcontrol/2021-09-30/api-2.json index c4eb4753a36..43cc8d9e10f 100644 --- a/apis/cloudcontrol/2021-09-30/api-2.json +++ b/apis/cloudcontrol/2021-09-30/api-2.json @@ -493,7 +493,6 @@ "type":"string", "max":65536, "min":1, - "pattern":"(.|\\s)*", "sensitive":true }, "PrivateTypeException":{ @@ -522,7 +521,6 @@ "type":"string", "max":16384, "min":1, - "pattern":"(.|\\s)*", "sensitive":true }, "RequestToken":{ @@ -596,8 +594,7 @@ }, "StatusMessage":{ "type":"string", - "max":1024, - "pattern":"(.|\\s)*" + "max":1024 }, "ThrottlingException":{ "type":"structure", diff --git a/apis/cloudcontrol/2021-09-30/docs-2.json b/apis/cloudcontrol/2021-09-30/docs-2.json index 98b481f8fbb..0e665d15857 100644 --- a/apis/cloudcontrol/2021-09-30/docs-2.json +++ b/apis/cloudcontrol/2021-09-30/docs-2.json @@ -1,15 +1,15 @@ { "version": "2.0", - "service": "

Use Amazon Web Services Cloud Control API to create, read, update, delete, and list (CRUD-L) your cloud resources that belong to a wide range of services--both Amazon Web Services and third-party. With the Cloud Control API standardized set of application programming interfaces (APIs), you can perform CRUD-L operations on any supported resources in your Amazon Web Services account. Using Cloud Control API, you won't have to generate code or scripts specific to each individual service responsible for those resources.

For more information about Amazon Web Services Cloud Control API, see the Amazon Web Services Cloud Control API User Guide.

", + "service": "

For more information about Amazon Web Services Cloud Control API, see the Amazon Web Services Cloud Control API User Guide.

", "operations": { - "CancelResourceRequest": "

Cancels the specified resource operation request. For more information, see Canceling resource operation requests in the Amazon Web Services Cloud Control API User Guide.

Only resource operations requests with a status of PENDING or IN_PROGRESS can be cancelled.

", + "CancelResourceRequest": "

Cancels the specified resource operation request. For more information, see Canceling resource operation requests in the Amazon Web Services Cloud Control API User Guide.

Only resource operations requests with a status of PENDING or IN_PROGRESS can be canceled.

", "CreateResource": "

Creates the specified resource. For more information, see Creating a resource in the Amazon Web Services Cloud Control API User Guide.

After you have initiated a resource creation request, you can monitor the progress of your request by calling GetResourceRequestStatus using the RequestToken of the ProgressEvent type returned by CreateResource.

", "DeleteResource": "

Deletes the specified resource. For details, see Deleting a resource in the Amazon Web Services Cloud Control API User Guide.

After you have initiated a resource deletion request, you can monitor the progress of your request by calling GetResourceRequestStatus using the RequestToken of the ProgressEvent returned by DeleteResource.

", - "GetResource": "

Returns information about the current state of the specified resource. For details, see Reading a resource's current state.

You can use this action to return information about an existing resource in your account and Amazon Web Services Region, whether or not those resources were provisioned using Cloud Control API.

", + "GetResource": "

Returns information about the current state of the specified resource. For details, see Reading a resource's current state.

You can use this action to return information about an existing resource in your account and Amazon Web Services Region, whether those resources were provisioned using Cloud Control API.

", "GetResourceRequestStatus": "

Returns the current status of a resource operation request. For more information, see Tracking the progress of resource operation requests in the Amazon Web Services Cloud Control API User Guide.

", - "ListResourceRequests": "

Returns existing resource operation requests. This includes requests of all status types. For more information, see Listing active resource operation requests in the Amazon Web Services Cloud Control API User Guide.

Resource operation requests expire after seven days.

", - "ListResources": "

Returns information about the specified resources. For more information, see Discovering resources in the Amazon Web Services Cloud Control API User Guide.

You can use this action to return information about existing resources in your account and Amazon Web Services Region, whether or not those resources were provisioned using Cloud Control API.

", - "UpdateResource": "

Updates the specified property values in the resource.

You specify your resource property updates as a list of patch operations contained in a JSON patch document that adheres to the RFC 6902 - JavaScript Object Notation (JSON) Patch standard.

For details on how Cloud Control API performs resource update operations, see Updating a resource in the Amazon Web Services Cloud Control API User Guide.

After you have initiated a resource update request, you can monitor the progress of your request by calling GetResourceRequestStatus using the RequestToken of the ProgressEvent returned by UpdateResource.

For more information about the properties of a specific resource, refer to the related topic for the resource in the Resource and property types reference in the Amazon Web Services CloudFormation Users Guide.

" + "ListResourceRequests": "

Returns existing resource operation requests. This includes requests of all status types. For more information, see Listing active resource operation requests in the Amazon Web Services Cloud Control API User Guide.

Resource operation requests expire after 7 days.

", + "ListResources": "

Returns information about the specified resources. For more information, see Discovering resources in the Amazon Web Services Cloud Control API User Guide.

You can use this action to return information about existing resources in your account and Amazon Web Services Region, whether those resources were provisioned using Cloud Control API.

", + "UpdateResource": "

Updates the specified property values in the resource.

You specify your resource property updates as a list of patch operations contained in a JSON patch document that adheres to the RFC 6902 - JavaScript Object Notation (JSON) Patch standard.

For details on how Cloud Control API performs resource update operations, see Updating a resource in the Amazon Web Services Cloud Control API User Guide.

After you have initiated a resource update request, you can monitor the progress of your request by calling GetResourceRequestStatus using the RequestToken of the ProgressEvent returned by UpdateResource.

For more information about the properties of a specific resource, refer to the related topic for the resource in the Resource and property types reference in the CloudFormation Users Guide.

" }, "shapes": { "AlreadyExistsException": { @@ -36,7 +36,7 @@ } }, "ClientTokenConflictException": { - "base": "

The specified client token has already been used in another resource request.

It is best practice for client tokens to be unique for each resource operation request. However, client token expire after 36 hours.

", + "base": "

The specified client token has already been used in another resource request.

It's best practice for client tokens to be unique for each resource operation request. However, client token expire after 36 hours.

", "refs": { } }, @@ -97,7 +97,7 @@ } }, "GeneralServiceException": { - "base": "

The resource handler has returned that the downstream service generated an error that does not map to any other handler error code.

", + "base": "

The resource handler has returned that the downstream service generated an error that doesn't map to any other handler error code.

", "refs": { } }, @@ -147,11 +147,11 @@ "Identifier": { "base": null, "refs": { - "DeleteResourceInput$Identifier": "

The identifier for the resource.

You can specify the primary identifier, or any secondary identifier defined for the resource type in its resource schema. You can only specify one identifier. Primary identifiers can be specified as a string or JSON; secondary identifiers must be specified as JSON.

For compound primary identifiers (that is, one that consists of multiple resource properties strung together), to specify the primary identifier as a string, list the property values in the order they are specified in the primary identifier definition, separated by |.

For more information, see Identifying resources in the Amazon Web Services Cloud Control API User Guide.

", - "GetResourceInput$Identifier": "

The identifier for the resource.

You can specify the primary identifier, or any secondary identifier defined for the resource type in its resource schema. You can only specify one identifier. Primary identifiers can be specified as a string or JSON; secondary identifiers must be specified as JSON.

For compound primary identifiers (that is, one that consists of multiple resource properties strung together), to specify the primary identifier as a string, list the property values in the order they are specified in the primary identifier definition, separated by |.

For more information, see Identifying resources in the Amazon Web Services Cloud Control API User Guide.

", + "DeleteResourceInput$Identifier": "

The identifier for the resource.

You can specify the primary identifier, or any secondary identifier defined for the resource type in its resource schema. You can only specify one identifier. Primary identifiers can be specified as a string or JSON; secondary identifiers must be specified as JSON.

For compound primary identifiers (that is, one that consists of multiple resource properties strung together), to specify the primary identifier as a string, list the property values in the order they are specified in the primary identifier definition, separated by |.

For more information, see Identifying resources in the Amazon Web Services Cloud Control API User Guide.

", + "GetResourceInput$Identifier": "

The identifier for the resource.

You can specify the primary identifier, or any secondary identifier defined for the resource type in its resource schema. You can only specify one identifier. Primary identifiers can be specified as a string or JSON; secondary identifiers must be specified as JSON.

For compound primary identifiers (that is, one that consists of multiple resource properties strung together), to specify the primary identifier as a string, list the property values in the order they are specified in the primary identifier definition, separated by |.

For more information, see Identifying resources in the Amazon Web Services Cloud Control API User Guide.

", "ProgressEvent$Identifier": "

The primary identifier for the resource.

In some cases, the resource identifier may be available before the resource operation has reached a status of SUCCESS.

", "ResourceDescription$Identifier": "

The primary identifier for the resource.

For more information, see Identifying resources in the Amazon Web Services Cloud Control API User Guide.

", - "UpdateResourceInput$Identifier": "

The identifier for the resource.

You can specify the primary identifier, or any secondary identifier defined for the resource type in its resource schema. You can only specify one identifier. Primary identifiers can be specified as a string or JSON; secondary identifiers must be specified as JSON.

For compound primary identifiers (that is, one that consists of multiple resource properties strung together), to specify the primary identifier as a string, list the property values in the order they are specified in the primary identifier definition, separated by |.

For more information, see Identifying resources in the Amazon Web Services Cloud Control API User Guide.

" + "UpdateResourceInput$Identifier": "

The identifier for the resource.

You can specify the primary identifier, or any secondary identifier defined for the resource type in its resource schema. You can only specify one identifier. Primary identifiers can be specified as a string or JSON; secondary identifiers must be specified as JSON.

For compound primary identifiers (that is, one that consists of multiple resource properties strung together), to specify the primary identifier as a string, list the property values in the order they are specified in the primary identifier definition, separated by |.

For more information, see Identifying resources in the Amazon Web Services Cloud Control API User Guide.

" } }, "InvalidCredentialsException": { @@ -188,11 +188,11 @@ "base": null, "refs": { "ListResourceRequestsInput$MaxResults": "

The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results.

The default is 20.

", - "ListResourcesInput$MaxResults": "

The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results.

The default is 20.

" + "ListResourcesInput$MaxResults": "

Reserved.

" } }, "NetworkFailureException": { - "base": "

The resource handler has returned that the request could not be completed due to networking issues, such as a failure to receive a response from the server.

", + "base": "

The resource handler has returned that the request couldn't be completed due to networking issues, such as a failure to receive a response from the server.

", "refs": { } }, @@ -209,7 +209,7 @@ } }, "NotUpdatableException": { - "base": "

One or more properties included in this resource operation are defined as create-only, and therefore cannot be updated.

", + "base": "

One or more properties included in this resource operation are defined as create-only, and therefore can't be updated.

", "refs": { } }, @@ -224,13 +224,13 @@ "base": null, "refs": { "OperationStatuses$member": null, - "ProgressEvent$OperationStatus": "

The current status of the resource operation request.

" + "ProgressEvent$OperationStatus": "

The current status of the resource operation request.

" } }, "OperationStatuses": { "base": null, "refs": { - "ResourceRequestStatusFilter$OperationStatuses": "

The operation statuses to include in the filter.

" + "ResourceRequestStatusFilter$OperationStatuses": "

The operation statuses to include in the filter.

" } }, "Operations": { @@ -246,7 +246,7 @@ } }, "PrivateTypeException": { - "base": "

Cloud Control API has not received a valid response from the resource handler, due to a configuration error. This includes issues such as the resource handler returning an invalid response, or timing out.

", + "base": "

Cloud Control API hasn't received a valid response from the resource handler, due to a configuration error. This includes issues such as the resource handler returning an invalid response, or timing out.

", "refs": { } }, @@ -264,7 +264,7 @@ "Properties": { "base": null, "refs": { - "CreateResourceInput$DesiredState": "

Structured data format representing the desired state of the resource, consisting of that resource's properties and their desired values.

Cloud Control API currently supports JSON as a structured data format.

Specify the desired state as one of the following:

For more information, see Composing the desired state of the resource in the Amazon Web Services Cloud Control API User Guide.

For more information about the properties of a specific resource, refer to the related topic for the resource in the Resource and property types reference in the Amazon Web Services CloudFormation Users Guide.

", + "CreateResourceInput$DesiredState": "

Structured data format representing the desired state of the resource, consisting of that resource's properties and their desired values.

Cloud Control API currently supports JSON as a structured data format.

Specify the desired state as one of the following:

For more information, see Composing the desired state of the resource in the Amazon Web Services Cloud Control API User Guide.

For more information about the properties of a specific resource, refer to the related topic for the resource in the Resource and property types reference in the CloudFormation Users Guide.

", "ListResourcesInput$ResourceModel": "

The resource model to use to select the resources to return.

", "ProgressEvent$ResourceModel": "

A JSON string containing the resource model, consisting of each resource property and its current value.

", "ResourceDescription$Properties": "

A list of the resource properties and their current values.

" @@ -279,12 +279,12 @@ } }, "RequestTokenNotFoundException": { - "base": "

A resource operation with the specified request token cannot be found.

", + "base": "

A resource operation with the specified request token can't be found.

", "refs": { } }, "ResourceConflictException": { - "base": "

The resource is temporarily unavailable to be acted upon. For example, if the resource is currently undergoing an operation and cannot be acted upon until that operation is finished.

", + "base": "

The resource is temporarily unavailable to be acted upon. For example, if the resource is currently undergoing an operation and can't be acted upon until that operation is finished.

", "refs": { } }, @@ -302,7 +302,7 @@ } }, "ResourceNotFoundException": { - "base": "

A resource with the specified identifier cannot be found.

", + "base": "

A resource with the specified identifier can't be found.

", "refs": { } }, @@ -321,11 +321,11 @@ "RoleArn": { "base": null, "refs": { - "CreateResourceInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

", - "DeleteResourceInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

", - "GetResourceInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

", - "ListResourcesInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

", - "UpdateResourceInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

" + "CreateResourceInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

", + "DeleteResourceInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

", + "GetResourceInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

", + "ListResourcesInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

", + "UpdateResourceInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

" } }, "ServiceInternalErrorException": { @@ -370,7 +370,7 @@ } }, "TypeNotFoundException": { - "base": "

The specified extension does not exist in the CloudFormation registry.

", + "base": "

The specified extension doesn't exist in the CloudFormation registry.

", "refs": { } }, @@ -385,7 +385,7 @@ } }, "UnsupportedActionException": { - "base": "

The specified resource does not support this resource operation.

", + "base": "

The specified resource doesn't support this resource operation.

", "refs": { } }, diff --git a/apis/databrew/2017-07-25/api-2.json b/apis/databrew/2017-07-25/api-2.json index 6695fca3f3b..1750c43c653 100644 --- a/apis/databrew/2017-07-25/api-2.json +++ b/apis/databrew/2017-07-25/api-2.json @@ -1583,7 +1583,8 @@ "CSV", "JSON", "PARQUET", - "EXCEL" + "EXCEL", + "ORC" ] }, "InternalServerException":{ diff --git a/apis/databrew/2017-07-25/docs-2.json b/apis/databrew/2017-07-25/docs-2.json index 1e76eb8c665..b71b4f63902 100644 --- a/apis/databrew/2017-07-25/docs-2.json +++ b/apis/databrew/2017-07-25/docs-2.json @@ -479,7 +479,7 @@ } }, "DatasetParameter": { - "base": "

Represents a dataset paramater that defines type and conditions for a parameter in the Amazon S3 path of the dataset.

", + "base": "

Represents a dataset parameter that defines type and conditions for a parameter in the Amazon S3 path of the dataset.

", "refs": { "PathParametersMap$value": null } @@ -740,7 +740,7 @@ "base": null, "refs": { "FilterExpression$Expression": "

The expression which includes condition names followed by substitution variables, possibly grouped and combined with other conditions. For example, \"(starts_with :prefix1 or starts_with :prefix2) and (ends_with :suffix1 or ends_with :suffix2)\". Substitution variables should start with ':' symbol.

", - "Rule$CheckExpression": "

The expression which includes column references, condition names followed by variable references, possibly grouped and combined with other conditions. For example, (:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and (:col1 ends_with :suffix1 or :col1 ends_with :suffix2). Column and value references are substitution variables that should start with the ':' symbol. Depending on the context, substitution variables' values can be either an actual value or a column name. These values are defined in the SubstitutionMap. If a CheckExpression starts with a column reference, then ColumnSelectors in the rule should be null. If ColumnSelectors has been defined, then there should be no columnn reference in the left side of a condition, for example, is_between :val1 and :val2.

For more information, see Available checks

" + "Rule$CheckExpression": "

The expression which includes column references, condition names followed by variable references, possibly grouped and combined with other conditions. For example, (:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and (:col1 ends_with :suffix1 or :col1 ends_with :suffix2). Column and value references are substitution variables that should start with the ':' symbol. Depending on the context, substitution variables' values can be either an actual value or a column name. These values are defined in the SubstitutionMap. If a CheckExpression starts with a column reference, then ColumnSelectors in the rule should be null. If ColumnSelectors has been defined, then there should be no column reference in the left side of a condition, for example, is_between :val1 and :val2.

For more information, see Available checks

" } }, "FilesLimit": { @@ -1168,7 +1168,7 @@ "Order": { "base": null, "refs": { - "FilesLimit$Order": "

A criteria to use for Amazon S3 files sorting before their selection. By default uses DESCENDING order, i.e. most recent files are selected first. Anotherpossible value is ASCENDING.

" + "FilesLimit$Order": "

A criteria to use for Amazon S3 files sorting before their selection. By default uses DESCENDING order, i.e. most recent files are selected first. Another possible value is ASCENDING.

" } }, "OrderedBy": { diff --git a/apis/grafana/2020-08-18/api-2.json b/apis/grafana/2020-08-18/api-2.json index 3c15293f280..7a6114e7d65 100644 --- a/apis/grafana/2020-08-18/api-2.json +++ b/apis/grafana/2020-08-18/api-2.json @@ -135,6 +135,23 @@ {"shape":"InternalServerException"} ] }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, "ListWorkspaces":{ "name":"ListWorkspaces", "http":{ @@ -150,6 +167,41 @@ {"shape":"InternalServerException"} ] }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + }, "UpdatePermissions":{ "name":"UpdatePermissions", "http":{ @@ -352,6 +404,7 @@ "organizationRoleName":{"shape":"OrganizationRoleName"}, "permissionType":{"shape":"PermissionType"}, "stackSetName":{"shape":"StackSetName"}, + "tags":{"shape":"TagMap"}, "workspaceDataSources":{"shape":"DataSourceTypesList"}, "workspaceDescription":{"shape":"Description"}, "workspaceName":{"shape":"WorkspaceName"}, @@ -375,7 +428,9 @@ "PROMETHEUS", "XRAY", "TIMESTREAM", - "SITEWISE" + "SITEWISE", + "ATHENA", + "REDSHIFT" ] }, "DataSourceTypesList":{ @@ -574,6 +629,23 @@ "permissions":{"shape":"PermissionEntryList"} } }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"String", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"TagMap"} + } + }, "ListWorkspacesRequest":{ "type":"structure", "members":{ @@ -744,6 +816,47 @@ }, "StackSetName":{"type":"string"}, "String":{"type":"string"}, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":50, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"String", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{"shape":"TagMap"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, "ThrottlingException":{ "type":"structure", "required":["message"], @@ -765,6 +878,30 @@ "retryable":{"throttling":false} }, "Timestamp":{"type":"timestamp"}, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"String", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeys", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateAction":{ "type":"string", "enum":[ @@ -983,6 +1120,7 @@ "permissionType":{"shape":"PermissionType"}, "stackSetName":{"shape":"StackSetName"}, "status":{"shape":"WorkspaceStatus"}, + "tags":{"shape":"TagMap"}, "workspaceRoleArn":{"shape":"IamRoleArn"} } }, @@ -1036,7 +1174,8 @@ "modified":{"shape":"Timestamp"}, "name":{"shape":"WorkspaceName"}, "notificationDestinations":{"shape":"NotificationDestinationsList"}, - "status":{"shape":"WorkspaceStatus"} + "status":{"shape":"WorkspaceStatus"}, + "tags":{"shape":"TagMap"} } } } diff --git a/apis/grafana/2020-08-18/docs-2.json b/apis/grafana/2020-08-18/docs-2.json index 2c1b54027b0..e228fb9979b 100644 --- a/apis/grafana/2020-08-18/docs-2.json +++ b/apis/grafana/2020-08-18/docs-2.json @@ -9,7 +9,10 @@ "DescribeWorkspaceAuthentication": "

Displays information about the authentication methods used in one Amazon Managed Grafana workspace.

", "DisassociateLicense": "

Removes the Grafana Enterprise license from a workspace.

", "ListPermissions": "

Lists the users and groups who have the Grafana Admin and Editor roles in this workspace. If you use this operation without specifying userId or groupId, the operation returns the roles of all users and groups. If you specify a userId or a groupId, only the roles for that user or group are returned. If you do this, you can specify only one userId or one groupId.

", + "ListTagsForResource": "

The ListTagsForResource operation returns the tags that are associated with the Amazon Managed Service for Grafana resource specified by the resourceArn. Currently, the only resource that can be tagged is a workspace.

", "ListWorkspaces": "

Returns a list of Amazon Managed Grafana workspaces in the account, with some information about each workspace. For more complete information about one workspace, use DescribeWorkspace.

", + "TagResource": "

The TagResource operation associates tags with an Amazon Managed Grafana resource. Currently, the only resource that can be tagged is workspaces.

If you specify a new tag key for the resource, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag.

", + "UntagResource": "

The UntagResource operation removes the association of the tag with the Amazon Managed Grafana resource.

", "UpdatePermissions": "

Updates which users in a workspace have the Grafana Admin or Editor roles.

", "UpdateWorkspace": "

Modifies an existing Amazon Managed Grafana workspace. If you use this operation and omit any optional parameters, the existing values of those parameters are not changed.

To modify the user authentication methods that the workspace uses, such as SAML or Amazon Web Services SSO, use UpdateWorkspaceAuthentication.

To modify which users in the workspace have the Admin and Editor Grafana roles, use UpdatePermissions.

", "UpdateWorkspaceAuthentication": "

Use this operation to define the identity provider (IdP) that this workspace authenticates users from, using SAML. You can also map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the Admin and Editor roles in the workspace.

" @@ -176,7 +179,7 @@ "Description": { "base": null, "refs": { - "CreateWorkspaceRequest$workspaceDescription": "

A description for the workspace. This is used only to help you identify this workspace.

", + "CreateWorkspaceRequest$workspaceDescription": "

A description for the workspace. This is used only to help you identify this workspace.

Pattern: ^[\\\\p{L}\\\\p{Z}\\\\p{N}\\\\p{P}]{0,2048}$

", "UpdateWorkspaceRequest$workspaceDescription": "

A description for the workspace. This is used only to help you identify this workspace.

", "WorkspaceDescription$description": "

The user-defined description of the workspace.

", "WorkspaceSummary$description": "

The customer-entered description of the workspace.

" @@ -209,7 +212,7 @@ "IamRoleArn": { "base": null, "refs": { - "CreateWorkspaceRequest$workspaceRoleArn": "

The workspace needs an IAM role that grants permissions to the Amazon Web Services resources that the workspace will view data from. If you already have a role that you want to use, specify it here. If you omit this field and you specify some Amazon Web Services resources in workspaceDataSources or workspaceNotificationDestinations, a new IAM role with the necessary permissions is automatically created.

", + "CreateWorkspaceRequest$workspaceRoleArn": "

The workspace needs an IAM role that grants permissions to the Amazon Web Services resources that the workspace will view data from. If you already have a role that you want to use, specify it here. The permission type should be set to CUSTOMER_MANAGED.

", "UpdateWorkspaceRequest$workspaceRoleArn": "

The workspace needs an IAM role that grants permissions to the Amazon Web Services resources that the workspace will view data from. If you already have a role that you want to use, specify it here. If you omit this field and you specify some Amazon Web Services resources in workspaceDataSources or workspaceNotificationDestinations, a new IAM role with the necessary permissions is automatically created.

", "WorkspaceDescription$workspaceRoleArn": "

The IAM role that grants permissions to the Amazon Web Services resources that the workspace will view data from. This role must already exist.

" } @@ -262,6 +265,16 @@ "refs": { } }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, "ListWorkspacesRequest": { "base": null, "refs": { @@ -345,7 +358,7 @@ "PermissionType": { "base": null, "refs": { - "CreateWorkspaceRequest$permissionType": "

If you specify Service Managed, Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use Amazon Web Services data sources and notification channels.

If you specify CUSTOMER_MANAGED, you will manage those roles and permissions yourself. If you are creating this workspace in a member account of an organization that is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, you must choose CUSTOMER_MANAGED.

For more information, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels

", + "CreateWorkspaceRequest$permissionType": "

If you specify SERVICE_MANAGED on AWS Grafana console, Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use Amazon Web Services data sources and notification channels. In CLI mode, the permissionType SERVICE_MANAGED will not create the IAM role for you.

If you specify CUSTOMER_MANAGED, you will manage those roles and permissions yourself. If you are creating this workspace in a member account of an organization that is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, you must choose CUSTOMER_MANAGED.

For more information, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels.

", "UpdateWorkspaceRequest$permissionType": "

If you specify Service Managed, Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use Amazon Web Services data sources and notification channels.

If you specify CUSTOMER_MANAGED, you will manage those roles and permissions yourself. If you are creating this workspace in a member account of an organization and that account is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, you must choose CUSTOMER_MANAGED.

For more information, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels

", "WorkspaceDescription$permissionType": "

If this is Service Managed, Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use Amazon Web Services data sources and notification channels.

If this is CUSTOMER_MANAGED, you manage those roles and permissions yourself. If you are creating this workspace in a member account of an organization and that account is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, you must choose CUSTOMER_MANAGED.

For more information, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels

" } @@ -417,7 +430,7 @@ "refs": { "ListPermissionsRequest$groupId": "

(Optional) Limits the results to only the group that matches this ID.

", "ListPermissionsRequest$userId": "

(Optional) Limits the results to only the user that matches this ID.

", - "User$id": "

The ID of the user or group.

" + "User$id": "

The ID of the user or group.

Pattern: ^([0-9a-fA-F]{10}-|)[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$

" } }, "StackSetName": { @@ -437,6 +450,7 @@ "ConflictException$resourceType": "

The type of the resource that is associated with the error.

", "IdpMetadata$xml": "

The actual full metadata file, in XML format.

", "InternalServerException$message": "

A description of the error.

", + "ListTagsForResourceRequest$resourceArn": "

The ARN of the resource the list of tags are associated with.

", "ResourceNotFoundException$message": "

The value of a parameter in the request caused an error.

", "ResourceNotFoundException$resourceId": "

The ID of the resource that is associated with the error.

", "ResourceNotFoundException$resourceType": "

The type of the resource that is associated with the error.

", @@ -445,15 +459,56 @@ "ServiceQuotaExceededException$resourceId": "

The ID of the resource that is associated with the error.

", "ServiceQuotaExceededException$resourceType": "

The type of the resource that is associated with the error.

", "ServiceQuotaExceededException$serviceCode": "

The value of a parameter in the request caused an error.

", + "TagResourceRequest$resourceArn": "

The ARN of the resource the tag is associated with.

", "ThrottlingException$message": "

A description of the error.

", "ThrottlingException$quotaCode": "

The ID of the service quota that was exceeded.

", "ThrottlingException$serviceCode": "

The ID of the service that is associated with the error.

", + "UntagResourceRequest$resourceArn": "

The ARN of the resource the tag association is removed from.

", "UpdateError$message": "

The message for this error.

", "ValidationException$message": "

A description of the error.

", "ValidationExceptionField$message": "

A message describing why this field couldn't be validated.

", "ValidationExceptionField$name": "

The name of the field that caused the validation error.

" } }, + "TagKey": { + "base": null, + "refs": { + "TagKeys$member": null, + "TagMap$key": null + } + }, + "TagKeys": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "

The key values of the tag to be removed from the resource.

" + } + }, + "TagMap": { + "base": null, + "refs": { + "CreateWorkspaceRequest$tags": "

The list of tags associated with the workspace.

", + "ListTagsForResourceResponse$tags": "

The list of tags that are associated with the resource.

", + "TagResourceRequest$tags": "

The list of tag keys and values to associate with the resource. You can associate tag keys only, tags (key and values) only or a combination of tag keys and tags.

", + "WorkspaceDescription$tags": "

The list of tags associated with the workspace.

", + "WorkspaceSummary$tags": "

The list of tags associated with the workspace.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "TagMap$value": null + } + }, "ThrottlingException": { "base": "

The request was denied because of request throttling. Retry the request.

", "refs": { @@ -470,6 +525,16 @@ "WorkspaceSummary$modified": "

The most recent date that the workspace was modified.

" } }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, "UpdateAction": { "base": null, "refs": { diff --git a/apis/pinpoint-sms-voice-v2/2022-03-31/api-2.json b/apis/pinpoint-sms-voice-v2/2022-03-31/api-2.json new file mode 100644 index 00000000000..abc304faaf6 --- /dev/null +++ b/apis/pinpoint-sms-voice-v2/2022-03-31/api-2.json @@ -0,0 +1,2764 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2022-03-31", + "endpointPrefix":"sms-voice", + "jsonVersion":"1.0", + "protocol":"json", + "serviceFullName":"Amazon Pinpoint SMS Voice V2", + "serviceId":"Pinpoint SMS Voice V2", + "signatureVersion":"v4", + "signingName":"sms-voice", + "targetPrefix":"PinpointSMSVoiceV2", + "uid":"pinpoint-sms-voice-v2-2022-03-31" + }, + "operations":{ + "AssociateOriginationIdentity":{ + "name":"AssociateOriginationIdentity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateOriginationIdentityRequest"}, + "output":{"shape":"AssociateOriginationIdentityResult"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "CreateConfigurationSet":{ + "name":"CreateConfigurationSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateConfigurationSetRequest"}, + "output":{"shape":"CreateConfigurationSetResult"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "CreateEventDestination":{ + "name":"CreateEventDestination", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateEventDestinationRequest"}, + "output":{"shape":"CreateEventDestinationResult"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "CreateOptOutList":{ + "name":"CreateOptOutList", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateOptOutListRequest"}, + "output":{"shape":"CreateOptOutListResult"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "CreatePool":{ + "name":"CreatePool", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePoolRequest"}, + "output":{"shape":"CreatePoolResult"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteConfigurationSet":{ + "name":"DeleteConfigurationSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteConfigurationSetRequest"}, + "output":{"shape":"DeleteConfigurationSetResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteDefaultMessageType":{ + "name":"DeleteDefaultMessageType", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDefaultMessageTypeRequest"}, + "output":{"shape":"DeleteDefaultMessageTypeResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteDefaultSenderId":{ + "name":"DeleteDefaultSenderId", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDefaultSenderIdRequest"}, + "output":{"shape":"DeleteDefaultSenderIdResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteEventDestination":{ + "name":"DeleteEventDestination", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEventDestinationRequest"}, + "output":{"shape":"DeleteEventDestinationResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteKeyword":{ + "name":"DeleteKeyword", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteKeywordRequest"}, + "output":{"shape":"DeleteKeywordResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteOptOutList":{ + "name":"DeleteOptOutList", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteOptOutListRequest"}, + "output":{"shape":"DeleteOptOutListResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteOptedOutNumber":{ + "name":"DeleteOptedOutNumber", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteOptedOutNumberRequest"}, + "output":{"shape":"DeleteOptedOutNumberResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "DeletePool":{ + "name":"DeletePool", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeletePoolRequest"}, + "output":{"shape":"DeletePoolResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteTextMessageSpendLimitOverride":{ + "name":"DeleteTextMessageSpendLimitOverride", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTextMessageSpendLimitOverrideRequest"}, + "output":{"shape":"DeleteTextMessageSpendLimitOverrideResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteVoiceMessageSpendLimitOverride":{ + "name":"DeleteVoiceMessageSpendLimitOverride", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVoiceMessageSpendLimitOverrideRequest"}, + "output":{"shape":"DeleteVoiceMessageSpendLimitOverrideResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeAccountAttributes":{ + "name":"DescribeAccountAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAccountAttributesRequest"}, + "output":{"shape":"DescribeAccountAttributesResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeAccountLimits":{ + "name":"DescribeAccountLimits", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAccountLimitsRequest"}, + "output":{"shape":"DescribeAccountLimitsResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeConfigurationSets":{ + "name":"DescribeConfigurationSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeConfigurationSetsRequest"}, + "output":{"shape":"DescribeConfigurationSetsResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeKeywords":{ + "name":"DescribeKeywords", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeKeywordsRequest"}, + "output":{"shape":"DescribeKeywordsResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeOptOutLists":{ + "name":"DescribeOptOutLists", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeOptOutListsRequest"}, + "output":{"shape":"DescribeOptOutListsResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeOptedOutNumbers":{ + "name":"DescribeOptedOutNumbers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeOptedOutNumbersRequest"}, + "output":{"shape":"DescribeOptedOutNumbersResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribePhoneNumbers":{ + "name":"DescribePhoneNumbers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribePhoneNumbersRequest"}, + "output":{"shape":"DescribePhoneNumbersResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribePools":{ + "name":"DescribePools", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribePoolsRequest"}, + "output":{"shape":"DescribePoolsResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeSenderIds":{ + "name":"DescribeSenderIds", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSenderIdsRequest"}, + "output":{"shape":"DescribeSenderIdsResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeSpendLimits":{ + "name":"DescribeSpendLimits", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSpendLimitsRequest"}, + "output":{"shape":"DescribeSpendLimitsResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "DisassociateOriginationIdentity":{ + "name":"DisassociateOriginationIdentity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateOriginationIdentityRequest"}, + "output":{"shape":"DisassociateOriginationIdentityResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "ListPoolOriginationIdentities":{ + "name":"ListPoolOriginationIdentities", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListPoolOriginationIdentitiesRequest"}, + "output":{"shape":"ListPoolOriginationIdentitiesResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "PutKeyword":{ + "name":"PutKeyword", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutKeywordRequest"}, + "output":{"shape":"PutKeywordResult"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "PutOptedOutNumber":{ + "name":"PutOptedOutNumber", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutOptedOutNumberRequest"}, + "output":{"shape":"PutOptedOutNumberResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "ReleasePhoneNumber":{ + "name":"ReleasePhoneNumber", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReleasePhoneNumberRequest"}, + "output":{"shape":"ReleasePhoneNumberResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "RequestPhoneNumber":{ + "name":"RequestPhoneNumber", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RequestPhoneNumberRequest"}, + "output":{"shape":"RequestPhoneNumberResult"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "SendTextMessage":{ + "name":"SendTextMessage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SendTextMessageRequest"}, + "output":{"shape":"SendTextMessageResult"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "SendVoiceMessage":{ + "name":"SendVoiceMessage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SendVoiceMessageRequest"}, + "output":{"shape":"SendVoiceMessageResult"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "SetDefaultMessageType":{ + "name":"SetDefaultMessageType", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetDefaultMessageTypeRequest"}, + "output":{"shape":"SetDefaultMessageTypeResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "SetDefaultSenderId":{ + "name":"SetDefaultSenderId", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetDefaultSenderIdRequest"}, + "output":{"shape":"SetDefaultSenderIdResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "SetTextMessageSpendLimitOverride":{ + "name":"SetTextMessageSpendLimitOverride", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetTextMessageSpendLimitOverrideRequest"}, + "output":{"shape":"SetTextMessageSpendLimitOverrideResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "SetVoiceMessageSpendLimitOverride":{ + "name":"SetVoiceMessageSpendLimitOverride", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetVoiceMessageSpendLimitOverrideRequest"}, + "output":{"shape":"SetVoiceMessageSpendLimitOverrideResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResult"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "UpdateEventDestination":{ + "name":"UpdateEventDestination", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateEventDestinationRequest"}, + "output":{"shape":"UpdateEventDestinationResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "UpdatePhoneNumber":{ + "name":"UpdatePhoneNumber", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdatePhoneNumberRequest"}, + "output":{"shape":"UpdatePhoneNumberResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "UpdatePool":{ + "name":"UpdatePool", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdatePoolRequest"}, + "output":{"shape":"UpdatePoolResult"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "Reason":{"shape":"AccessDeniedExceptionReason"} + }, + "exception":true + }, + "AccessDeniedExceptionReason":{ + "type":"string", + "enum":[ + "INSUFFICIENT_ACCOUNT_REPUTATION", + "ACCOUNT_DISABLED" + ] + }, + "AccountAttribute":{ + "type":"structure", + "required":[ + "Name", + "Value" + ], + "members":{ + "Name":{"shape":"AccountAttributeName"}, + "Value":{"shape":"String"} + } + }, + "AccountAttributeList":{ + "type":"list", + "member":{"shape":"AccountAttribute"} + }, + "AccountAttributeName":{ + "type":"string", + "enum":["ACCOUNT_TIER"] + }, + "AccountLimit":{ + "type":"structure", + "required":[ + "Name", + "Used", + "Max" + ], + "members":{ + "Name":{"shape":"AccountLimitName"}, + "Used":{"shape":"PrimitiveLong"}, + "Max":{"shape":"PrimitiveLong"} + } + }, + "AccountLimitList":{ + "type":"list", + "member":{"shape":"AccountLimit"} + }, + "AccountLimitName":{ + "type":"string", + "enum":[ + "PHONE_NUMBERS", + "POOLS", + "CONFIGURATION_SETS", + "OPT_OUT_LISTS" + ] + }, + "AmazonResourceName":{ + "type":"string", + "max":256, + "min":20, + "pattern":"arn:[A-Za-z0-9_:/-]+" + }, + "AssociateOriginationIdentityRequest":{ + "type":"structure", + "required":[ + "PoolId", + "OriginationIdentity", + "IsoCountryCode" + ], + "members":{ + "PoolId":{"shape":"PoolIdOrArn"}, + "OriginationIdentity":{"shape":"PhoneOrSenderIdOrArn"}, + "IsoCountryCode":{"shape":"IsoCountryCode"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "AssociateOriginationIdentityResult":{ + "type":"structure", + "members":{ + "PoolArn":{"shape":"String"}, + "PoolId":{"shape":"String"}, + "OriginationIdentityArn":{"shape":"String"}, + "OriginationIdentity":{"shape":"String"}, + "IsoCountryCode":{"shape":"IsoCountryCode"} + } + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "ClientToken":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[!-~]+" + }, + "CloudWatchLogsDestination":{ + "type":"structure", + "required":[ + "IamRoleArn", + "LogGroupArn" + ], + "members":{ + "IamRoleArn":{"shape":"IamRoleArn"}, + "LogGroupArn":{"shape":"LogGroupArn"} + } + }, + "ConfigurationSetFilter":{ + "type":"structure", + "required":[ + "Name", + "Values" + ], + "members":{ + "Name":{"shape":"ConfigurationSetFilterName"}, + "Values":{"shape":"FilterValueList"} + } + }, + "ConfigurationSetFilterList":{ + "type":"list", + "member":{"shape":"ConfigurationSetFilter"}, + "max":20, + "min":0 + }, + "ConfigurationSetFilterName":{ + "type":"string", + "enum":[ + "event-destination-name", + "matching-event-types", + "default-message-type", + "default-sender-id" + ] + }, + "ConfigurationSetInformation":{ + "type":"structure", + "required":[ + "ConfigurationSetArn", + "ConfigurationSetName", + "EventDestinations", + "CreatedTimestamp" + ], + "members":{ + "ConfigurationSetArn":{"shape":"String"}, + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "EventDestinations":{"shape":"EventDestinationList"}, + "DefaultMessageType":{"shape":"MessageType"}, + "DefaultSenderId":{"shape":"SenderId"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "ConfigurationSetInformationList":{ + "type":"list", + "member":{"shape":"ConfigurationSetInformation"} + }, + "ConfigurationSetName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[A-Za-z0-9_-]+" + }, + "ConfigurationSetNameList":{ + "type":"list", + "member":{"shape":"ConfigurationSetNameOrArn"}, + "max":5, + "min":0 + }, + "ConfigurationSetNameOrArn":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[A-Za-z0-9_:/-]+" + }, + "ConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "Reason":{"shape":"ConflictExceptionReason"}, + "ResourceType":{"shape":"ResourceType"}, + "ResourceId":{"shape":"String"} + }, + "exception":true + }, + "ConflictExceptionReason":{ + "type":"string", + "enum":[ + "DELETION_PROTECTION_ENABLED", + "DESTINATION_PHONE_NUMBER_NOT_VERIFIED", + "DESTINATION_PHONE_NUMBER_OPTED_OUT", + "EVENT_DESTINATION_MISMATCH", + "KEYWORD_MISMATCH", + "LAST_PHONE_NUMBER", + "SELF_MANAGED_OPT_OUTS_MISMATCH", + "MESSAGE_TYPE_MISMATCH", + "NO_ORIGINATION_IDENTITIES_FOUND", + "OPT_OUT_LIST_MISMATCH", + "PHONE_NUMBER_ASSOCIATED_TO_POOL", + "PHONE_NUMBER_NOT_ASSOCIATED_TO_POOL", + "PHONE_NUMBER_NOT_IN_REGISTRATION_REGION", + "RESOURCE_ALREADY_EXISTS", + "RESOURCE_DELETION_NOT_ALLOWED", + "RESOURCE_MODIFICATION_NOT_ALLOWED", + "RESOURCE_NOT_ACTIVE", + "RESOURCE_NOT_EMPTY", + "TWO_WAY_CONFIG_MISMATCH" + ] + }, + "ContextKey":{ + "type":"string", + "max":100, + "min":1, + "pattern":"\\S+" + }, + "ContextMap":{ + "type":"map", + "key":{"shape":"ContextKey"}, + "value":{"shape":"ContextValue"}, + "max":5, + "min":0 + }, + "ContextValue":{ + "type":"string", + "max":800, + "min":1, + "pattern":"\\S+" + }, + "CreateConfigurationSetRequest":{ + "type":"structure", + "required":["ConfigurationSetName"], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "Tags":{"shape":"TagList"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateConfigurationSetResult":{ + "type":"structure", + "members":{ + "ConfigurationSetArn":{"shape":"String"}, + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "Tags":{"shape":"TagList"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "CreateEventDestinationRequest":{ + "type":"structure", + "required":[ + "ConfigurationSetName", + "EventDestinationName", + "MatchingEventTypes" + ], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetNameOrArn"}, + "EventDestinationName":{"shape":"EventDestinationName"}, + "MatchingEventTypes":{"shape":"EventTypeList"}, + "CloudWatchLogsDestination":{"shape":"CloudWatchLogsDestination"}, + "KinesisFirehoseDestination":{"shape":"KinesisFirehoseDestination"}, + "SnsDestination":{"shape":"SnsDestination"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateEventDestinationResult":{ + "type":"structure", + "members":{ + "ConfigurationSetArn":{"shape":"String"}, + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "EventDestination":{"shape":"EventDestination"} + } + }, + "CreateOptOutListRequest":{ + "type":"structure", + "required":["OptOutListName"], + "members":{ + "OptOutListName":{"shape":"OptOutListName"}, + "Tags":{"shape":"TagList"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateOptOutListResult":{ + "type":"structure", + "members":{ + "OptOutListArn":{"shape":"String"}, + "OptOutListName":{"shape":"OptOutListName"}, + "Tags":{"shape":"TagList"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "CreatePoolRequest":{ + "type":"structure", + "required":[ + "OriginationIdentity", + "IsoCountryCode", + "MessageType" + ], + "members":{ + "OriginationIdentity":{"shape":"PhoneOrSenderIdOrArn"}, + "IsoCountryCode":{"shape":"IsoCountryCode"}, + "MessageType":{"shape":"MessageType"}, + "DeletionProtectionEnabled":{"shape":"Boolean"}, + "Tags":{"shape":"TagList"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreatePoolResult":{ + "type":"structure", + "members":{ + "PoolArn":{"shape":"String"}, + "PoolId":{"shape":"String"}, + "Status":{"shape":"PoolStatus"}, + "MessageType":{"shape":"MessageType"}, + "TwoWayEnabled":{"shape":"PrimitiveBoolean"}, + "TwoWayChannelArn":{"shape":"TwoWayChannelArn"}, + "SelfManagedOptOutsEnabled":{"shape":"PrimitiveBoolean"}, + "OptOutListName":{"shape":"OptOutListName"}, + "SharedRoutesEnabled":{"shape":"PrimitiveBoolean"}, + "DeletionProtectionEnabled":{"shape":"PrimitiveBoolean"}, + "Tags":{"shape":"TagList"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "DeleteConfigurationSetRequest":{ + "type":"structure", + "required":["ConfigurationSetName"], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetNameOrArn"} + } + }, + "DeleteConfigurationSetResult":{ + "type":"structure", + "members":{ + "ConfigurationSetArn":{"shape":"String"}, + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "EventDestinations":{"shape":"EventDestinationList"}, + "DefaultMessageType":{"shape":"MessageType"}, + "DefaultSenderId":{"shape":"SenderId"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "DeleteDefaultMessageTypeRequest":{ + "type":"structure", + "required":["ConfigurationSetName"], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetNameOrArn"} + } + }, + "DeleteDefaultMessageTypeResult":{ + "type":"structure", + "members":{ + "ConfigurationSetArn":{"shape":"String"}, + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "MessageType":{"shape":"MessageType"} + } + }, + "DeleteDefaultSenderIdRequest":{ + "type":"structure", + "required":["ConfigurationSetName"], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetNameOrArn"} + } + }, + "DeleteDefaultSenderIdResult":{ + "type":"structure", + "members":{ + "ConfigurationSetArn":{"shape":"String"}, + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "SenderId":{"shape":"SenderId"} + } + }, + "DeleteEventDestinationRequest":{ + "type":"structure", + "required":[ + "ConfigurationSetName", + "EventDestinationName" + ], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetNameOrArn"}, + "EventDestinationName":{"shape":"EventDestinationName"} + } + }, + "DeleteEventDestinationResult":{ + "type":"structure", + "members":{ + "ConfigurationSetArn":{"shape":"String"}, + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "EventDestination":{"shape":"EventDestination"} + } + }, + "DeleteKeywordRequest":{ + "type":"structure", + "required":[ + "OriginationIdentity", + "Keyword" + ], + "members":{ + "OriginationIdentity":{"shape":"PhoneOrPoolIdOrArn"}, + "Keyword":{"shape":"Keyword"} + } + }, + "DeleteKeywordResult":{ + "type":"structure", + "members":{ + "OriginationIdentityArn":{"shape":"String"}, + "OriginationIdentity":{"shape":"String"}, + "Keyword":{"shape":"Keyword"}, + "KeywordMessage":{"shape":"KeywordMessage"}, + "KeywordAction":{"shape":"KeywordAction"} + } + }, + "DeleteOptOutListRequest":{ + "type":"structure", + "required":["OptOutListName"], + "members":{ + "OptOutListName":{"shape":"OptOutListNameOrArn"} + } + }, + "DeleteOptOutListResult":{ + "type":"structure", + "members":{ + "OptOutListArn":{"shape":"String"}, + "OptOutListName":{"shape":"OptOutListName"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "DeleteOptedOutNumberRequest":{ + "type":"structure", + "required":[ + "OptOutListName", + "OptedOutNumber" + ], + "members":{ + "OptOutListName":{"shape":"OptOutListNameOrArn"}, + "OptedOutNumber":{"shape":"PhoneNumber"} + } + }, + "DeleteOptedOutNumberResult":{ + "type":"structure", + "members":{ + "OptOutListArn":{"shape":"String"}, + "OptOutListName":{"shape":"OptOutListName"}, + "OptedOutNumber":{"shape":"PhoneNumber"}, + "OptedOutTimestamp":{"shape":"Timestamp"}, + "EndUserOptedOut":{"shape":"PrimitiveBoolean"} + } + }, + "DeletePoolRequest":{ + "type":"structure", + "required":["PoolId"], + "members":{ + "PoolId":{"shape":"PoolIdOrArn"} + } + }, + "DeletePoolResult":{ + "type":"structure", + "members":{ + "PoolArn":{"shape":"String"}, + "PoolId":{"shape":"String"}, + "Status":{"shape":"PoolStatus"}, + "MessageType":{"shape":"MessageType"}, + "TwoWayEnabled":{"shape":"PrimitiveBoolean"}, + "TwoWayChannelArn":{"shape":"TwoWayChannelArn"}, + "SelfManagedOptOutsEnabled":{"shape":"PrimitiveBoolean"}, + "OptOutListName":{"shape":"OptOutListName"}, + "SharedRoutesEnabled":{"shape":"PrimitiveBoolean"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "DeleteTextMessageSpendLimitOverrideRequest":{ + "type":"structure", + "members":{ + } + }, + "DeleteTextMessageSpendLimitOverrideResult":{ + "type":"structure", + "members":{ + "MonthlyLimit":{"shape":"MonthlyLimit"} + } + }, + "DeleteVoiceMessageSpendLimitOverrideRequest":{ + "type":"structure", + "members":{ + } + }, + "DeleteVoiceMessageSpendLimitOverrideResult":{ + "type":"structure", + "members":{ + "MonthlyLimit":{"shape":"MonthlyLimit"} + } + }, + "DeliveryStreamArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:\\S+" + }, + "DescribeAccountAttributesRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "DescribeAccountAttributesResult":{ + "type":"structure", + "members":{ + "AccountAttributes":{"shape":"AccountAttributeList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeAccountLimitsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "DescribeAccountLimitsResult":{ + "type":"structure", + "members":{ + "AccountLimits":{"shape":"AccountLimitList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeConfigurationSetsRequest":{ + "type":"structure", + "members":{ + "ConfigurationSetNames":{"shape":"ConfigurationSetNameList"}, + "Filters":{"shape":"ConfigurationSetFilterList"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "DescribeConfigurationSetsResult":{ + "type":"structure", + "members":{ + "ConfigurationSets":{"shape":"ConfigurationSetInformationList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeKeywordsRequest":{ + "type":"structure", + "required":["OriginationIdentity"], + "members":{ + "OriginationIdentity":{"shape":"PhoneOrPoolIdOrArn"}, + "Keywords":{"shape":"KeywordList"}, + "Filters":{"shape":"KeywordFilterList"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "DescribeKeywordsResult":{ + "type":"structure", + "members":{ + "OriginationIdentityArn":{"shape":"String"}, + "OriginationIdentity":{"shape":"String"}, + "Keywords":{"shape":"KeywordInformationList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeOptOutListsRequest":{ + "type":"structure", + "members":{ + "OptOutListNames":{"shape":"OptOutListNameList"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "DescribeOptOutListsResult":{ + "type":"structure", + "members":{ + "OptOutLists":{"shape":"OptOutListInformationList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeOptedOutNumbersRequest":{ + "type":"structure", + "required":["OptOutListName"], + "members":{ + "OptOutListName":{"shape":"OptOutListNameOrArn"}, + "OptedOutNumbers":{"shape":"OptedOutNumberList"}, + "Filters":{"shape":"OptedOutFilterList"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "DescribeOptedOutNumbersResult":{ + "type":"structure", + "members":{ + "OptOutListArn":{"shape":"String"}, + "OptOutListName":{"shape":"OptOutListName"}, + "OptedOutNumbers":{"shape":"OptedOutNumberInformationList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribePhoneNumbersRequest":{ + "type":"structure", + "members":{ + "PhoneNumberIds":{"shape":"PhoneNumberIdList"}, + "Filters":{"shape":"PhoneNumberFilterList"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "DescribePhoneNumbersResult":{ + "type":"structure", + "members":{ + "PhoneNumbers":{"shape":"PhoneNumberInformationList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribePoolsRequest":{ + "type":"structure", + "members":{ + "PoolIds":{"shape":"PoolIdList"}, + "Filters":{"shape":"PoolFilterList"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "DescribePoolsResult":{ + "type":"structure", + "members":{ + "Pools":{"shape":"PoolInformationList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeSenderIdsRequest":{ + "type":"structure", + "members":{ + "SenderIds":{"shape":"SenderIdList"}, + "Filters":{"shape":"SenderIdFilterList"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "DescribeSenderIdsResult":{ + "type":"structure", + "members":{ + "SenderIds":{"shape":"SenderIdInformationList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeSpendLimitsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "DescribeSpendLimitsResult":{ + "type":"structure", + "members":{ + "SpendLimits":{"shape":"SpendLimitList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DestinationCountryParameterKey":{ + "type":"string", + "enum":[ + "IN_TEMPLATE_ID", + "IN_ENTITY_ID" + ] + }, + "DestinationCountryParameterValue":{ + "type":"string", + "max":64, + "min":1, + "pattern":"\\S+" + }, + "DestinationCountryParameters":{ + "type":"map", + "key":{"shape":"DestinationCountryParameterKey"}, + "value":{"shape":"DestinationCountryParameterValue"}, + "max":10, + "min":0 + }, + "DisassociateOriginationIdentityRequest":{ + "type":"structure", + "required":[ + "PoolId", + "OriginationIdentity", + "IsoCountryCode" + ], + "members":{ + "PoolId":{"shape":"PoolIdOrArn"}, + "OriginationIdentity":{"shape":"PhoneOrSenderIdOrArn"}, + "IsoCountryCode":{"shape":"IsoCountryCode"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "DisassociateOriginationIdentityResult":{ + "type":"structure", + "members":{ + "PoolArn":{"shape":"String"}, + "PoolId":{"shape":"String"}, + "OriginationIdentityArn":{"shape":"String"}, + "OriginationIdentity":{"shape":"String"}, + "IsoCountryCode":{"shape":"IsoCountryCode"} + } + }, + "EventDestination":{ + "type":"structure", + "required":[ + "EventDestinationName", + "Enabled", + "MatchingEventTypes" + ], + "members":{ + "EventDestinationName":{"shape":"EventDestinationName"}, + "Enabled":{"shape":"Boolean"}, + "MatchingEventTypes":{"shape":"EventTypeList"}, + "CloudWatchLogsDestination":{"shape":"CloudWatchLogsDestination"}, + "KinesisFirehoseDestination":{"shape":"KinesisFirehoseDestination"}, + "SnsDestination":{"shape":"SnsDestination"} + } + }, + "EventDestinationList":{ + "type":"list", + "member":{"shape":"EventDestination"} + }, + "EventDestinationName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[A-Za-z0-9_-]+" + }, + "EventType":{ + "type":"string", + "enum":[ + "ALL", + "TEXT_ALL", + "TEXT_SENT", + "TEXT_PENDING", + "TEXT_QUEUED", + "TEXT_SUCCESSFUL", + "TEXT_DELIVERED", + "TEXT_INVALID", + "TEXT_INVALID_MESSAGE", + "TEXT_UNREACHABLE", + "TEXT_CARRIER_UNREACHABLE", + "TEXT_BLOCKED", + "TEXT_CARRIER_BLOCKED", + "TEXT_SPAM", + "TEXT_UNKNOWN", + "TEXT_TTL_EXPIRED", + "VOICE_ALL", + "VOICE_INITIATED", + "VOICE_RINGING", + "VOICE_ANSWERED", + "VOICE_COMPLETED", + "VOICE_BUSY", + "VOICE_NO_ANSWER", + "VOICE_FAILED", + "VOICE_TTL_EXPIRED" + ] + }, + "EventTypeList":{ + "type":"list", + "member":{"shape":"EventType"}, + "max":25, + "min":1 + }, + "FilterValue":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[A-Za-z0-9_-]+" + }, + "FilterValueList":{ + "type":"list", + "member":{"shape":"FilterValue"}, + "max":20, + "min":1 + }, + "IamRoleArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:\\S+" + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "RequestId":{"shape":"String"} + }, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "IsoCountryCode":{ + "type":"string", + "max":2, + "min":2, + "pattern":"[A-Z]{2}" + }, + "Keyword":{ + "type":"string", + "max":30, + "min":1, + "pattern":"[ \\S]+" + }, + "KeywordAction":{ + "type":"string", + "enum":[ + "AUTOMATIC_RESPONSE", + "OPT_OUT", + "OPT_IN" + ] + }, + "KeywordFilter":{ + "type":"structure", + "required":[ + "Name", + "Values" + ], + "members":{ + "Name":{"shape":"KeywordFilterName"}, + "Values":{"shape":"FilterValueList"} + } + }, + "KeywordFilterList":{ + "type":"list", + "member":{"shape":"KeywordFilter"}, + "max":20, + "min":0 + }, + "KeywordFilterName":{ + "type":"string", + "enum":["keyword-action"] + }, + "KeywordInformation":{ + "type":"structure", + "required":[ + "Keyword", + "KeywordMessage", + "KeywordAction" + ], + "members":{ + "Keyword":{"shape":"Keyword"}, + "KeywordMessage":{"shape":"KeywordMessage"}, + "KeywordAction":{"shape":"KeywordAction"} + } + }, + "KeywordInformationList":{ + "type":"list", + "member":{"shape":"KeywordInformation"} + }, + "KeywordList":{ + "type":"list", + "member":{"shape":"Keyword"}, + "max":5, + "min":0 + }, + "KeywordMessage":{ + "type":"string", + "max":1600, + "min":1, + "pattern":"(?!\\s*$)[\\s\\S]+" + }, + "KinesisFirehoseDestination":{ + "type":"structure", + "required":[ + "IamRoleArn", + "DeliveryStreamArn" + ], + "members":{ + "IamRoleArn":{"shape":"IamRoleArn"}, + "DeliveryStreamArn":{"shape":"DeliveryStreamArn"} + } + }, + "ListPoolOriginationIdentitiesRequest":{ + "type":"structure", + "required":["PoolId"], + "members":{ + "PoolId":{"shape":"PoolIdOrArn"}, + "Filters":{"shape":"PoolOriginationIdentitiesFilterList"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "ListPoolOriginationIdentitiesResult":{ + "type":"structure", + "members":{ + "PoolArn":{"shape":"String"}, + "PoolId":{"shape":"String"}, + "OriginationIdentities":{"shape":"OriginationIdentityMetadataList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{"shape":"AmazonResourceName"} + } + }, + "ListTagsForResourceResult":{ + "type":"structure", + "members":{ + "ResourceArn":{"shape":"AmazonResourceName"}, + "Tags":{"shape":"TagList"} + } + }, + "LogGroupArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:\\S+" + }, + "MaxPrice":{ + "type":"string", + "max":8, + "min":2, + "pattern":"[0-9]{0,2}\\.[0-9]{1,5}" + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "MessageType":{ + "type":"string", + "enum":[ + "TRANSACTIONAL", + "PROMOTIONAL" + ] + }, + "MessageTypeList":{ + "type":"list", + "member":{"shape":"MessageType"} + }, + "MonthlyLimit":{ + "type":"long", + "box":true, + "max":1000000000, + "min":0 + }, + "NextToken":{ + "type":"string", + "max":1024, + "min":1, + "pattern":".+" + }, + "NonEmptyTagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":200, + "min":1 + }, + "NumberCapability":{ + "type":"string", + "enum":[ + "SMS", + "VOICE" + ] + }, + "NumberCapabilityList":{ + "type":"list", + "member":{"shape":"NumberCapability"}, + "max":2, + "min":1 + }, + "NumberStatus":{ + "type":"string", + "enum":[ + "PENDING", + "ACTIVE", + "ASSOCIATING", + "DISASSOCIATING", + "DELETED" + ] + }, + "NumberType":{ + "type":"string", + "enum":[ + "SHORT_CODE", + "LONG_CODE", + "TOLL_FREE", + "TEN_DLC" + ] + }, + "OptOutListInformation":{ + "type":"structure", + "required":[ + "OptOutListArn", + "OptOutListName", + "CreatedTimestamp" + ], + "members":{ + "OptOutListArn":{"shape":"String"}, + "OptOutListName":{"shape":"OptOutListName"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "OptOutListInformationList":{ + "type":"list", + "member":{"shape":"OptOutListInformation"} + }, + "OptOutListName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[A-Za-z0-9_-]+" + }, + "OptOutListNameList":{ + "type":"list", + "member":{"shape":"OptOutListNameOrArn"}, + "max":5, + "min":0 + }, + "OptOutListNameOrArn":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[A-Za-z0-9_:/-]+" + }, + "OptedOutFilter":{ + "type":"structure", + "required":[ + "Name", + "Values" + ], + "members":{ + "Name":{"shape":"OptedOutFilterName"}, + "Values":{"shape":"FilterValueList"} + } + }, + "OptedOutFilterList":{ + "type":"list", + "member":{"shape":"OptedOutFilter"}, + "max":20, + "min":0 + }, + "OptedOutFilterName":{ + "type":"string", + "enum":["end-user-opted-out"] + }, + "OptedOutNumberInformation":{ + "type":"structure", + "required":[ + "OptedOutNumber", + "OptedOutTimestamp", + "EndUserOptedOut" + ], + "members":{ + "OptedOutNumber":{"shape":"PhoneNumber"}, + "OptedOutTimestamp":{"shape":"Timestamp"}, + "EndUserOptedOut":{"shape":"PrimitiveBoolean"} + } + }, + "OptedOutNumberInformationList":{ + "type":"list", + "member":{"shape":"OptedOutNumberInformation"} + }, + "OptedOutNumberList":{ + "type":"list", + "member":{"shape":"PhoneNumber"}, + "max":5, + "min":0 + }, + "OriginationIdentityMetadata":{ + "type":"structure", + "required":[ + "OriginationIdentityArn", + "OriginationIdentity", + "IsoCountryCode", + "NumberCapabilities" + ], + "members":{ + "OriginationIdentityArn":{"shape":"String"}, + "OriginationIdentity":{"shape":"String"}, + "IsoCountryCode":{"shape":"IsoCountryCode"}, + "NumberCapabilities":{"shape":"NumberCapabilityList"} + } + }, + "OriginationIdentityMetadataList":{ + "type":"list", + "member":{"shape":"OriginationIdentityMetadata"} + }, + "PhoneNumber":{ + "type":"string", + "max":20, + "min":1, + "pattern":"\\+?[1-9][0-9]{1,18}" + }, + "PhoneNumberFilter":{ + "type":"structure", + "required":[ + "Name", + "Values" + ], + "members":{ + "Name":{"shape":"PhoneNumberFilterName"}, + "Values":{"shape":"FilterValueList"} + } + }, + "PhoneNumberFilterList":{ + "type":"list", + "member":{"shape":"PhoneNumberFilter"}, + "max":20, + "min":0 + }, + "PhoneNumberFilterName":{ + "type":"string", + "enum":[ + "status", + "iso-country-code", + "message-type", + "number-capability", + "number-type", + "two-way-enabled", + "self-managed-opt-outs-enabled", + "opt-out-list-name", + "deletion-protection-enabled" + ] + }, + "PhoneNumberIdList":{ + "type":"list", + "member":{"shape":"PhoneNumberIdOrArn"}, + "max":5, + "min":0 + }, + "PhoneNumberIdOrArn":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[A-Za-z0-9_:/-]+" + }, + "PhoneNumberInformation":{ + "type":"structure", + "required":[ + "PhoneNumberArn", + "PhoneNumber", + "Status", + "IsoCountryCode", + "MessageType", + "NumberCapabilities", + "NumberType", + "MonthlyLeasingPrice", + "TwoWayEnabled", + "SelfManagedOptOutsEnabled", + "OptOutListName", + "DeletionProtectionEnabled", + "CreatedTimestamp" + ], + "members":{ + "PhoneNumberArn":{"shape":"String"}, + "PhoneNumberId":{"shape":"String"}, + "PhoneNumber":{"shape":"PhoneNumber"}, + "Status":{"shape":"NumberStatus"}, + "IsoCountryCode":{"shape":"IsoCountryCode"}, + "MessageType":{"shape":"MessageType"}, + "NumberCapabilities":{"shape":"NumberCapabilityList"}, + "NumberType":{"shape":"NumberType"}, + "MonthlyLeasingPrice":{"shape":"String"}, + "TwoWayEnabled":{"shape":"PrimitiveBoolean"}, + "TwoWayChannelArn":{"shape":"TwoWayChannelArn"}, + "SelfManagedOptOutsEnabled":{"shape":"PrimitiveBoolean"}, + "OptOutListName":{"shape":"OptOutListName"}, + "DeletionProtectionEnabled":{"shape":"PrimitiveBoolean"}, + "PoolId":{"shape":"String"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "PhoneNumberInformationList":{ + "type":"list", + "member":{"shape":"PhoneNumberInformation"} + }, + "PhoneOrPoolIdOrArn":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[A-Za-z0-9_:/-]+" + }, + "PhoneOrSenderIdOrArn":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[A-Za-z0-9_:/-]+" + }, + "PoolFilter":{ + "type":"structure", + "required":[ + "Name", + "Values" + ], + "members":{ + "Name":{"shape":"PoolFilterName"}, + "Values":{"shape":"FilterValueList"} + } + }, + "PoolFilterList":{ + "type":"list", + "member":{"shape":"PoolFilter"}, + "max":20, + "min":0 + }, + "PoolFilterName":{ + "type":"string", + "enum":[ + "status", + "message-type", + "two-way-enabled", + "self-managed-opt-outs-enabled", + "opt-out-list-name", + "shared-routes-enabled", + "deletion-protection-enabled" + ] + }, + "PoolIdList":{ + "type":"list", + "member":{"shape":"PoolIdOrArn"}, + "max":5, + "min":0 + }, + "PoolIdOrArn":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[A-Za-z0-9_:/-]+" + }, + "PoolInformation":{ + "type":"structure", + "required":[ + "PoolArn", + "PoolId", + "Status", + "MessageType", + "TwoWayEnabled", + "SelfManagedOptOutsEnabled", + "OptOutListName", + "SharedRoutesEnabled", + "DeletionProtectionEnabled", + "CreatedTimestamp" + ], + "members":{ + "PoolArn":{"shape":"String"}, + "PoolId":{"shape":"String"}, + "Status":{"shape":"PoolStatus"}, + "MessageType":{"shape":"MessageType"}, + "TwoWayEnabled":{"shape":"PrimitiveBoolean"}, + "TwoWayChannelArn":{"shape":"TwoWayChannelArn"}, + "SelfManagedOptOutsEnabled":{"shape":"PrimitiveBoolean"}, + "OptOutListName":{"shape":"OptOutListName"}, + "SharedRoutesEnabled":{"shape":"PrimitiveBoolean"}, + "DeletionProtectionEnabled":{"shape":"PrimitiveBoolean"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "PoolInformationList":{ + "type":"list", + "member":{"shape":"PoolInformation"} + }, + "PoolOriginationIdentitiesFilter":{ + "type":"structure", + "required":[ + "Name", + "Values" + ], + "members":{ + "Name":{"shape":"PoolOriginationIdentitiesFilterName"}, + "Values":{"shape":"FilterValueList"} + } + }, + "PoolOriginationIdentitiesFilterList":{ + "type":"list", + "member":{"shape":"PoolOriginationIdentitiesFilter"}, + "max":20, + "min":0 + }, + "PoolOriginationIdentitiesFilterName":{ + "type":"string", + "enum":[ + "iso-country-code", + "number-capability" + ] + }, + "PoolStatus":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "DELETING" + ] + }, + "PrimitiveBoolean":{"type":"boolean"}, + "PrimitiveLong":{"type":"long"}, + "PutKeywordRequest":{ + "type":"structure", + "required":[ + "OriginationIdentity", + "Keyword", + "KeywordMessage" + ], + "members":{ + "OriginationIdentity":{"shape":"PhoneOrPoolIdOrArn"}, + "Keyword":{"shape":"Keyword"}, + "KeywordMessage":{"shape":"KeywordMessage"}, + "KeywordAction":{"shape":"KeywordAction"} + } + }, + "PutKeywordResult":{ + "type":"structure", + "members":{ + "OriginationIdentityArn":{"shape":"String"}, + "OriginationIdentity":{"shape":"String"}, + "Keyword":{"shape":"Keyword"}, + "KeywordMessage":{"shape":"KeywordMessage"}, + "KeywordAction":{"shape":"KeywordAction"} + } + }, + "PutOptedOutNumberRequest":{ + "type":"structure", + "required":[ + "OptOutListName", + "OptedOutNumber" + ], + "members":{ + "OptOutListName":{"shape":"OptOutListNameOrArn"}, + "OptedOutNumber":{"shape":"PhoneNumber"} + } + }, + "PutOptedOutNumberResult":{ + "type":"structure", + "members":{ + "OptOutListArn":{"shape":"String"}, + "OptOutListName":{"shape":"OptOutListName"}, + "OptedOutNumber":{"shape":"PhoneNumber"}, + "OptedOutTimestamp":{"shape":"Timestamp"}, + "EndUserOptedOut":{"shape":"PrimitiveBoolean"} + } + }, + "RegistrationId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"\\S+" + }, + "ReleasePhoneNumberRequest":{ + "type":"structure", + "required":["PhoneNumberId"], + "members":{ + "PhoneNumberId":{"shape":"PhoneNumberIdOrArn"} + } + }, + "ReleasePhoneNumberResult":{ + "type":"structure", + "members":{ + "PhoneNumberArn":{"shape":"String"}, + "PhoneNumberId":{"shape":"String"}, + "PhoneNumber":{"shape":"PhoneNumber"}, + "Status":{"shape":"NumberStatus"}, + "IsoCountryCode":{"shape":"IsoCountryCode"}, + "MessageType":{"shape":"MessageType"}, + "NumberCapabilities":{"shape":"NumberCapabilityList"}, + "NumberType":{"shape":"NumberType"}, + "MonthlyLeasingPrice":{"shape":"String"}, + "TwoWayEnabled":{"shape":"PrimitiveBoolean"}, + "TwoWayChannelArn":{"shape":"TwoWayChannelArn"}, + "SelfManagedOptOutsEnabled":{"shape":"PrimitiveBoolean"}, + "OptOutListName":{"shape":"OptOutListName"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "RequestPhoneNumberRequest":{ + "type":"structure", + "required":[ + "IsoCountryCode", + "MessageType", + "NumberCapabilities", + "NumberType" + ], + "members":{ + "IsoCountryCode":{"shape":"IsoCountryCode"}, + "MessageType":{"shape":"MessageType"}, + "NumberCapabilities":{"shape":"NumberCapabilityList"}, + "NumberType":{"shape":"RequestableNumberType"}, + "OptOutListName":{"shape":"OptOutListNameOrArn"}, + "PoolId":{"shape":"PoolIdOrArn"}, + "RegistrationId":{"shape":"RegistrationId"}, + "DeletionProtectionEnabled":{"shape":"Boolean"}, + "Tags":{"shape":"TagList"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "RequestPhoneNumberResult":{ + "type":"structure", + "members":{ + "PhoneNumberArn":{"shape":"String"}, + "PhoneNumberId":{"shape":"String"}, + "PhoneNumber":{"shape":"PhoneNumber"}, + "Status":{"shape":"NumberStatus"}, + "IsoCountryCode":{"shape":"IsoCountryCode"}, + "MessageType":{"shape":"MessageType"}, + "NumberCapabilities":{"shape":"NumberCapabilityList"}, + "NumberType":{"shape":"RequestableNumberType"}, + "MonthlyLeasingPrice":{"shape":"String"}, + "TwoWayEnabled":{"shape":"PrimitiveBoolean"}, + "TwoWayChannelArn":{"shape":"TwoWayChannelArn"}, + "SelfManagedOptOutsEnabled":{"shape":"PrimitiveBoolean"}, + "OptOutListName":{"shape":"OptOutListName"}, + "DeletionProtectionEnabled":{"shape":"PrimitiveBoolean"}, + "PoolId":{"shape":"String"}, + "Tags":{"shape":"TagList"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "RequestableNumberType":{ + "type":"string", + "enum":[ + "LONG_CODE", + "TOLL_FREE", + "TEN_DLC" + ] + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "ResourceType":{"shape":"ResourceType"}, + "ResourceId":{"shape":"String"} + }, + "exception":true + }, + "ResourceType":{ + "type":"string", + "enum":[ + "account", + "phone-number", + "sender-id", + "pool", + "configuration-set", + "opt-out-list", + "event-destination", + "keyword", + "opted-out-number", + "registration" + ] + }, + "SendTextMessageRequest":{ + "type":"structure", + "required":["DestinationPhoneNumber"], + "members":{ + "DestinationPhoneNumber":{"shape":"PhoneNumber"}, + "OriginationIdentity":{"shape":"TextMessageOriginationIdentity"}, + "MessageBody":{"shape":"TextMessageBody"}, + "MessageType":{"shape":"MessageType"}, + "Keyword":{"shape":"Keyword"}, + "ConfigurationSetName":{"shape":"ConfigurationSetNameOrArn"}, + "MaxPrice":{"shape":"MaxPrice"}, + "TimeToLive":{"shape":"TimeToLive"}, + "Context":{"shape":"ContextMap"}, + "DestinationCountryParameters":{"shape":"DestinationCountryParameters"}, + "DryRun":{"shape":"PrimitiveBoolean"} + } + }, + "SendTextMessageResult":{ + "type":"structure", + "members":{ + "MessageId":{"shape":"String"} + } + }, + "SendVoiceMessageRequest":{ + "type":"structure", + "required":[ + "DestinationPhoneNumber", + "OriginationIdentity" + ], + "members":{ + "DestinationPhoneNumber":{"shape":"PhoneNumber"}, + "OriginationIdentity":{"shape":"VoiceMessageOriginationIdentity"}, + "MessageBody":{"shape":"VoiceMessageBody"}, + "MessageBodyTextType":{"shape":"VoiceMessageBodyTextType"}, + "VoiceId":{"shape":"VoiceId"}, + "ConfigurationSetName":{"shape":"ConfigurationSetNameOrArn"}, + "MaxPricePerMinute":{"shape":"MaxPrice"}, + "TimeToLive":{"shape":"TimeToLive"}, + "Context":{"shape":"ContextMap"}, + "DryRun":{"shape":"PrimitiveBoolean"} + } + }, + "SendVoiceMessageResult":{ + "type":"structure", + "members":{ + "MessageId":{"shape":"String"} + } + }, + "SenderId":{ + "type":"string", + "max":11, + "min":1, + "pattern":"[A-Za-z0-9_-]+" + }, + "SenderIdAndCountry":{ + "type":"structure", + "required":[ + "SenderId", + "IsoCountryCode" + ], + "members":{ + "SenderId":{"shape":"SenderIdOrArn"}, + "IsoCountryCode":{"shape":"IsoCountryCode"} + } + }, + "SenderIdFilter":{ + "type":"structure", + "required":[ + "Name", + "Values" + ], + "members":{ + "Name":{"shape":"SenderIdFilterName"}, + "Values":{"shape":"FilterValueList"} + } + }, + "SenderIdFilterList":{ + "type":"list", + "member":{"shape":"SenderIdFilter"}, + "max":20, + "min":0 + }, + "SenderIdFilterName":{ + "type":"string", + "enum":[ + "sender-id", + "iso-country-code", + "message-type" + ] + }, + "SenderIdInformation":{ + "type":"structure", + "required":[ + "SenderIdArn", + "SenderId", + "IsoCountryCode", + "MessageTypes", + "MonthlyLeasingPrice" + ], + "members":{ + "SenderIdArn":{"shape":"String"}, + "SenderId":{"shape":"SenderId"}, + "IsoCountryCode":{"shape":"IsoCountryCode"}, + "MessageTypes":{"shape":"MessageTypeList"}, + "MonthlyLeasingPrice":{"shape":"String"} + } + }, + "SenderIdInformationList":{ + "type":"list", + "member":{"shape":"SenderIdInformation"} + }, + "SenderIdList":{ + "type":"list", + "member":{"shape":"SenderIdAndCountry"}, + "max":5, + "min":0 + }, + "SenderIdOrArn":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[A-Za-z0-9_:/-]+" + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "Reason":{"shape":"ServiceQuotaExceededExceptionReason"} + }, + "exception":true + }, + "ServiceQuotaExceededExceptionReason":{ + "type":"string", + "enum":[ + "CONFIGURATION_SETS_PER_ACCOUNT", + "DAILY_DESTINATION_CALL_LIMIT", + "EVENT_DESTINATIONS_PER_CONFIGURATION_SET", + "KEYWORDS_PER_PHONE_NUMBER", + "KEYWORDS_PER_POOL", + "MONTHLY_SPEND_LIMIT_REACHED_FOR_TEXT", + "MONTHLY_SPEND_LIMIT_REACHED_FOR_VOICE", + "OPT_OUT_LISTS_PER_ACCOUNT", + "ORIGINATION_IDENTITIES_PER_POOL", + "PHONE_NUMBERS_PER_ACCOUNT", + "PHONE_NUMBERS_PER_REGISTRATION", + "POOLS_PER_ACCOUNT", + "TAGS_PER_RESOURCE" + ] + }, + "SetDefaultMessageTypeRequest":{ + "type":"structure", + "required":[ + "ConfigurationSetName", + "MessageType" + ], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetNameOrArn"}, + "MessageType":{"shape":"MessageType"} + } + }, + "SetDefaultMessageTypeResult":{ + "type":"structure", + "members":{ + "ConfigurationSetArn":{"shape":"String"}, + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "MessageType":{"shape":"MessageType"} + } + }, + "SetDefaultSenderIdRequest":{ + "type":"structure", + "required":[ + "ConfigurationSetName", + "SenderId" + ], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetNameOrArn"}, + "SenderId":{"shape":"SenderId"} + } + }, + "SetDefaultSenderIdResult":{ + "type":"structure", + "members":{ + "ConfigurationSetArn":{"shape":"String"}, + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "SenderId":{"shape":"SenderId"} + } + }, + "SetTextMessageSpendLimitOverrideRequest":{ + "type":"structure", + "required":["MonthlyLimit"], + "members":{ + "MonthlyLimit":{"shape":"MonthlyLimit"} + } + }, + "SetTextMessageSpendLimitOverrideResult":{ + "type":"structure", + "members":{ + "MonthlyLimit":{"shape":"MonthlyLimit"} + } + }, + "SetVoiceMessageSpendLimitOverrideRequest":{ + "type":"structure", + "required":["MonthlyLimit"], + "members":{ + "MonthlyLimit":{"shape":"MonthlyLimit"} + } + }, + "SetVoiceMessageSpendLimitOverrideResult":{ + "type":"structure", + "members":{ + "MonthlyLimit":{"shape":"MonthlyLimit"} + } + }, + "SnsDestination":{ + "type":"structure", + "required":["TopicArn"], + "members":{ + "TopicArn":{"shape":"SnsTopicArn"} + } + }, + "SnsTopicArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:\\S+" + }, + "SpendLimit":{ + "type":"structure", + "required":[ + "Name", + "EnforcedLimit", + "MaxLimit", + "Overridden" + ], + "members":{ + "Name":{"shape":"SpendLimitName"}, + "EnforcedLimit":{"shape":"PrimitiveLong"}, + "MaxLimit":{"shape":"PrimitiveLong"}, + "Overridden":{"shape":"PrimitiveBoolean"} + } + }, + "SpendLimitList":{ + "type":"list", + "member":{"shape":"SpendLimit"} + }, + "SpendLimitName":{ + "type":"string", + "enum":[ + "TEXT_MESSAGE_MONTHLY_SPEND_LIMIT", + "VOICE_MESSAGE_MONTHLY_SPEND_LIMIT" + ] + }, + "String":{"type":"string"}, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":".+" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":1 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" + ], + "members":{ + "ResourceArn":{"shape":"AmazonResourceName"}, + "Tags":{"shape":"NonEmptyTagList"} + } + }, + "TagResourceResult":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":".*" + }, + "TextMessageBody":{ + "type":"string", + "max":1600, + "min":1, + "pattern":"(?!\\s*$)[\\s\\S]+" + }, + "TextMessageOriginationIdentity":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[A-Za-z0-9_:/\\+-]+" + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true, + "retryable":{"throttling":true} + }, + "TimeToLive":{ + "type":"integer", + "box":true, + "max":259200, + "min":5 + }, + "Timestamp":{"type":"timestamp"}, + "TwoWayChannelArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:\\S+" + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{"shape":"AmazonResourceName"}, + "TagKeys":{"shape":"TagKeyList"} + } + }, + "UntagResourceResult":{ + "type":"structure", + "members":{ + } + }, + "UpdateEventDestinationRequest":{ + "type":"structure", + "required":[ + "ConfigurationSetName", + "EventDestinationName" + ], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetNameOrArn"}, + "EventDestinationName":{"shape":"EventDestinationName"}, + "Enabled":{"shape":"Boolean"}, + "MatchingEventTypes":{"shape":"EventTypeList"}, + "CloudWatchLogsDestination":{"shape":"CloudWatchLogsDestination"}, + "KinesisFirehoseDestination":{"shape":"KinesisFirehoseDestination"}, + "SnsDestination":{"shape":"SnsDestination"} + } + }, + "UpdateEventDestinationResult":{ + "type":"structure", + "members":{ + "ConfigurationSetArn":{"shape":"String"}, + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "EventDestination":{"shape":"EventDestination"} + } + }, + "UpdatePhoneNumberRequest":{ + "type":"structure", + "required":["PhoneNumberId"], + "members":{ + "PhoneNumberId":{"shape":"PhoneNumberIdOrArn"}, + "TwoWayEnabled":{"shape":"Boolean"}, + "TwoWayChannelArn":{"shape":"TwoWayChannelArn"}, + "SelfManagedOptOutsEnabled":{"shape":"Boolean"}, + "OptOutListName":{"shape":"OptOutListNameOrArn"}, + "DeletionProtectionEnabled":{"shape":"Boolean"} + } + }, + "UpdatePhoneNumberResult":{ + "type":"structure", + "members":{ + "PhoneNumberArn":{"shape":"String"}, + "PhoneNumberId":{"shape":"String"}, + "PhoneNumber":{"shape":"PhoneNumber"}, + "Status":{"shape":"NumberStatus"}, + "IsoCountryCode":{"shape":"IsoCountryCode"}, + "MessageType":{"shape":"MessageType"}, + "NumberCapabilities":{"shape":"NumberCapabilityList"}, + "NumberType":{"shape":"NumberType"}, + "MonthlyLeasingPrice":{"shape":"String"}, + "TwoWayEnabled":{"shape":"PrimitiveBoolean"}, + "TwoWayChannelArn":{"shape":"TwoWayChannelArn"}, + "SelfManagedOptOutsEnabled":{"shape":"PrimitiveBoolean"}, + "OptOutListName":{"shape":"OptOutListName"}, + "DeletionProtectionEnabled":{"shape":"PrimitiveBoolean"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "UpdatePoolRequest":{ + "type":"structure", + "required":["PoolId"], + "members":{ + "PoolId":{"shape":"PoolIdOrArn"}, + "TwoWayEnabled":{"shape":"Boolean"}, + "TwoWayChannelArn":{"shape":"TwoWayChannelArn"}, + "SelfManagedOptOutsEnabled":{"shape":"Boolean"}, + "OptOutListName":{"shape":"OptOutListNameOrArn"}, + "SharedRoutesEnabled":{"shape":"Boolean"}, + "DeletionProtectionEnabled":{"shape":"Boolean"} + } + }, + "UpdatePoolResult":{ + "type":"structure", + "members":{ + "PoolArn":{"shape":"String"}, + "PoolId":{"shape":"String"}, + "Status":{"shape":"PoolStatus"}, + "MessageType":{"shape":"MessageType"}, + "TwoWayEnabled":{"shape":"PrimitiveBoolean"}, + "TwoWayChannelArn":{"shape":"TwoWayChannelArn"}, + "SelfManagedOptOutsEnabled":{"shape":"PrimitiveBoolean"}, + "OptOutListName":{"shape":"OptOutListName"}, + "SharedRoutesEnabled":{"shape":"PrimitiveBoolean"}, + "DeletionProtectionEnabled":{"shape":"PrimitiveBoolean"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "Reason":{"shape":"ValidationExceptionReason"}, + "Fields":{"shape":"ValidationExceptionFieldList"} + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "Name", + "Message" + ], + "members":{ + "Name":{"shape":"String"}, + "Message":{"shape":"String"} + } + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "UNKNOWN_OPERATION", + "CANNOT_PARSE", + "FIELD_VALIDATION_FAILED", + "OTHER", + "INVALID_PARAMETER", + "INVALID_ARN", + "INVALID_IDENTITY_FOR_DESTINATION_COUNTRY", + "DESTINATION_COUNTRY_BLOCKED", + "CANNOT_ADD_OPTED_OUT_NUMBER", + "COUNTRY_CODE_MISMATCH", + "INVALID_FILTER_VALUES", + "INVALID_NEXT_TOKEN", + "MISSING_PARAMETER", + "PARAMETERS_CANNOT_BE_USED_TOGETHER", + "PHONE_NUMBER_CANNOT_BE_OPTED_IN", + "PHONE_NUMBER_CANNOT_BE_RELEASED", + "PRICE_OVER_THRESHOLD", + "REQUESTED_SPEND_LIMIT_HIGHER_THAN_SERVICE_LIMIT", + "SENDER_ID_NOT_REGISTERED", + "SENDER_ID_NOT_SUPPORTED", + "TWO_WAY_NOT_ENABLED", + "TWO_WAY_NOT_SUPPORTED_IN_COUNTRY", + "TWO_WAY_NOT_SUPPORTED_IN_REGION", + "TWO_WAY_TOPIC_NOT_PRESENT" + ] + }, + "VoiceId":{ + "type":"string", + "enum":[ + "AMY", + "ASTRID", + "BIANCA", + "BRIAN", + "CAMILA", + "CARLA", + "CARMEN", + "CELINE", + "CHANTAL", + "CONCHITA", + "CRISTIANO", + "DORA", + "EMMA", + "ENRIQUE", + "EWA", + "FILIZ", + "GERAINT", + "GIORGIO", + "GWYNETH", + "HANS", + "INES", + "IVY", + "JACEK", + "JAN", + "JOANNA", + "JOEY", + "JUSTIN", + "KARL", + "KENDRA", + "KIMBERLY", + "LEA", + "LIV", + "LOTTE", + "LUCIA", + "LUPE", + "MADS", + "MAJA", + "MARLENE", + "MATHIEU", + "MATTHEW", + "MAXIM", + "MIA", + "MIGUEL", + "MIZUKI", + "NAJA", + "NICOLE", + "PENELOPE", + "RAVEENA", + "RICARDO", + "RUBEN", + "RUSSELL", + "SALLI", + "SEOYEON", + "TAKUMI", + "TATYANA", + "VICKI", + "VITORIA", + "ZEINA", + "ZHIYU" + ] + }, + "VoiceMessageBody":{ + "type":"string", + "max":6000, + "min":1, + "pattern":"(?!\\s*$)[\\s\\S]+" + }, + "VoiceMessageBodyTextType":{ + "type":"string", + "enum":[ + "TEXT", + "SSML" + ] + }, + "VoiceMessageOriginationIdentity":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[A-Za-z0-9_:/\\+-]+" + } + } +} diff --git a/apis/pinpoint-sms-voice-v2/2022-03-31/docs-2.json b/apis/pinpoint-sms-voice-v2/2022-03-31/docs-2.json new file mode 100644 index 00000000000..36b3a27ae86 --- /dev/null +++ b/apis/pinpoint-sms-voice-v2/2022-03-31/docs-2.json @@ -0,0 +1,1641 @@ +{ + "version": "2.0", + "service": "

Welcome to the Amazon Pinpoint SMS and Voice, version 2 API Reference. This guide provides information about Amazon Pinpoint SMS and Voice, version 2 API resources, including supported HTTP methods, parameters, and schemas.

Amazon Pinpoint is an Amazon Web Services service that you can use to engage with your recipients across multiple messaging channels. The Amazon Pinpoint SMS and Voice, version 2 API provides programmatic access to options that are unique to the SMS and voice channels and supplements the resources provided by the Amazon Pinpoint API.

If you're new to Amazon Pinpoint, it's also helpful to review the Amazon Pinpoint Developer Guide. The Amazon Pinpoint Developer Guide provides tutorials, code samples, and procedures that demonstrate how to use Amazon Pinpoint features programmatically and how to integrate Amazon Pinpoint functionality into mobile apps and other types of applications. The guide also provides key information, such as Amazon Pinpoint integration with other Amazon Web Services services, and the quotas that apply to use of the service.

", + "operations": { + "AssociateOriginationIdentity": "

Associates the specified origination identity with a pool.

If the origination identity is a phone number and is already associated with another pool, an Error is returned. A sender ID can be associated with multiple pools.

If the origination identity configuration doesn't match the pool's configuration, an Error is returned.

", + "CreateConfigurationSet": "

Creates a new configuration set. After you create the configuration set, you can add one or more event destinations to it.

A configuration set is a set of rules that you apply to the SMS and voice messages that you send.

When you send a message, you can optionally specify a single configuration set.

", + "CreateEventDestination": "

Creates a new event destination in a configuration set.

An event destination is a location where you send message events. The event options are Amazon CloudWatch, Amazon Kinesis Data Firehose, or Amazon SNS. For example, when a message is delivered successfully, you can send information about that event to an event destination, or send notifications to endpoints that are subscribed to an Amazon SNS topic.

Each configuration set can contain between 0 and 5 event destinations. Each event destination can contain a reference to a single destination, such as a CloudWatch or Kinesis Data Firehose destination.

", + "CreateOptOutList": "

Creates a new opt-out list.

If the opt-out list name already exists, an Error is returned.

An opt-out list is a list of phone numbers that are opted out, meaning you can't send SMS or voice messages to them. If end user replies with the keyword \"STOP,\" an entry for the phone number is added to the opt-out list. In addition to STOP, your recipients can use any supported opt-out keyword, such as CANCEL or OPTOUT. For a list of supported opt-out keywords, see SMS opt out in the Amazon Pinpoint User Guide.

", + "CreatePool": "

Creates a new pool and associates the specified origination identity to the pool. A pool can include one or more phone numbers and SenderIds that are associated with your Amazon Web Services account.

The new pool inherits its configuration from the specified origination identity. This includes keywords, message type, opt-out list, two-way configuration, and self-managed opt-out configuration. Deletion protection isn't inherited from the origination identity and defaults to false.

If the origination identity is a phone number and is already associated with another pool, an Error is returned. A sender ID can be associated with multiple pools.

", + "DeleteConfigurationSet": "

Deletes an existing configuration set.

A configuration set is a set of rules that you apply to voice and SMS messages that you send. In a configuration set, you can specify a destination for specific types of events related to voice and SMS messages.

", + "DeleteDefaultMessageType": "

Deletes an existing default message type on a configuration set.

A message type is a type of messages that you plan to send. If you send account-related messages or time-sensitive messages such as one-time passcodes, choose Transactional. If you plan to send messages that contain marketing material or other promotional content, choose Promotional. This setting applies to your entire Amazon Web Services account.

", + "DeleteDefaultSenderId": "

Deletes an existing default sender ID on a configuration set.

A default sender ID is the identity that appears on recipients' devices when they receive SMS messages. Support for sender ID capabilities varies by country or region.

", + "DeleteEventDestination": "

Deletes an existing event destination.

An event destination is a location where you send response information about the messages that you send. For example, when a message is delivered successfully, you can send information about that event to an Amazon CloudWatch destination, or send notifications to endpoints that are subscribed to an Amazon SNS topic.

", + "DeleteKeyword": "

Deletes an existing keyword from an origination phone number or pool.

A keyword is a word that you can search for on a particular phone number or pool. It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, Amazon Pinpoint responds with a customizable message.

Keywords \"HELP\" and \"STOP\" can't be deleted or modified.

", + "DeleteOptOutList": "

Deletes an existing opt-out list. All opted out phone numbers in the opt-out list are deleted.

If the specified opt-out list name doesn't exist or is in-use by an origination phone number or pool, an Error is returned.

", + "DeleteOptedOutNumber": "

Deletes an existing opted out destination phone number from the specified opt-out list.

Each destination phone number can only be deleted once every 30 days.

If the specified destination phone number doesn't exist or if the opt-out list doesn't exist, an Error is returned.

", + "DeletePool": "

Deletes an existing pool. Deleting a pool disassociates all origination identities from that pool.

If the pool status isn't active or if deletion protection is enabled, an Error is returned.

A pool is a collection of phone numbers and SenderIds. A pool can include one or more phone numbers and SenderIds that are associated with your Amazon Web Services account.

", + "DeleteTextMessageSpendLimitOverride": "

Deletes an account-level monthly spending limit override for sending text messages. Deleting a spend limit override will set the EnforcedLimit to equal the MaxLimit, which is controlled by Amazon Web Services. For more information on spend limits (quotas) see Amazon Pinpoint quotas in the Amazon Pinpoint Developer Guide.

", + "DeleteVoiceMessageSpendLimitOverride": "

Deletes an account level monthly spend limit override for sending voice messages. Deleting a spend limit override sets the EnforcedLimit equal to the MaxLimit, which is controlled by Amazon Web Services. For more information on spending limits (quotas) see Amazon Pinpoint quotas in the Amazon Pinpoint Developer Guide.

", + "DescribeAccountAttributes": "

Describes attributes of your Amazon Web Services account. The supported account attributes include account tier, which indicates whether your account is in the sandbox or production environment. When you're ready to move your account out of the sandbox, create an Amazon Web Services Support case for a service limit increase request.

New Amazon Pinpoint accounts are placed into an SMS or voice sandbox. The sandbox protects both Amazon Web Services end recipients and SMS or voice recipients from fraud and abuse.

", + "DescribeAccountLimits": "

Describes the current Amazon Pinpoint SMS Voice V2 resource quotas for your account. The description for a quota includes the quota name, current usage toward that quota, and the quota's maximum value.

When you establish an Amazon Web Services account, the account has initial quotas on the maximum number of configuration sets, opt-out lists, phone numbers, and pools that you can create in a given Region. For more information see Amazon Pinpoint quotas in the Amazon Pinpoint Developer Guide.

", + "DescribeConfigurationSets": "

Describes the specified configuration sets or all in your account.

If you specify configuration set names, the output includes information for only the specified configuration sets. If you specify filters, the output includes information for only those configuration sets that meet the filter criteria. If you don't specify configuration set names or filters, the output includes information for all configuration sets.

If you specify a configuration set name that isn't valid, an error is returned.

", + "DescribeKeywords": "

Describes the specified keywords or all keywords on your origination phone number or pool.

A keyword is a word that you can search for on a particular phone number or pool. It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, Amazon Pinpoint responds with a customizable message.

If you specify a keyword that isn't valid, an Error is returned.

", + "DescribeOptOutLists": "

Describes the specified opt-out list or all opt-out lists in your account.

If you specify opt-out list names, the output includes information for only the specified opt-out lists. Opt-out lists include only those that meet the filter criteria. If you don't specify opt-out list names or filters, the output includes information for all opt-out lists.

If you specify an opt-out list name that isn't valid, an Error is returned.

", + "DescribeOptedOutNumbers": "

Describes the specified opted out destination numbers or all opted out destination numbers in an opt-out list.

If you specify opted out numbers, the output includes information for only the specified opted out numbers. If you specify filters, the output includes information for only those opted out numbers that meet the filter criteria. If you don't specify opted out numbers or filters, the output includes information for all opted out destination numbers in your opt-out list.

If you specify an opted out number that isn't valid, an Error is returned.

", + "DescribePhoneNumbers": "

Describes the specified origination phone number, or all the phone numbers in your account.

If you specify phone number IDs, the output includes information for only the specified phone numbers. If you specify filters, the output includes information for only those phone numbers that meet the filter criteria. If you don't specify phone number IDs or filters, the output includes information for all phone numbers.

If you specify a phone number ID that isn't valid, an Error is returned.

", + "DescribePools": "

Retrieves the specified pools or all pools associated with your Amazon Web Services account.

If you specify pool IDs, the output includes information for only the specified pools. If you specify filters, the output includes information for only those pools that meet the filter criteria. If you don't specify pool IDs or filters, the output includes information for all pools.

If you specify a pool ID that isn't valid, an Error is returned.

A pool is a collection of phone numbers and SenderIds. A pool can include one or more phone numbers and SenderIds that are associated with your Amazon Web Services account.

", + "DescribeSenderIds": "

Describes the specified SenderIds or all SenderIds associated with your Amazon Web Services account.

If you specify SenderIds, the output includes information for only the specified SenderIds. If you specify filters, the output includes information for only those SenderIds that meet the filter criteria. If you don't specify SenderIds or filters, the output includes information for all SenderIds.

f you specify a sender ID that isn't valid, an Error is returned.

", + "DescribeSpendLimits": "

Describes the current Amazon Pinpoint monthly spend limits for sending voice and text messages.

When you establish an Amazon Web Services account, the account has initial monthly spend limit in a given Region. For more information on increasing your monthly spend limit, see Requesting increases to your monthly SMS spending quota for Amazon Pinpoint in the Amazon Pinpoint User Guide.

", + "DisassociateOriginationIdentity": "

Removes the specified origination identity from an existing pool.

If the origination identity isn't associated with the specified pool, an Error is returned.

", + "ListPoolOriginationIdentities": "

Lists all associated origination identities in your pool.

If you specify filters, the output includes information for only those origination identities that meet the filter criteria.

", + "ListTagsForResource": "

List all tags associated with a resource.

", + "PutKeyword": "

Creates or updates a keyword configuration on an origination phone number or pool.

A keyword is a word that you can search for on a particular phone number or pool. It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, Amazon Pinpoint responds with a customizable message.

If you specify a keyword that isn't valid, an Error is returned.

", + "PutOptedOutNumber": "

Creates an opted out destination phone number in the opt-out list.

If the destination phone number isn't valid or if the specified opt-out list doesn't exist, an Error is returned.

", + "ReleasePhoneNumber": "

Releases an existing origination phone number in your account. Once released, a phone number is no longer available for sending messages.

If the origination phone number has deletion protection enabled or is associated with a pool, an Error is returned.

", + "RequestPhoneNumber": "

Request an origination phone number for use in your account. For more information on phone number request see Requesting a number in the Amazon Pinpoint User Guide.

", + "SendTextMessage": "

Creates a new text message and sends it to a recipient's phone number.

SMS throughput limits are measured in Message Parts per Second (MPS). Your MPS limit depends on the destination country of your messages, as well as the type of phone number (origination number) that you use to send the message. For more information, see Message Parts per Second (MPS) limits in the Amazon Pinpoint User Guide.

", + "SendVoiceMessage": "

Allows you to send a request that sends a text message through Amazon Pinpoint. This operation uses Amazon Polly to convert a text script into a voice message.

", + "SetDefaultMessageType": "

Sets the default message type on a configuration set.

Choose the category of SMS messages that you plan to send from this account. If you send account-related messages or time-sensitive messages such as one-time passcodes, choose Transactional. If you plan to send messages that contain marketing material or other promotional content, choose Promotional. This setting applies to your entire Amazon Web Services account.

", + "SetDefaultSenderId": "

Sets default sender ID on a configuration set.

When sending a text message to a destination country that supports sender IDs, the default sender ID on the configuration set specified will be used if no dedicated origination phone numbers or registered sender IDs are available in your account.

", + "SetTextMessageSpendLimitOverride": "

Sets an account level monthly spend limit override for sending text messages. The requested spend limit must be less than or equal to the MaxLimit, which is set by Amazon Web Services.

", + "SetVoiceMessageSpendLimitOverride": "

Sets an account level monthly spend limit override for sending voice messages. The requested spend limit must be less than or equal to the MaxLimit, which is set by Amazon Web Services.

", + "TagResource": "

Adds or overwrites only the specified tags for the specified Amazon Pinpoint SMS Voice, version 2 resource. When you specify an existing tag key, the value is overwritten with the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and an optional value. Tag keys must be unique per resource. For more information about tags, see Tagging Amazon Pinpoint resources in the Amazon Pinpoint Developer Guide.

", + "UntagResource": "

Removes the association of the specified tags from an Amazon Pinpoint SMS Voice V2 resource. For more information on tags see Tagging Amazon Pinpoint resources in the Amazon Pinpoint Developer Guide.

", + "UpdateEventDestination": "

Updates an existing event destination in a configuration set. You can update the IAM role ARN for CloudWatch Logs and Kinesis Data Firehose. You can also enable or disable the event destination.

You may want to update an event destination to change its matching event types or updating the destination resource ARN. You can't change an event destination's type between CloudWatch Logs, Kinesis Data Firehose, and Amazon SNS.

", + "UpdatePhoneNumber": "

Updates the configuration of an existing origination phone number. You can update the opt-out list, enable or disable two-way messaging, change the TwoWayChannelArn, enable or disable self-managed opt-outs, and enable or disable deletion protection.

If the origination phone number is associated with a pool, an Error is returned.

", + "UpdatePool": "

Updates the configuration of an existing pool. You can update the opt-out list, enable or disable two-way messaging, change the TwoWayChannelArn, enable or disable self-managed opt-outs, enable or disable deletion protection, and enable or disable shared routes.

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

The request was denied because you don't have sufficient permissions to access the resource.

", + "refs": { + } + }, + "AccessDeniedExceptionReason": { + "base": null, + "refs": { + "AccessDeniedException$Reason": "

The reason for the exception.

" + } + }, + "AccountAttribute": { + "base": "

Displays the attributes associated with a single Amazon Web Services account.

", + "refs": { + "AccountAttributeList$member": null + } + }, + "AccountAttributeList": { + "base": null, + "refs": { + "DescribeAccountAttributesResult$AccountAttributes": "

An array of AccountAttributes objects.

" + } + }, + "AccountAttributeName": { + "base": null, + "refs": { + "AccountAttribute$Name": "

The name of the account attribute.

" + } + }, + "AccountLimit": { + "base": "

The current resource quotas associated with an Amazon Web Services account.

", + "refs": { + "AccountLimitList$member": null + } + }, + "AccountLimitList": { + "base": null, + "refs": { + "DescribeAccountLimitsResult$AccountLimits": "

An array of AccountLimit objects that show the current spend limits.

" + } + }, + "AccountLimitName": { + "base": null, + "refs": { + "AccountLimit$Name": "

The name of the attribute to apply the account limit to.

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

The Amazon Resource Name (ARN) of the resource to query for.

", + "ListTagsForResourceResult$ResourceArn": "

The ARN of the resource.

", + "TagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource.

", + "UntagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource.

" + } + }, + "AssociateOriginationIdentityRequest": { + "base": null, + "refs": { + } + }, + "AssociateOriginationIdentityResult": { + "base": null, + "refs": { + } + }, + "Boolean": { + "base": null, + "refs": { + "CreatePoolRequest$DeletionProtectionEnabled": "

By default this is set to false. When set to true the pool can't be deleted. You can change this value using the UpdatePool action.

", + "EventDestination$Enabled": "

When set to true events will be logged.

", + "RequestPhoneNumberRequest$DeletionProtectionEnabled": "

By default this is set to false. When set to true the phone number can't be deleted.

", + "UpdateEventDestinationRequest$Enabled": "

When set to true logging is enabled.

", + "UpdatePhoneNumberRequest$TwoWayEnabled": "

By default this is set to false. When set to true you can receive incoming text messages from your end recipients.

", + "UpdatePhoneNumberRequest$SelfManagedOptOutsEnabled": "

By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests.

", + "UpdatePhoneNumberRequest$DeletionProtectionEnabled": "

By default this is set to false. When set to true the phone number can't be deleted.

", + "UpdatePoolRequest$TwoWayEnabled": "

By default this is set to false. When set to true you can receive incoming text messages from your end recipients.

", + "UpdatePoolRequest$SelfManagedOptOutsEnabled": "

By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests.

", + "UpdatePoolRequest$SharedRoutesEnabled": "

Indicates whether shared routes are enabled for the pool.

", + "UpdatePoolRequest$DeletionProtectionEnabled": "

When set to true the pool can't be deleted.

" + } + }, + "ClientToken": { + "base": null, + "refs": { + "AssociateOriginationIdentityRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don't specify a client token, a randomly generated token is used for the request to ensure idempotency.

", + "CreateConfigurationSetRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don't specify a client token, a randomly generated token is used for the request to ensure idempotency.

", + "CreateEventDestinationRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don't specify a client token, a randomly generated token is used for the request to ensure idempotency.

", + "CreateOptOutListRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don't specify a client token, a randomly generated token is used for the request to ensure idempotency.

", + "CreatePoolRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don't specify a client token, a randomly generated token is used for the request to ensure idempotency.

", + "DisassociateOriginationIdentityRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you don't specify a client token, a randomly generated token is used for the request to ensure idempotency.

", + "RequestPhoneNumberRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don't specify a client token, a randomly generated token is used for the request to ensure idempotency.

" + } + }, + "CloudWatchLogsDestination": { + "base": "

Contains the destination configuration to use when publishing message sending events.

", + "refs": { + "CreateEventDestinationRequest$CloudWatchLogsDestination": "

An object that contains information about an event destination for logging to Amazon CloudWatch logs.

", + "EventDestination$CloudWatchLogsDestination": "

An object that contains information about an event destination that sends logging events to Amazon CloudWatch logs.

", + "UpdateEventDestinationRequest$CloudWatchLogsDestination": "

An object that contains information about an event destination that sends data to CloudWatch Logs.

" + } + }, + "ConfigurationSetFilter": { + "base": "

The information for configuration sets that meet a specified criteria.

", + "refs": { + "ConfigurationSetFilterList$member": null + } + }, + "ConfigurationSetFilterList": { + "base": null, + "refs": { + "DescribeConfigurationSetsRequest$Filters": "

An array of filters to apply to the results that are returned.

" + } + }, + "ConfigurationSetFilterName": { + "base": null, + "refs": { + "ConfigurationSetFilter$Name": "

The name of the attribute to filter on.

" + } + }, + "ConfigurationSetInformation": { + "base": "

Information related to a given configuration set in your Amazon Web Services account.

", + "refs": { + "ConfigurationSetInformationList$member": null + } + }, + "ConfigurationSetInformationList": { + "base": null, + "refs": { + "DescribeConfigurationSetsResult$ConfigurationSets": "

An array of ConfigurationSets objects.

" + } + }, + "ConfigurationSetName": { + "base": null, + "refs": { + "ConfigurationSetInformation$ConfigurationSetName": "

The name of the ConfigurationSet.

", + "CreateConfigurationSetRequest$ConfigurationSetName": "

The name to use for the new configuration set.

", + "CreateConfigurationSetResult$ConfigurationSetName": "

The name of the new configuration set.

", + "CreateEventDestinationResult$ConfigurationSetName": "

The name of the configuration set.

", + "DeleteConfigurationSetResult$ConfigurationSetName": "

The name of the deleted configuration set.

", + "DeleteDefaultMessageTypeResult$ConfigurationSetName": "

The name of the configuration set.

", + "DeleteDefaultSenderIdResult$ConfigurationSetName": "

The name of the configuration set.

", + "DeleteEventDestinationResult$ConfigurationSetName": "

The name of the configuration set the event destination was deleted from.

", + "SetDefaultMessageTypeResult$ConfigurationSetName": "

The name of the configuration set that was updated.

", + "SetDefaultSenderIdResult$ConfigurationSetName": "

The name of the configuration set that was updated.

", + "UpdateEventDestinationResult$ConfigurationSetName": "

The name of the configuration set.

" + } + }, + "ConfigurationSetNameList": { + "base": null, + "refs": { + "DescribeConfigurationSetsRequest$ConfigurationSetNames": "

An array of strings. Each element can be either a ConfigurationSetName or ConfigurationSetArn.

" + } + }, + "ConfigurationSetNameOrArn": { + "base": null, + "refs": { + "ConfigurationSetNameList$member": null, + "CreateEventDestinationRequest$ConfigurationSetName": "

Either the name of the configuration set or the configuration set ARN to apply event logging to. The ConfigurateSetName and ConfigurationSetArn can be found using the DescribeConfigurationSets action.

", + "DeleteConfigurationSetRequest$ConfigurationSetName": "

The name of the configuration set or the configuration set ARN that you want to delete. The ConfigurationSetName and ConfigurationSetArn can be found using the DescribeConfigurationSets action.

", + "DeleteDefaultMessageTypeRequest$ConfigurationSetName": "

The name of the configuration set or the configuration set Amazon Resource Name (ARN) to delete the default message type from. The ConfigurationSetName and ConfigurationSetArn can be found using the DescribeConfigurationSets action.

", + "DeleteDefaultSenderIdRequest$ConfigurationSetName": "

The name of the configuration set or the configuration set Amazon Resource Name (ARN) to delete the default sender ID from. The ConfigurationSetName and ConfigurationSetArn can be found using the DescribeConfigurationSets action.

", + "DeleteEventDestinationRequest$ConfigurationSetName": "

The name of the configuration set or the configuration set's Amazon Resource Name (ARN) to remove the event destination from. The ConfigurateSetName and ConfigurationSetArn can be found using the DescribeConfigurationSets action.

", + "SendTextMessageRequest$ConfigurationSetName": "

The name of the configuration set to use. This can be either the ConfigurationSetName or ConfigurationSetArn.

", + "SendVoiceMessageRequest$ConfigurationSetName": "

The name of the configuration set to use. This can be either the ConfigurationSetName or ConfigurationSetArn.

", + "SetDefaultMessageTypeRequest$ConfigurationSetName": "

The configuration set to update with a new default message type. This field can be the ConsigurationSetName or ConfigurationSetArn.

", + "SetDefaultSenderIdRequest$ConfigurationSetName": "

The configuration set to updated with a new default SenderId. This field can be the ConsigurationSetName or ConfigurationSetArn.

", + "UpdateEventDestinationRequest$ConfigurationSetName": "

The configuration set to update with the new event destination. Valid values for this can be the ConfigurationSetName or ConfigurationSetArn.

" + } + }, + "ConflictException": { + "base": "

Your request has conflicting operations. This can occur if you're trying to perform more than one operation on the same resource at the same time or it could be that the requested action isn't valid for the current state or configuration of the resource.

", + "refs": { + } + }, + "ConflictExceptionReason": { + "base": null, + "refs": { + "ConflictException$Reason": "

The reason for the exception.

" + } + }, + "ContextKey": { + "base": null, + "refs": { + "ContextMap$key": null + } + }, + "ContextMap": { + "base": null, + "refs": { + "SendTextMessageRequest$Context": "

You can specify custom data in this field. If you do, that data is logged to the event destination.

", + "SendVoiceMessageRequest$Context": "

You can specify custom data in this field. If you do, that data is logged to the event destination.

" + } + }, + "ContextValue": { + "base": null, + "refs": { + "ContextMap$value": null + } + }, + "CreateConfigurationSetRequest": { + "base": null, + "refs": { + } + }, + "CreateConfigurationSetResult": { + "base": null, + "refs": { + } + }, + "CreateEventDestinationRequest": { + "base": null, + "refs": { + } + }, + "CreateEventDestinationResult": { + "base": null, + "refs": { + } + }, + "CreateOptOutListRequest": { + "base": null, + "refs": { + } + }, + "CreateOptOutListResult": { + "base": null, + "refs": { + } + }, + "CreatePoolRequest": { + "base": null, + "refs": { + } + }, + "CreatePoolResult": { + "base": null, + "refs": { + } + }, + "DeleteConfigurationSetRequest": { + "base": null, + "refs": { + } + }, + "DeleteConfigurationSetResult": { + "base": null, + "refs": { + } + }, + "DeleteDefaultMessageTypeRequest": { + "base": null, + "refs": { + } + }, + "DeleteDefaultMessageTypeResult": { + "base": null, + "refs": { + } + }, + "DeleteDefaultSenderIdRequest": { + "base": null, + "refs": { + } + }, + "DeleteDefaultSenderIdResult": { + "base": null, + "refs": { + } + }, + "DeleteEventDestinationRequest": { + "base": null, + "refs": { + } + }, + "DeleteEventDestinationResult": { + "base": null, + "refs": { + } + }, + "DeleteKeywordRequest": { + "base": null, + "refs": { + } + }, + "DeleteKeywordResult": { + "base": null, + "refs": { + } + }, + "DeleteOptOutListRequest": { + "base": null, + "refs": { + } + }, + "DeleteOptOutListResult": { + "base": null, + "refs": { + } + }, + "DeleteOptedOutNumberRequest": { + "base": null, + "refs": { + } + }, + "DeleteOptedOutNumberResult": { + "base": null, + "refs": { + } + }, + "DeletePoolRequest": { + "base": null, + "refs": { + } + }, + "DeletePoolResult": { + "base": null, + "refs": { + } + }, + "DeleteTextMessageSpendLimitOverrideRequest": { + "base": null, + "refs": { + } + }, + "DeleteTextMessageSpendLimitOverrideResult": { + "base": null, + "refs": { + } + }, + "DeleteVoiceMessageSpendLimitOverrideRequest": { + "base": null, + "refs": { + } + }, + "DeleteVoiceMessageSpendLimitOverrideResult": { + "base": null, + "refs": { + } + }, + "DeliveryStreamArn": { + "base": null, + "refs": { + "KinesisFirehoseDestination$DeliveryStreamArn": "

The Amazon Resource Name (ARN) of the delivery stream.

" + } + }, + "DescribeAccountAttributesRequest": { + "base": null, + "refs": { + } + }, + "DescribeAccountAttributesResult": { + "base": null, + "refs": { + } + }, + "DescribeAccountLimitsRequest": { + "base": null, + "refs": { + } + }, + "DescribeAccountLimitsResult": { + "base": null, + "refs": { + } + }, + "DescribeConfigurationSetsRequest": { + "base": null, + "refs": { + } + }, + "DescribeConfigurationSetsResult": { + "base": null, + "refs": { + } + }, + "DescribeKeywordsRequest": { + "base": null, + "refs": { + } + }, + "DescribeKeywordsResult": { + "base": null, + "refs": { + } + }, + "DescribeOptOutListsRequest": { + "base": null, + "refs": { + } + }, + "DescribeOptOutListsResult": { + "base": null, + "refs": { + } + }, + "DescribeOptedOutNumbersRequest": { + "base": null, + "refs": { + } + }, + "DescribeOptedOutNumbersResult": { + "base": null, + "refs": { + } + }, + "DescribePhoneNumbersRequest": { + "base": null, + "refs": { + } + }, + "DescribePhoneNumbersResult": { + "base": null, + "refs": { + } + }, + "DescribePoolsRequest": { + "base": null, + "refs": { + } + }, + "DescribePoolsResult": { + "base": null, + "refs": { + } + }, + "DescribeSenderIdsRequest": { + "base": null, + "refs": { + } + }, + "DescribeSenderIdsResult": { + "base": null, + "refs": { + } + }, + "DescribeSpendLimitsRequest": { + "base": null, + "refs": { + } + }, + "DescribeSpendLimitsResult": { + "base": null, + "refs": { + } + }, + "DestinationCountryParameterKey": { + "base": null, + "refs": { + "DestinationCountryParameters$key": null + } + }, + "DestinationCountryParameterValue": { + "base": null, + "refs": { + "DestinationCountryParameters$value": null + } + }, + "DestinationCountryParameters": { + "base": null, + "refs": { + "SendTextMessageRequest$DestinationCountryParameters": "

This field is used for any country-specific registration requirements. Currently, this setting is only used when you send messages to recipients in India using a sender ID. For more information see Special requirements for sending SMS messages to recipients in India.

" + } + }, + "DisassociateOriginationIdentityRequest": { + "base": null, + "refs": { + } + }, + "DisassociateOriginationIdentityResult": { + "base": null, + "refs": { + } + }, + "EventDestination": { + "base": "

Contains information about an event destination.

Event destinations are associated with configuration sets, which enable you to publish message sending events to Amazon CloudWatch, Amazon Kinesis Data Firehose, or Amazon SNS.

", + "refs": { + "CreateEventDestinationResult$EventDestination": "

The details of the destination where events are logged.

", + "DeleteEventDestinationResult$EventDestination": "

The event destination object that was deleted.

", + "EventDestinationList$member": null, + "UpdateEventDestinationResult$EventDestination": "

An EventDestination object containing the details of where events will be logged.

" + } + }, + "EventDestinationList": { + "base": null, + "refs": { + "ConfigurationSetInformation$EventDestinations": "

An array of EventDestination objects that describe any events to log and where to log them.

", + "DeleteConfigurationSetResult$EventDestinations": "

An array of any EventDestination objects that were associated with the deleted configuration set.

" + } + }, + "EventDestinationName": { + "base": null, + "refs": { + "CreateEventDestinationRequest$EventDestinationName": "

The name that identifies the event destination.

", + "DeleteEventDestinationRequest$EventDestinationName": "

The name of the event destination to delete.

", + "EventDestination$EventDestinationName": "

The name of the EventDestination.

", + "UpdateEventDestinationRequest$EventDestinationName": "

The name to use for the event destination.

" + } + }, + "EventType": { + "base": null, + "refs": { + "EventTypeList$member": null + } + }, + "EventTypeList": { + "base": null, + "refs": { + "CreateEventDestinationRequest$MatchingEventTypes": "

An array of event types that determine which events to log. If \"ALL\" is used, then Amazon Pinpoint logs every event type.

", + "EventDestination$MatchingEventTypes": "

An array of event types that determine which events to log.

", + "UpdateEventDestinationRequest$MatchingEventTypes": "

An array of event types that determine which events to log.

" + } + }, + "FilterValue": { + "base": null, + "refs": { + "FilterValueList$member": null + } + }, + "FilterValueList": { + "base": null, + "refs": { + "ConfigurationSetFilter$Values": "

An array values to filter for.

", + "KeywordFilter$Values": "

An array values to filter for.

", + "OptedOutFilter$Values": "

An array of values to filter for.

", + "PhoneNumberFilter$Values": "

An array values to filter for.

", + "PoolFilter$Values": "

An array values to filter for.

", + "PoolOriginationIdentitiesFilter$Values": "

An array values to filter for.

", + "SenderIdFilter$Values": "

An array of values to filter for.

" + } + }, + "IamRoleArn": { + "base": null, + "refs": { + "CloudWatchLogsDestination$IamRoleArn": "

The Amazon Resource Name (ARN) of an Amazon Identity and Access Management (IAM) role that is able to write event data to an Amazon CloudWatch destination.

", + "KinesisFirehoseDestination$IamRoleArn": "

The ARN of an Amazon Identity and Access Management (IAM) role that is able to write event data to an Amazon Firehose destination.

" + } + }, + "InternalServerException": { + "base": "

The API encountered an unexpected error and couldn't complete the request. You might be able to successfully issue the request again in the future.

", + "refs": { + } + }, + "IsoCountryCode": { + "base": null, + "refs": { + "AssociateOriginationIdentityRequest$IsoCountryCode": "

The new two-character code, in ISO 3166-1 alpha-2 format, for the country or region of the origination identity.

", + "AssociateOriginationIdentityResult$IsoCountryCode": "

The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.

", + "CreatePoolRequest$IsoCountryCode": "

The new two-character code, in ISO 3166-1 alpha-2 format, for the country or region of the new pool.

", + "DisassociateOriginationIdentityRequest$IsoCountryCode": "

The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.

", + "DisassociateOriginationIdentityResult$IsoCountryCode": "

The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.

", + "OriginationIdentityMetadata$IsoCountryCode": "

The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.

", + "PhoneNumberInformation$IsoCountryCode": "

The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.

", + "ReleasePhoneNumberResult$IsoCountryCode": "

The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.

", + "RequestPhoneNumberRequest$IsoCountryCode": "

The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.

", + "RequestPhoneNumberResult$IsoCountryCode": "

The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.

", + "SenderIdAndCountry$IsoCountryCode": "

The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.

", + "SenderIdInformation$IsoCountryCode": "

The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.

", + "UpdatePhoneNumberResult$IsoCountryCode": "

The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.

" + } + }, + "Keyword": { + "base": null, + "refs": { + "DeleteKeywordRequest$Keyword": "

The keyword to delete.

", + "DeleteKeywordResult$Keyword": "

The keyword that was deleted.

", + "KeywordInformation$Keyword": "

The keyword as a string.

", + "KeywordList$member": null, + "PutKeywordRequest$Keyword": "

The new keyword to add.

", + "PutKeywordResult$Keyword": "

The keyword that was added.

", + "SendTextMessageRequest$Keyword": "

When you register a short code in the US, you must specify a program name. If you don’t have a US short code, omit this attribute.

" + } + }, + "KeywordAction": { + "base": null, + "refs": { + "DeleteKeywordResult$KeywordAction": "

The action that was associated with the deleted keyword.

", + "KeywordInformation$KeywordAction": "

The action to perform for the keyword.

", + "PutKeywordRequest$KeywordAction": "

The action to perform for the new keyword when it is received.

", + "PutKeywordResult$KeywordAction": "

The action to perform when the keyword is used.

" + } + }, + "KeywordFilter": { + "base": "

The information for keywords that meet a specified criteria.

", + "refs": { + "KeywordFilterList$member": null + } + }, + "KeywordFilterList": { + "base": null, + "refs": { + "DescribeKeywordsRequest$Filters": "

An array of keyword filters to filter the results.

" + } + }, + "KeywordFilterName": { + "base": null, + "refs": { + "KeywordFilter$Name": "

The name of the attribute to filter on.

" + } + }, + "KeywordInformation": { + "base": "

The information for all keywords in a pool.

", + "refs": { + "KeywordInformationList$member": null + } + }, + "KeywordInformationList": { + "base": null, + "refs": { + "DescribeKeywordsResult$Keywords": "

An array of KeywordInformation objects that contain the results.

" + } + }, + "KeywordList": { + "base": null, + "refs": { + "DescribeKeywordsRequest$Keywords": "

An array of keywords to search for.

" + } + }, + "KeywordMessage": { + "base": null, + "refs": { + "DeleteKeywordResult$KeywordMessage": "

The message that was associated with the deleted keyword.

", + "KeywordInformation$KeywordMessage": "

A custom message that can be used with the keyword.

", + "PutKeywordRequest$KeywordMessage": "

The message associated with the keyword.

", + "PutKeywordResult$KeywordMessage": "

The message associated with the keyword.

" + } + }, + "KinesisFirehoseDestination": { + "base": "

Contains the delivery stream Amazon Resource Name (ARN), and the ARN of the Identity and Access Management (IAM) role associated with an Kinesis Data Firehose event destination.

Event destinations, such as Kinesis Data Firehose, are associated with configuration sets, which enable you to publish message sending events.

", + "refs": { + "CreateEventDestinationRequest$KinesisFirehoseDestination": "

An object that contains information about an event destination for logging to Amazon Kinesis Data Firehose.

", + "EventDestination$KinesisFirehoseDestination": "

An object that contains information about an event destination for logging to Amazon Kinesis Data Firehose.

", + "UpdateEventDestinationRequest$KinesisFirehoseDestination": "

An object that contains information about an event destination for logging to Kinesis Data Firehose.

" + } + }, + "ListPoolOriginationIdentitiesRequest": { + "base": null, + "refs": { + } + }, + "ListPoolOriginationIdentitiesResult": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResult": { + "base": null, + "refs": { + } + }, + "LogGroupArn": { + "base": null, + "refs": { + "CloudWatchLogsDestination$LogGroupArn": "

The name of the Amazon CloudWatch log group that you want to record events in.

" + } + }, + "MaxPrice": { + "base": null, + "refs": { + "SendTextMessageRequest$MaxPrice": "

The maximum amount that you want to spend, in US dollars, per each text message part. A text message can contain multiple parts.

", + "SendVoiceMessageRequest$MaxPricePerMinute": "

The maximum amount to spend per voice message, in US dollars.

" + } + }, + "MaxResults": { + "base": null, + "refs": { + "DescribeAccountAttributesRequest$MaxResults": "

The maximum number of results to return per each request.

", + "DescribeAccountLimitsRequest$MaxResults": "

The maximum number of results to return per each request.

", + "DescribeConfigurationSetsRequest$MaxResults": "

The maximum number of results to return per each request.

", + "DescribeKeywordsRequest$MaxResults": "

The maximum number of results to return per each request.

", + "DescribeOptOutListsRequest$MaxResults": "

The maximum number of results to return per each request.

", + "DescribeOptedOutNumbersRequest$MaxResults": "

The maximum number of results to return per each request.

", + "DescribePhoneNumbersRequest$MaxResults": "

The maximum number of results to return per each request.

", + "DescribePoolsRequest$MaxResults": "

The maximum number of results to return per each request.

", + "DescribeSenderIdsRequest$MaxResults": "

The maximum number of results to return per each request.

", + "DescribeSpendLimitsRequest$MaxResults": "

The maximum number of results to return per each request.

", + "ListPoolOriginationIdentitiesRequest$MaxResults": "

The maximum number of results to return per each request.

" + } + }, + "MessageType": { + "base": null, + "refs": { + "ConfigurationSetInformation$DefaultMessageType": "

The type of message. Valid values are TRANSACTIONAL for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive.

", + "CreatePoolRequest$MessageType": "

The type of message. Valid values are TRANSACTIONAL for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive.

", + "CreatePoolResult$MessageType": "

The type of message for the pool to use.

", + "DeleteConfigurationSetResult$DefaultMessageType": "

The default message type of the configuration set that was deleted.

", + "DeleteDefaultMessageTypeResult$MessageType": "

The current message type for the configuration set.

", + "DeletePoolResult$MessageType": "

The message type that was associated with the deleted pool.

", + "MessageTypeList$member": null, + "PhoneNumberInformation$MessageType": "

The type of message. Valid values are TRANSACTIONAL for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive.

", + "PoolInformation$MessageType": "

The type of message. Valid values are TRANSACTIONAL for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive.

", + "ReleasePhoneNumberResult$MessageType": "

The message type that was associated with the phone number.

", + "RequestPhoneNumberRequest$MessageType": "

The type of message. Valid values are TRANSACTIONAL for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive.

", + "RequestPhoneNumberResult$MessageType": "

The type of message. Valid values are TRANSACTIONAL for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive.

", + "SendTextMessageRequest$MessageType": "

The type of message. Valid values are TRANSACTIONAL for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive.

", + "SetDefaultMessageTypeRequest$MessageType": "

The type of message. Valid values are TRANSACTIONAL for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive.

", + "SetDefaultMessageTypeResult$MessageType": "

The new default message type of the configuration set.

", + "UpdatePhoneNumberResult$MessageType": "

The type of message. Valid values are TRANSACTIONAL for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive.

", + "UpdatePoolResult$MessageType": "

The type of message for the pool to use.

" + } + }, + "MessageTypeList": { + "base": null, + "refs": { + "SenderIdInformation$MessageTypes": "

The type of message. Valid values are TRANSACTIONAL for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive.

" + } + }, + "MonthlyLimit": { + "base": null, + "refs": { + "DeleteTextMessageSpendLimitOverrideResult$MonthlyLimit": "

The current monthly limit, in US dollars.

", + "DeleteVoiceMessageSpendLimitOverrideResult$MonthlyLimit": "

The current monthly limit, in US dollars.

", + "SetTextMessageSpendLimitOverrideRequest$MonthlyLimit": "

The new monthly limit to enforce on text messages.

", + "SetTextMessageSpendLimitOverrideResult$MonthlyLimit": "

The current monthly limit to enforce on sending text messages.

", + "SetVoiceMessageSpendLimitOverrideRequest$MonthlyLimit": "

The new monthly limit to enforce on voice messages.

", + "SetVoiceMessageSpendLimitOverrideResult$MonthlyLimit": "

The current monthly limit to enforce on sending voice messages.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "DescribeAccountAttributesRequest$NextToken": "

The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request.

", + "DescribeAccountAttributesResult$NextToken": "

The token to be used for the next set of paginated results. If this field is empty then there are no more results.

", + "DescribeAccountLimitsRequest$NextToken": "

The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request.

", + "DescribeAccountLimitsResult$NextToken": "

The token to be used for the next set of paginated results. If this field is empty then there are no more results.

", + "DescribeConfigurationSetsRequest$NextToken": "

The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request.

", + "DescribeConfigurationSetsResult$NextToken": "

The token to be used for the next set of paginated results. If this field is empty then there are no more results.

", + "DescribeKeywordsRequest$NextToken": "

The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request.

", + "DescribeKeywordsResult$NextToken": "

The token to be used for the next set of paginated results. If this field is empty then there are no more results.

", + "DescribeOptOutListsRequest$NextToken": "

The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request.

", + "DescribeOptOutListsResult$NextToken": "

The token to be used for the next set of paginated results. If this field is empty then there are no more results.

", + "DescribeOptedOutNumbersRequest$NextToken": "

The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request.

", + "DescribeOptedOutNumbersResult$NextToken": "

The token to be used for the next set of paginated results. If this field is empty then there are no more results.

", + "DescribePhoneNumbersRequest$NextToken": "

The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request.

", + "DescribePhoneNumbersResult$NextToken": "

The token to be used for the next set of paginated results. If this field is empty then there are no more results.

", + "DescribePoolsRequest$NextToken": "

The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request.

", + "DescribePoolsResult$NextToken": "

The token to be used for the next set of paginated results. If this field is empty then there are no more results.

", + "DescribeSenderIdsRequest$NextToken": "

The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request.

", + "DescribeSenderIdsResult$NextToken": "

The token to be used for the next set of paginated results. If this field is empty then there are no more results.

", + "DescribeSpendLimitsRequest$NextToken": "

The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request.

", + "DescribeSpendLimitsResult$NextToken": "

The token to be used for the next set of paginated results. If this field is empty then there are no more results.

", + "ListPoolOriginationIdentitiesRequest$NextToken": "

The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request.

", + "ListPoolOriginationIdentitiesResult$NextToken": "

The token to be used for the next set of paginated results. If this field is empty then there are no more results.

" + } + }, + "NonEmptyTagList": { + "base": null, + "refs": { + "TagResourceRequest$Tags": "

An array of key and value pair tags that are associated with the resource.

" + } + }, + "NumberCapability": { + "base": null, + "refs": { + "NumberCapabilityList$member": null + } + }, + "NumberCapabilityList": { + "base": null, + "refs": { + "OriginationIdentityMetadata$NumberCapabilities": "

Describes if the origination identity can be used for text messages, voice calls or both.

", + "PhoneNumberInformation$NumberCapabilities": "

Describes if the origination identity can be used for text messages, voice calls or both.

", + "ReleasePhoneNumberResult$NumberCapabilities": "

Specifies if the number could be used for text messages, voice, or both.

", + "RequestPhoneNumberRequest$NumberCapabilities": "

Indicates if the phone number will be used for text messages, voice messages, or both.

", + "RequestPhoneNumberResult$NumberCapabilities": "

Indicates if the phone number will be used for text messages, voice messages or both.

", + "UpdatePhoneNumberResult$NumberCapabilities": "

Specifies if the number could be used for text messages, voice or both.

" + } + }, + "NumberStatus": { + "base": null, + "refs": { + "PhoneNumberInformation$Status": "

The current status of the phone number.

", + "ReleasePhoneNumberResult$Status": "

The current status of the request.

", + "RequestPhoneNumberResult$Status": "

The current status of the request.

", + "UpdatePhoneNumberResult$Status": "

The current status of the request.

" + } + }, + "NumberType": { + "base": null, + "refs": { + "PhoneNumberInformation$NumberType": "

The type of phone number.

", + "ReleasePhoneNumberResult$NumberType": "

The type of number that was released.

", + "UpdatePhoneNumberResult$NumberType": "

The type of number that was requested.

" + } + }, + "OptOutListInformation": { + "base": "

The information for all OptOutList in an Amazon Web Services account.

", + "refs": { + "OptOutListInformationList$member": null + } + }, + "OptOutListInformationList": { + "base": null, + "refs": { + "DescribeOptOutListsResult$OptOutLists": "

An array of OptOutListInformation objects that contain the details for the requested OptOutLists.

" + } + }, + "OptOutListName": { + "base": null, + "refs": { + "CreateOptOutListRequest$OptOutListName": "

The name of the new OptOutList.

", + "CreateOptOutListResult$OptOutListName": "

The name of the new OptOutList.

", + "CreatePoolResult$OptOutListName": "

The name of the OptOutList associated with the pool.

", + "DeleteOptOutListResult$OptOutListName": "

The name of the OptOutList that was removed.

", + "DeleteOptedOutNumberResult$OptOutListName": "

The OptOutListName that the phone number was removed from.

", + "DeletePoolResult$OptOutListName": "

The name of the OptOutList that was associated with the deleted pool.

", + "DescribeOptedOutNumbersResult$OptOutListName": "

The name of the OptOutList.

", + "OptOutListInformation$OptOutListName": "

The name of the OptOutList.

", + "PhoneNumberInformation$OptOutListName": "

The name of the OptOutList associated with the phone number.

", + "PoolInformation$OptOutListName": "

The name of the OptOutList associated with the pool.

", + "PutOptedOutNumberResult$OptOutListName": "

The OptOutListName that the phone number was removed from.

", + "ReleasePhoneNumberResult$OptOutListName": "

The name of the OptOutList that was associated with the phone number.

", + "RequestPhoneNumberResult$OptOutListName": "

The name of the OptOutList that is associated with the requested phone number.

", + "UpdatePhoneNumberResult$OptOutListName": "

The name of the OptOutList associated with the phone number.

", + "UpdatePoolResult$OptOutListName": "

The name of the OptOutList associated with the pool.

" + } + }, + "OptOutListNameList": { + "base": null, + "refs": { + "DescribeOptOutListsRequest$OptOutListNames": "

The OptOutLists to show the details of. This is an array of strings that can be either the OptOutListName or OptOutListArn.

" + } + }, + "OptOutListNameOrArn": { + "base": null, + "refs": { + "DeleteOptOutListRequest$OptOutListName": "

The OptOutListName or OptOutListArn of the OptOutList to delete. You can use DescribeOptOutLists to find the values for OptOutListName and OptOutListArn.

", + "DeleteOptedOutNumberRequest$OptOutListName": "

The OptOutListName or OptOutListArn to remove the phone number from.

", + "DescribeOptedOutNumbersRequest$OptOutListName": "

The OptOutListName or OptOutListArn of the OptOutList. You can use DescribeOptOutLists to find the values for OptOutListName and OptOutListArn.

", + "OptOutListNameList$member": null, + "PutOptedOutNumberRequest$OptOutListName": "

The OptOutListName or OptOutListArn to add the phone number to.

", + "RequestPhoneNumberRequest$OptOutListName": "

The name of the OptOutList to associate with the phone number. You can use the OutOutListName or OptPutListArn.

", + "UpdatePhoneNumberRequest$OptOutListName": "

The OptOutList to add the phone number to. Valid values for this field can be either the OutOutListName or OutOutListArn.

", + "UpdatePoolRequest$OptOutListName": "

The OptOutList to associate with the pool. Valid values are either OptOutListName or OptOutListArn.

" + } + }, + "OptedOutFilter": { + "base": "

The information for opted out numbers that meet a specified criteria.

", + "refs": { + "OptedOutFilterList$member": null + } + }, + "OptedOutFilterList": { + "base": null, + "refs": { + "DescribeOptedOutNumbersRequest$Filters": "

An array of OptedOutFilter objects to filter the results on.

" + } + }, + "OptedOutFilterName": { + "base": null, + "refs": { + "OptedOutFilter$Name": "

The name of the attribute to filter on.

" + } + }, + "OptedOutNumberInformation": { + "base": "

The information for an opted out number in an Amazon Web Services account.

", + "refs": { + "OptedOutNumberInformationList$member": null + } + }, + "OptedOutNumberInformationList": { + "base": null, + "refs": { + "DescribeOptedOutNumbersResult$OptedOutNumbers": "

An array of OptedOutNumbersInformation objects that provide information about the requested OptedOutNumbers.

" + } + }, + "OptedOutNumberList": { + "base": null, + "refs": { + "DescribeOptedOutNumbersRequest$OptedOutNumbers": "

An array of phone numbers to search for in the OptOutList.

" + } + }, + "OriginationIdentityMetadata": { + "base": "

The metadata for an origination identity associated with a pool.

", + "refs": { + "OriginationIdentityMetadataList$member": null + } + }, + "OriginationIdentityMetadataList": { + "base": null, + "refs": { + "ListPoolOriginationIdentitiesResult$OriginationIdentities": "

An array of any OriginationIdentityMetadata objects.

" + } + }, + "PhoneNumber": { + "base": null, + "refs": { + "DeleteOptedOutNumberRequest$OptedOutNumber": "

The phone number, in E.164 format, to remove from the OptOutList.

", + "DeleteOptedOutNumberResult$OptedOutNumber": "

The phone number that was removed from the OptOutList.

", + "OptedOutNumberInformation$OptedOutNumber": "

The phone number that is opted out.

", + "OptedOutNumberList$member": null, + "PhoneNumberInformation$PhoneNumber": "

The phone number in E.164 format.

", + "PutOptedOutNumberRequest$OptedOutNumber": "

The phone number to add to the OptOutList in E.164 format.

", + "PutOptedOutNumberResult$OptedOutNumber": "

The phone number that was added to the OptOutList.

", + "ReleasePhoneNumberResult$PhoneNumber": "

The phone number that was released.

", + "RequestPhoneNumberResult$PhoneNumber": "

The new phone number that was requested.

", + "SendTextMessageRequest$DestinationPhoneNumber": "

The destination phone number in E.164 format.

", + "SendVoiceMessageRequest$DestinationPhoneNumber": "

The destination phone number in E.164 format.

", + "UpdatePhoneNumberResult$PhoneNumber": "

The phone number that was updated.

" + } + }, + "PhoneNumberFilter": { + "base": "

The information for a phone number that meets a specified criteria.

", + "refs": { + "PhoneNumberFilterList$member": null + } + }, + "PhoneNumberFilterList": { + "base": null, + "refs": { + "DescribePhoneNumbersRequest$Filters": "

An array of PhoneNumberFilter objects to filter the results.

" + } + }, + "PhoneNumberFilterName": { + "base": null, + "refs": { + "PhoneNumberFilter$Name": "

The name of the attribute to filter on.

" + } + }, + "PhoneNumberIdList": { + "base": null, + "refs": { + "DescribePhoneNumbersRequest$PhoneNumberIds": "

The unique identifier of phone numbers to find information about. This is an array of strings that can be either the PhoneNumberId or PhoneNumberArn.

" + } + }, + "PhoneNumberIdOrArn": { + "base": null, + "refs": { + "PhoneNumberIdList$member": null, + "ReleasePhoneNumberRequest$PhoneNumberId": "

The PhoneNumberId or PhoneNumberArn of the phone number to release. You can use DescribePhoneNumbers to get the values for PhoneNumberId and PhoneNumberArn.

", + "UpdatePhoneNumberRequest$PhoneNumberId": "

The unique identifier of the phone number. Valid values for this field can be either the PhoneNumberId or PhoneNumberArn.

" + } + }, + "PhoneNumberInformation": { + "base": "

The information for a phone number in an Amazon Web Services account.

", + "refs": { + "PhoneNumberInformationList$member": null + } + }, + "PhoneNumberInformationList": { + "base": null, + "refs": { + "DescribePhoneNumbersResult$PhoneNumbers": "

An array of PhoneNumberInformation objects that contain the details for the requested phone numbers.

" + } + }, + "PhoneOrPoolIdOrArn": { + "base": null, + "refs": { + "DeleteKeywordRequest$OriginationIdentity": "

The origination identity to use such as a PhoneNumberId, PhoneNumberArn, PoolId or PoolArn. You can use DescribePhoneNumbers to find the values for PhoneNumberId and PhoneNumberArn and DescribePools to find the values of PoolId and PoolArn.

", + "DescribeKeywordsRequest$OriginationIdentity": "

The origination identity to use such as a PhoneNumberId, PhoneNumberArn, SenderId or SenderIdArn. You can use DescribePhoneNumbers to find the values for PhoneNumberId and PhoneNumberArn while DescribeSenderIds can be used to get the values for SenderId and SenderIdArn.

", + "PutKeywordRequest$OriginationIdentity": "

The origination identity to use such as a PhoneNumberId, PhoneNumberArn, SenderId or SenderIdArn. You can use DescribePhoneNumbers get the values for PhoneNumberId and PhoneNumberArn while DescribeSenderIds can be used to get the values for SenderId and SenderIdArn.

" + } + }, + "PhoneOrSenderIdOrArn": { + "base": null, + "refs": { + "AssociateOriginationIdentityRequest$OriginationIdentity": "

The origination identity to use, such as PhoneNumberId, PhoneNumberArn, SenderId, or SenderIdArn. You can use DescribePhoneNumbers to find the values for PhoneNumberId and PhoneNumberArn, while DescribeSenderIds can be used to get the values for SenderId and SenderIdArn.

", + "CreatePoolRequest$OriginationIdentity": "

The origination identity to use such as a PhoneNumberId, PhoneNumberArn, SenderId or SenderIdArn. You can use DescribePhoneNumbers to find the values for PhoneNumberId and PhoneNumberArn while DescribeSenderIds can be used to get the values for SenderId and SenderIdArn.

", + "DisassociateOriginationIdentityRequest$OriginationIdentity": "

The origination identity to use such as a PhoneNumberId, PhoneNumberArn, SenderId or SenderIdArn. You can use DescribePhoneNumbers find the values for PhoneNumberId and PhoneNumberArn, or use DescribeSenderIds to get the values for SenderId and SenderIdArn.

" + } + }, + "PoolFilter": { + "base": "

The information for a pool that meets a specified criteria.

", + "refs": { + "PoolFilterList$member": null + } + }, + "PoolFilterList": { + "base": null, + "refs": { + "DescribePoolsRequest$Filters": "

An array of PoolFilter objects to filter the results.

" + } + }, + "PoolFilterName": { + "base": null, + "refs": { + "PoolFilter$Name": "

The name of the attribute to filter on.

" + } + }, + "PoolIdList": { + "base": null, + "refs": { + "DescribePoolsRequest$PoolIds": "

The unique identifier of pools to find. This is an array of strings that can be either the PoolId or PoolArn.

" + } + }, + "PoolIdOrArn": { + "base": null, + "refs": { + "AssociateOriginationIdentityRequest$PoolId": "

The pool to update with the new Identity. This value can be either the PoolId or PoolArn, and you can find these values using DescribePools.

", + "DeletePoolRequest$PoolId": "

The PoolId or PoolArn of the pool to delete. You can use DescribePools to find the values for PoolId and PoolArn .

", + "DisassociateOriginationIdentityRequest$PoolId": "

The unique identifier for the pool to disassociate with the origination identity. This value can be either the PoolId or PoolArn.

", + "ListPoolOriginationIdentitiesRequest$PoolId": "

The unique identifier for the pool. This value can be either the PoolId or PoolArn.

", + "PoolIdList$member": null, + "RequestPhoneNumberRequest$PoolId": "

The pool to associated with the phone number. You can use the PoolId or PoolArn.

", + "UpdatePoolRequest$PoolId": "

The unique identifier of the pool to update. Valid values are either the PoolId or PoolArn.

" + } + }, + "PoolInformation": { + "base": "

The information for a pool in an Amazon Web Services account.

", + "refs": { + "PoolInformationList$member": null + } + }, + "PoolInformationList": { + "base": null, + "refs": { + "DescribePoolsResult$Pools": "

An array of PoolInformation objects that contain the details for the requested pools.

" + } + }, + "PoolOriginationIdentitiesFilter": { + "base": "

Information about origination identities associated with a pool that meets a specified criteria.

", + "refs": { + "PoolOriginationIdentitiesFilterList$member": null + } + }, + "PoolOriginationIdentitiesFilterList": { + "base": null, + "refs": { + "ListPoolOriginationIdentitiesRequest$Filters": "

An array of PoolOriginationIdentitiesFilter objects to filter the results..

" + } + }, + "PoolOriginationIdentitiesFilterName": { + "base": null, + "refs": { + "PoolOriginationIdentitiesFilter$Name": "

The name of the attribute to filter on.

" + } + }, + "PoolStatus": { + "base": null, + "refs": { + "CreatePoolResult$Status": "

The current status of the pool.

", + "DeletePoolResult$Status": "

The current status of the pool.

", + "PoolInformation$Status": "

The current status of the pool.

", + "UpdatePoolResult$Status": "

The current status of the pool update request.

" + } + }, + "PrimitiveBoolean": { + "base": null, + "refs": { + "CreatePoolResult$TwoWayEnabled": "

By default this is set to false. When set to true you can receive incoming text messages from your end recipients.

", + "CreatePoolResult$SelfManagedOptOutsEnabled": "

By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests.

", + "CreatePoolResult$SharedRoutesEnabled": "

Indicates whether shared routes are enabled for the pool.

", + "CreatePoolResult$DeletionProtectionEnabled": "

When set to true deletion protection is enabled. By default this is set to false.

", + "DeleteOptedOutNumberResult$EndUserOptedOut": "

This is true if it was the end user who requested their phone number be removed.

", + "DeletePoolResult$TwoWayEnabled": "

By default this is set to false. When set to true you can receive incoming text messages from your end recipients.

", + "DeletePoolResult$SelfManagedOptOutsEnabled": "

By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests.

", + "DeletePoolResult$SharedRoutesEnabled": "

Indicates whether shared routes are enabled for the pool.

", + "OptedOutNumberInformation$EndUserOptedOut": "

This is set to true if it was the end recipient that opted out.

", + "PhoneNumberInformation$TwoWayEnabled": "

By default this is set to false. When set to true you can receive incoming text messages from your end recipients using the TwoWayChannelArn.

", + "PhoneNumberInformation$SelfManagedOptOutsEnabled": "

When set to false an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out request. For more information see Self-managed opt-outs

", + "PhoneNumberInformation$DeletionProtectionEnabled": "

When set to true the phone number can't be deleted.

", + "PoolInformation$TwoWayEnabled": "

When set to true you can receive incoming text messages from your end recipients using the TwoWayChannelArn.

", + "PoolInformation$SelfManagedOptOutsEnabled": "

When set to false, an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. For more information see Self-managed opt-outs

", + "PoolInformation$SharedRoutesEnabled": "

Allows you to enable shared routes on your pool.

By default, this is set to False. If you set this value to True, your messages are sent using phone numbers or sender IDs (depending on the country) that are shared with other Amazon Pinpoint users. In some countries, such as the United States, senders aren't allowed to use shared routes and must use a dedicated phone number or short code.

", + "PoolInformation$DeletionProtectionEnabled": "

When set to true the pool can't be deleted.

", + "PutOptedOutNumberResult$EndUserOptedOut": "

This is true if it was the end user who requested their phone number be removed.

", + "ReleasePhoneNumberResult$TwoWayEnabled": "

By default this is set to false. When set to true you can receive incoming text messages from your end recipients.

", + "ReleasePhoneNumberResult$SelfManagedOptOutsEnabled": "

By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests.

", + "RequestPhoneNumberResult$TwoWayEnabled": "

By default this is set to false. When set to true you can receive incoming text messages from your end recipients.

", + "RequestPhoneNumberResult$SelfManagedOptOutsEnabled": "

By default this is set to false. When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests.

", + "RequestPhoneNumberResult$DeletionProtectionEnabled": "

By default this is set to false. When set to true the phone number can't be deleted.

", + "SendTextMessageRequest$DryRun": "

When set to true, the message is checked and validated, but isn't sent to the end recipient.

", + "SendVoiceMessageRequest$DryRun": "

When set to true, the message is checked and validated, but isn't sent to the end recipient.

", + "SpendLimit$Overridden": "

When set to True, the value that has been specified in the EnforcedLimit is used to determine the maximum amount in US dollars that can be spent to send messages each month, in US dollars.

", + "UpdatePhoneNumberResult$TwoWayEnabled": "

By default this is set to false. When set to true you can receive incoming text messages from your end recipients.

", + "UpdatePhoneNumberResult$SelfManagedOptOutsEnabled": "

This is true if self managed opt-out are enabled.

", + "UpdatePhoneNumberResult$DeletionProtectionEnabled": "

When set to true the phone number can't be deleted.

", + "UpdatePoolResult$TwoWayEnabled": "

By default this is set to false. When set to true you can receive incoming text messages from your end recipients.

", + "UpdatePoolResult$SelfManagedOptOutsEnabled": "

When an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests.

", + "UpdatePoolResult$SharedRoutesEnabled": "

Indicates whether shared routes are enabled for the pool.

", + "UpdatePoolResult$DeletionProtectionEnabled": "

When set to true the pool can't be deleted.

" + } + }, + "PrimitiveLong": { + "base": null, + "refs": { + "AccountLimit$Used": "

The current amount that has been spent, in US dollars.

", + "AccountLimit$Max": "

The Amazon Web Services set limit for that resource type, in US dollars.

", + "SpendLimit$EnforcedLimit": "

The maximum amount of money, in US dollars, that you want to be able to spend sending messages each month. This value has to be less than or equal to the amount in MaxLimit. To use this custom limit, Overridden must be set to true.

", + "SpendLimit$MaxLimit": "

The maximum amount of money that you are able to spend to send messages each month, in US dollars.

" + } + }, + "PutKeywordRequest": { + "base": null, + "refs": { + } + }, + "PutKeywordResult": { + "base": null, + "refs": { + } + }, + "PutOptedOutNumberRequest": { + "base": null, + "refs": { + } + }, + "PutOptedOutNumberResult": { + "base": null, + "refs": { + } + }, + "RegistrationId": { + "base": null, + "refs": { + "RequestPhoneNumberRequest$RegistrationId": "

Use this field to attach your phone number for an external registration process.

" + } + }, + "ReleasePhoneNumberRequest": { + "base": null, + "refs": { + } + }, + "ReleasePhoneNumberResult": { + "base": null, + "refs": { + } + }, + "RequestPhoneNumberRequest": { + "base": null, + "refs": { + } + }, + "RequestPhoneNumberResult": { + "base": null, + "refs": { + } + }, + "RequestableNumberType": { + "base": null, + "refs": { + "RequestPhoneNumberRequest$NumberType": "

The type of phone number to request.

", + "RequestPhoneNumberResult$NumberType": "

The type of number that was released.

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

A requested resource couldn't be found.

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

The type of resource that caused the exception.

", + "ResourceNotFoundException$ResourceType": "

The type of resource that caused the exception.

" + } + }, + "SendTextMessageRequest": { + "base": null, + "refs": { + } + }, + "SendTextMessageResult": { + "base": null, + "refs": { + } + }, + "SendVoiceMessageRequest": { + "base": null, + "refs": { + } + }, + "SendVoiceMessageResult": { + "base": null, + "refs": { + } + }, + "SenderId": { + "base": null, + "refs": { + "ConfigurationSetInformation$DefaultSenderId": "

The default sender ID used by the ConfigurationSet.

", + "DeleteConfigurationSetResult$DefaultSenderId": "

The default Sender ID of the configuration set that was deleted.

", + "DeleteDefaultSenderIdResult$SenderId": "

The current sender ID for the configuration set.

", + "SenderIdInformation$SenderId": "

The alphanumeric sender ID in a specific country that you'd like to describe.

", + "SetDefaultSenderIdRequest$SenderId": "

The current sender ID for the configuration set. When sending a text message to a destination country which supports SenderIds, the default sender ID on the configuration set specified on SendTextMessage will be used if no dedicated origination phone numbers or registered SenderIds are available in your account, instead of a generic sender ID, such as 'NOTICE'.

", + "SetDefaultSenderIdResult$SenderId": "

The default sender ID to set for the ConfigurationSet.

" + } + }, + "SenderIdAndCountry": { + "base": "

The alphanumeric sender ID in a specific country that you want to describe. For more information on sender IDs see Requesting sender IDs for SMS messaging with Amazon Pinpoint in the Amazon Pinpoint User Guide.

", + "refs": { + "SenderIdList$member": null + } + }, + "SenderIdFilter": { + "base": "

The information for a sender ID that meets a specified criteria.

", + "refs": { + "SenderIdFilterList$member": null + } + }, + "SenderIdFilterList": { + "base": null, + "refs": { + "DescribeSenderIdsRequest$Filters": "

An array of SenderIdFilter objects to filter the results.

" + } + }, + "SenderIdFilterName": { + "base": null, + "refs": { + "SenderIdFilter$Name": "

The name of the attribute to filter on.

" + } + }, + "SenderIdInformation": { + "base": "

The information for all SenderIds in an Amazon Web Services account.

", + "refs": { + "SenderIdInformationList$member": null + } + }, + "SenderIdInformationList": { + "base": null, + "refs": { + "DescribeSenderIdsResult$SenderIds": "

An array of SernderIdInformation objects that contain the details for the requested SenderIds.

" + } + }, + "SenderIdList": { + "base": null, + "refs": { + "DescribeSenderIdsRequest$SenderIds": "

An array of SenderIdAndCountry objects to search for.

" + } + }, + "SenderIdOrArn": { + "base": null, + "refs": { + "SenderIdAndCountry$SenderId": "

The unique identifier of the sender.

" + } + }, + "ServiceQuotaExceededException": { + "base": "

The request would cause a service quota to be exceeded.

", + "refs": { + } + }, + "ServiceQuotaExceededExceptionReason": { + "base": null, + "refs": { + "ServiceQuotaExceededException$Reason": "

The reason for the exception.

" + } + }, + "SetDefaultMessageTypeRequest": { + "base": null, + "refs": { + } + }, + "SetDefaultMessageTypeResult": { + "base": null, + "refs": { + } + }, + "SetDefaultSenderIdRequest": { + "base": null, + "refs": { + } + }, + "SetDefaultSenderIdResult": { + "base": null, + "refs": { + } + }, + "SetTextMessageSpendLimitOverrideRequest": { + "base": null, + "refs": { + } + }, + "SetTextMessageSpendLimitOverrideResult": { + "base": null, + "refs": { + } + }, + "SetVoiceMessageSpendLimitOverrideRequest": { + "base": null, + "refs": { + } + }, + "SetVoiceMessageSpendLimitOverrideResult": { + "base": null, + "refs": { + } + }, + "SnsDestination": { + "base": "

An object that defines an Amazon SNS destination for events. You can use Amazon SNS to send notification when certain events occur.

", + "refs": { + "CreateEventDestinationRequest$SnsDestination": "

An object that contains information about an event destination for logging to Amazon SNS.

", + "EventDestination$SnsDestination": "

An object that contains information about an event destination that sends logging events to Amazon SNS.

", + "UpdateEventDestinationRequest$SnsDestination": "

An object that contains information about an event destination that sends data to Amazon SNS.

" + } + }, + "SnsTopicArn": { + "base": null, + "refs": { + "SnsDestination$TopicArn": "

The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish events to.

" + } + }, + "SpendLimit": { + "base": "

Describes the current Amazon Pinpoint monthly spend limits for sending voice and text messages. For more information on increasing your monthly spend limit, see Requesting increases to your monthly SMS spending quota for Amazon Pinpoint in the Amazon Pinpoint User Guide.

", + "refs": { + "SpendLimitList$member": null + } + }, + "SpendLimitList": { + "base": null, + "refs": { + "DescribeSpendLimitsResult$SpendLimits": "

An array of SpendLimit objects that contain the details for the requested spend limits.

" + } + }, + "SpendLimitName": { + "base": null, + "refs": { + "SpendLimit$Name": "

The name for the SpendLimit.

" + } + }, + "String": { + "base": null, + "refs": { + "AccessDeniedException$Message": null, + "AccountAttribute$Value": "

The value associated with the account attribute name.

", + "AssociateOriginationIdentityResult$PoolArn": "

The Amazon Resource Name (ARN) of the pool that is now associated with the origination identity.

", + "AssociateOriginationIdentityResult$PoolId": "

The PoolId of the pool that is now associated with the origination identity.

", + "AssociateOriginationIdentityResult$OriginationIdentityArn": "

The PhoneNumberArn or SenderIdArn of the origination identity.

", + "AssociateOriginationIdentityResult$OriginationIdentity": "

The PhoneNumberId or SenderId of the origination identity.

", + "ConfigurationSetInformation$ConfigurationSetArn": "

The Resource Name (ARN) of the ConfigurationSet.

", + "ConflictException$Message": null, + "ConflictException$ResourceId": "

The unique identifier of the request.

", + "CreateConfigurationSetResult$ConfigurationSetArn": "

The Amazon Resource Name (ARN) of the newly created configuration set.

", + "CreateEventDestinationResult$ConfigurationSetArn": "

The ARN of the configuration set.

", + "CreateOptOutListResult$OptOutListArn": "

The Amazon Resource Name (ARN) for the OptOutList.

", + "CreatePoolResult$PoolArn": "

The Amazon Resource Name (ARN) for the pool.

", + "CreatePoolResult$PoolId": "

The unique identifier for the pool.

", + "DeleteConfigurationSetResult$ConfigurationSetArn": "

The Amazon Resource Name (ARN) of the deleted configuration set.

", + "DeleteDefaultMessageTypeResult$ConfigurationSetArn": "

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

", + "DeleteDefaultSenderIdResult$ConfigurationSetArn": "

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

", + "DeleteEventDestinationResult$ConfigurationSetArn": "

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

", + "DeleteKeywordResult$OriginationIdentityArn": "

The PhoneNumberArn or PoolArn that the keyword was associated with.

", + "DeleteKeywordResult$OriginationIdentity": "

The PhoneNumberId or PoolId that the keyword was associated with.

", + "DeleteOptOutListResult$OptOutListArn": "

The Amazon Resource Name (ARN) of the OptOutList that was removed.

", + "DeleteOptedOutNumberResult$OptOutListArn": "

The OptOutListArn that the phone number was removed from.

", + "DeletePoolResult$PoolArn": "

The Amazon Resource Name (ARN) of the pool that was deleted.

", + "DeletePoolResult$PoolId": "

The PoolId of the pool that was deleted.

", + "DescribeKeywordsResult$OriginationIdentityArn": "

The PhoneNumberArn or PoolArn that is associated with the OriginationIdentity.

", + "DescribeKeywordsResult$OriginationIdentity": "

The PhoneNumberId or PoolId that is associated with the OriginationIdentity.

", + "DescribeOptedOutNumbersResult$OptOutListArn": "

The Amazon Resource Name (ARN) of the OptOutList.

", + "DisassociateOriginationIdentityResult$PoolArn": "

The Amazon Resource Name (ARN) of the pool.

", + "DisassociateOriginationIdentityResult$PoolId": "

The PoolId of the pool no longer associated with the origination identity.

", + "DisassociateOriginationIdentityResult$OriginationIdentityArn": "

The PhoneNumberArn or SenderIdArn of the origination identity.

", + "DisassociateOriginationIdentityResult$OriginationIdentity": "

The PhoneNumberId or SenderId of the origination identity.

", + "InternalServerException$Message": null, + "InternalServerException$RequestId": "

The unique identifier of the request.

", + "ListPoolOriginationIdentitiesResult$PoolArn": "

The Amazon Resource Name (ARN) for the pool.

", + "ListPoolOriginationIdentitiesResult$PoolId": "

The unique PoolId of the pool.

", + "OptOutListInformation$OptOutListArn": "

The Amazon Resource Name (ARN) of the OptOutList.

", + "OriginationIdentityMetadata$OriginationIdentityArn": "

The Amazon Resource Name (ARN) associated with the origination identity.

", + "OriginationIdentityMetadata$OriginationIdentity": "

The unique identifier of the origination identity.

", + "PhoneNumberInformation$PhoneNumberArn": "

The Amazon Resource Name (ARN) associated with the phone number.

", + "PhoneNumberInformation$PhoneNumberId": "

The unique identifier for the phone number.

", + "PhoneNumberInformation$MonthlyLeasingPrice": "

The price, in US dollars, to lease the phone number.

", + "PhoneNumberInformation$PoolId": "

The unique identifier of the pool associated with the phone number.

", + "PoolInformation$PoolArn": "

The Amazon Resource Name (ARN) for the pool.

", + "PoolInformation$PoolId": "

The unique identifier for the pool.

", + "PutKeywordResult$OriginationIdentityArn": "

The PhoneNumberArn or PoolArn that the keyword was associated with.

", + "PutKeywordResult$OriginationIdentity": "

The PhoneNumberId or PoolId that the keyword was associated with.

", + "PutOptedOutNumberResult$OptOutListArn": "

The OptOutListArn that the phone number was removed from.

", + "ReleasePhoneNumberResult$PhoneNumberArn": "

The PhoneNumberArn of the phone number that was released.

", + "ReleasePhoneNumberResult$PhoneNumberId": "

The PhoneNumberId of the phone number that was released.

", + "ReleasePhoneNumberResult$MonthlyLeasingPrice": "

The monthly price of the phone number, in US dollars.

", + "RequestPhoneNumberResult$PhoneNumberArn": "

The Amazon Resource Name (ARN) of the requested phone number.

", + "RequestPhoneNumberResult$PhoneNumberId": "

The unique identifier of the new phone number.

", + "RequestPhoneNumberResult$MonthlyLeasingPrice": "

The monthly price, in US dollars, to lease the phone number.

", + "RequestPhoneNumberResult$PoolId": "

The unique identifier of the pool associated with the phone number

", + "ResourceNotFoundException$Message": null, + "ResourceNotFoundException$ResourceId": "

The unique identifier of the resource.

", + "SendTextMessageResult$MessageId": "

The unique identifier for the message.

", + "SendVoiceMessageResult$MessageId": "

The unique identifier for the message.

", + "SenderIdInformation$SenderIdArn": "

The Amazon Resource Name (ARN) associated with the SenderId.

", + "SenderIdInformation$MonthlyLeasingPrice": "

The monthly leasing price, in US dollars.

", + "ServiceQuotaExceededException$Message": null, + "SetDefaultMessageTypeResult$ConfigurationSetArn": "

The Amazon Resource Name (ARN) of the updated configuration set.

", + "SetDefaultSenderIdResult$ConfigurationSetArn": "

The Amazon Resource Name (ARN) of the updated configuration set.

", + "ThrottlingException$Message": null, + "UpdateEventDestinationResult$ConfigurationSetArn": "

The Amazon Resource Name (ARN) for the ConfigurationSet that was updated.

", + "UpdatePhoneNumberResult$PhoneNumberArn": "

The Amazon Resource Name (ARN) of the updated phone number.

", + "UpdatePhoneNumberResult$PhoneNumberId": "

The unique identifier of the phone number.

", + "UpdatePhoneNumberResult$MonthlyLeasingPrice": "

The monthly leasing price of the phone number, in US dollars.

", + "UpdatePoolResult$PoolArn": "

The ARN of the pool.

", + "UpdatePoolResult$PoolId": "

The unique identifier of the pool.

", + "ValidationException$Message": null, + "ValidationExceptionField$Name": "

The name of the field.

", + "ValidationExceptionField$Message": "

The message associated with the validation exception with information to help determine its cause.

" + } + }, + "Tag": { + "base": "

The list of tags to be added to the specified topic.

", + "refs": { + "NonEmptyTagList$member": null, + "TagList$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

The key identifier, or name, of the tag.

", + "TagKeyList$member": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$TagKeys": "

An array of tag key values to unassociate with the resource.

" + } + }, + "TagList": { + "base": null, + "refs": { + "CreateConfigurationSetRequest$Tags": "

An array of key and value pair tags that's associated with the new configuration set.

", + "CreateConfigurationSetResult$Tags": "

An array of key and value pair tags that's associated with the configuration set.

", + "CreateOptOutListRequest$Tags": "

An array of tags (key and value pairs) to associate with the new OptOutList.

", + "CreateOptOutListResult$Tags": "

An array of tags (key and value pairs) associated with the new OptOutList.

", + "CreatePoolRequest$Tags": "

An array of tags (key and value pairs) associated with the pool.

", + "CreatePoolResult$Tags": "

An array of tags (key and value pairs) associated with the pool.

", + "ListTagsForResourceResult$Tags": "

An array of key and value pair tags that are associated with the resource.

", + "RequestPhoneNumberRequest$Tags": "

An array of tags (key and value pairs) associate with the requested phone number.

", + "RequestPhoneNumberResult$Tags": "

An array of key and value pair tags that are associated with the phone number.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResult": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

The string value associated with the key of the tag.

" + } + }, + "TextMessageBody": { + "base": null, + "refs": { + "SendTextMessageRequest$MessageBody": "

The body of the text message.

" + } + }, + "TextMessageOriginationIdentity": { + "base": null, + "refs": { + "SendTextMessageRequest$OriginationIdentity": "

The origination identity of the message. This can be either the PhoneNumber, PhoneNumberId, PhoneNumberArn, SenderId, SenderIdArn, PoolId, or PoolArn.

" + } + }, + "ThrottlingException": { + "base": "

An error that occurred because too many requests were sent during a certain amount of time.

", + "refs": { + } + }, + "TimeToLive": { + "base": null, + "refs": { + "SendTextMessageRequest$TimeToLive": "

How long the text message is valid for. By default this is 72 hours.

", + "SendVoiceMessageRequest$TimeToLive": "

How long the voice message is valid for. By default this is 72 hours.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "ConfigurationSetInformation$CreatedTimestamp": "

The time when the ConfigurationSet was created, in UNIX epoch time format.

", + "CreateConfigurationSetResult$CreatedTimestamp": "

The time when the configuration set was created, in UNIX epoch time format.

", + "CreateOptOutListResult$CreatedTimestamp": "

The time when the pool was created, in UNIX epoch time format.

", + "CreatePoolResult$CreatedTimestamp": "

The time when the pool was created, in UNIX epoch time format.

", + "DeleteConfigurationSetResult$CreatedTimestamp": "

The time that the deleted configuration set was created in UNIX epoch time format.

", + "DeleteOptOutListResult$CreatedTimestamp": "

The time when the OptOutList was created, in UNIX epoch time format.

", + "DeleteOptedOutNumberResult$OptedOutTimestamp": "

The time that the number was removed at, in UNIX epoch time format.

", + "DeletePoolResult$CreatedTimestamp": "

The time when the pool was created, in UNIX epoch time format.

", + "OptOutListInformation$CreatedTimestamp": "

The time when the OutOutList was created, in UNIX epoch time format.

", + "OptedOutNumberInformation$OptedOutTimestamp": "

The time that the op tout occurred, in UNIX epoch time format.

", + "PhoneNumberInformation$CreatedTimestamp": "

The time when the phone number was created, in UNIX epoch time format.

", + "PoolInformation$CreatedTimestamp": "

The time when the pool was created, in UNIX epoch time format.

", + "PutOptedOutNumberResult$OptedOutTimestamp": "

The time that the phone number was added to the OptOutList, in UNIX epoch time format.

", + "ReleasePhoneNumberResult$CreatedTimestamp": "

The time when the phone number was created, in UNIX epoch time format.

", + "RequestPhoneNumberResult$CreatedTimestamp": "

The time when the phone number was created, in UNIX epoch time format.

", + "UpdatePhoneNumberResult$CreatedTimestamp": "

The time when the phone number was created, in UNIX epoch time format.

", + "UpdatePoolResult$CreatedTimestamp": "

The time when the pool was created, in UNIX epoch time format.

" + } + }, + "TwoWayChannelArn": { + "base": null, + "refs": { + "CreatePoolResult$TwoWayChannelArn": "

The Amazon Resource Name (ARN) of the two way channel.

", + "DeletePoolResult$TwoWayChannelArn": "

The Amazon Resource Name (ARN) of the TwoWayChannel.

", + "PhoneNumberInformation$TwoWayChannelArn": "

The Amazon Resource Name (ARN) of the two way channel.

", + "PoolInformation$TwoWayChannelArn": "

The Amazon Resource Name (ARN) of the two way channel.

", + "ReleasePhoneNumberResult$TwoWayChannelArn": "

The Amazon Resource Name (ARN) of the TwoWayChannel.

", + "RequestPhoneNumberResult$TwoWayChannelArn": "

The ARN used to identify the two way channel.

", + "UpdatePhoneNumberRequest$TwoWayChannelArn": "

The Amazon Resource Name (ARN) of the two way channel.

", + "UpdatePhoneNumberResult$TwoWayChannelArn": "

The Amazon Resource Name (ARN) of the two way channel.

", + "UpdatePoolRequest$TwoWayChannelArn": "

The Amazon Resource Name (ARN) of the two way channel.

", + "UpdatePoolResult$TwoWayChannelArn": "

The Amazon Resource Name (ARN) of the two way channel.

" + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResult": { + "base": null, + "refs": { + } + }, + "UpdateEventDestinationRequest": { + "base": null, + "refs": { + } + }, + "UpdateEventDestinationResult": { + "base": null, + "refs": { + } + }, + "UpdatePhoneNumberRequest": { + "base": null, + "refs": { + } + }, + "UpdatePhoneNumberResult": { + "base": null, + "refs": { + } + }, + "UpdatePoolRequest": { + "base": null, + "refs": { + } + }, + "UpdatePoolResult": { + "base": null, + "refs": { + } + }, + "ValidationException": { + "base": "

A validation exception for a field.

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

The field associated with the validation exception.

", + "refs": { + "ValidationExceptionFieldList$member": null + } + }, + "ValidationExceptionFieldList": { + "base": null, + "refs": { + "ValidationException$Fields": "

The field that failed validation.

" + } + }, + "ValidationExceptionReason": { + "base": null, + "refs": { + "ValidationException$Reason": "

The reason for the exception.

" + } + }, + "VoiceId": { + "base": null, + "refs": { + "SendVoiceMessageRequest$VoiceId": "

The voice for the Amazon Polly service to use. By default this is set to \"MATTHEW\".

" + } + }, + "VoiceMessageBody": { + "base": null, + "refs": { + "SendVoiceMessageRequest$MessageBody": "

The text to convert to a voice message.

" + } + }, + "VoiceMessageBodyTextType": { + "base": null, + "refs": { + "SendVoiceMessageRequest$MessageBodyTextType": "

Specifies if the MessageBody field contains text or speech synthesis markup language (SSML).

" + } + }, + "VoiceMessageOriginationIdentity": { + "base": null, + "refs": { + "SendVoiceMessageRequest$OriginationIdentity": "

The origination identity to use for the voice call. This can be the PhoneNumber, PhoneNumberId, PhoneNumberArn, PoolId, or PoolArn.

" + } + } + } +} diff --git a/apis/pinpoint-sms-voice-v2/2022-03-31/examples-1.json b/apis/pinpoint-sms-voice-v2/2022-03-31/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/apis/pinpoint-sms-voice-v2/2022-03-31/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/apis/pinpoint-sms-voice-v2/2022-03-31/paginators-1.json b/apis/pinpoint-sms-voice-v2/2022-03-31/paginators-1.json new file mode 100644 index 00000000000..ecdcd93a201 --- /dev/null +++ b/apis/pinpoint-sms-voice-v2/2022-03-31/paginators-1.json @@ -0,0 +1,70 @@ +{ + "pagination": { + "DescribeAccountAttributes": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "AccountAttributes" + }, + "DescribeAccountLimits": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "AccountLimits" + }, + "DescribeConfigurationSets": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ConfigurationSets" + }, + "DescribeKeywords": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Keywords" + }, + "DescribeOptOutLists": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "OptOutLists" + }, + "DescribeOptedOutNumbers": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "OptedOutNumbers" + }, + "DescribePhoneNumbers": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "PhoneNumbers" + }, + "DescribePools": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Pools" + }, + "DescribeSenderIds": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "SenderIds" + }, + "DescribeSpendLimits": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "SpendLimits" + }, + "ListPoolOriginationIdentities": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "OriginationIdentities" + } + } +} diff --git a/apis/pinpoint-sms-voice-v2/2022-03-31/smoke.json b/apis/pinpoint-sms-voice-v2/2022-03-31/smoke.json new file mode 100644 index 00000000000..a9756813e4a --- /dev/null +++ b/apis/pinpoint-sms-voice-v2/2022-03-31/smoke.json @@ -0,0 +1,6 @@ +{ + "version": 1, + "defaultRegion": "us-west-2", + "testCases": [ + ] +} diff --git a/apis/pinpoint-sms-voice-v2/2022-03-31/waiters-2.json b/apis/pinpoint-sms-voice-v2/2022-03-31/waiters-2.json new file mode 100644 index 00000000000..13f60ee66be --- /dev/null +++ b/apis/pinpoint-sms-voice-v2/2022-03-31/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} diff --git a/apis/route53-recovery-cluster/2019-12-02/api-2.json b/apis/route53-recovery-cluster/2019-12-02/api-2.json index d005650aa3b..cb159ca9087 100644 --- a/apis/route53-recovery-cluster/2019-12-02/api-2.json +++ b/apis/route53-recovery-cluster/2019-12-02/api-2.json @@ -30,6 +30,23 @@ {"shape":"EndpointTemporarilyUnavailableException"} ] }, + "ListRoutingControls":{ + "name":"ListRoutingControls", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRoutingControlsRequest"}, + "output":{"shape":"ListRoutingControlsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"EndpointTemporarilyUnavailableException"} + ] + }, "UpdateRoutingControlState":{ "name":"UpdateRoutingControlState", "http":{ @@ -63,7 +80,8 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"}, {"shape":"EndpointTemporarilyUnavailableException"}, - {"shape":"ConflictException"} + {"shape":"ConflictException"}, + {"shape":"ServiceLimitExceededException"} ] } }, @@ -100,6 +118,12 @@ }, "exception":true }, + "ControlPanelName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^\\S+$" + }, "EndpointTemporarilyUnavailableException":{ "type":"structure", "required":["message"], @@ -123,7 +147,8 @@ ], "members":{ "RoutingControlArn":{"shape":"Arn"}, - "RoutingControlState":{"shape":"RoutingControlState"} + "RoutingControlState":{"shape":"RoutingControlState"}, + "RoutingControlName":{"shape":"RoutingControlName"} } }, "InternalServerException":{ @@ -136,6 +161,35 @@ "exception":true, "fault":true }, + "ListRoutingControlsRequest":{ + "type":"structure", + "members":{ + "ControlPanelArn":{"shape":"Arn"}, + "NextToken":{"shape":"PageToken"}, + "MaxResults":{ + "shape":"MaxResults", + "box":true + } + } + }, + "ListRoutingControlsResponse":{ + "type":"structure", + "required":["RoutingControls"], + "members":{ + "RoutingControls":{"shape":"RoutingControls"}, + "NextToken":{"shape":"PageToken"} + } + }, + "MaxResults":{ + "type":"integer", + "min":1 + }, + "PageToken":{ + "type":"string", + "max":8096, + "min":1, + "pattern":"[\\S]*" + }, "ResourceNotFoundException":{ "type":"structure", "required":[ @@ -151,6 +205,22 @@ "exception":true }, "RetryAfterSeconds":{"type":"integer"}, + "RoutingControl":{ + "type":"structure", + "members":{ + "ControlPanelArn":{"shape":"Arn"}, + "ControlPanelName":{"shape":"ControlPanelName"}, + "RoutingControlArn":{"shape":"Arn"}, + "RoutingControlName":{"shape":"RoutingControlName"}, + "RoutingControlState":{"shape":"RoutingControlState"} + } + }, + "RoutingControlName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^\\S+$" + }, "RoutingControlState":{ "type":"string", "enum":[ @@ -158,6 +228,26 @@ "Off" ] }, + "RoutingControls":{ + "type":"list", + "member":{"shape":"RoutingControl"} + }, + "ServiceLimitExceededException":{ + "type":"structure", + "required":[ + "message", + "limitCode", + "serviceCode" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{"shape":"String"}, + "resourceType":{"shape":"String"}, + "limitCode":{"shape":"String"}, + "serviceCode":{"shape":"String"} + }, + "exception":true + }, "String":{"type":"string"}, "ThrottlingException":{ "type":"structure", diff --git a/apis/route53-recovery-cluster/2019-12-02/docs-2.json b/apis/route53-recovery-cluster/2019-12-02/docs-2.json index 025b2e5a0de..ce62949c043 100644 --- a/apis/route53-recovery-cluster/2019-12-02/docs-2.json +++ b/apis/route53-recovery-cluster/2019-12-02/docs-2.json @@ -1,14 +1,15 @@ { "version": "2.0", - "service": "

Welcome to the Routing Control (Recovery Cluster) API Reference Guide for Amazon Route 53 Application Recovery Controller.

With Amazon Route 53 Application Recovery Controller, you can use routing control with extreme reliability to recover applications by rerouting traffic across Availability Zones or AWS Regions. Routing controls are simple on/off switches hosted on a highly available cluster in Application Recovery Controller. A cluster provides a set of five redundant Regional endpoints against which you can run API calls to get or update the state of routing controls. To implement failover, you set one routing control on and another one off, to reroute traffic from one Availability Zone or Amazon Web Services Region to another.

Be aware that you must specify the Regional endpoints for a cluster when you work with API cluster operations to get or update routing control states in Application Recovery Controller. In addition, you must specify the US West (Oregon) Region for Application Recovery Controller API calls. For example, use the parameter region us-west-2 with AWS CLI commands. For more information, see Get and update routing control states using the API in the Amazon Route 53 Application Recovery Controller Developer Guide.

This API guide includes information about the API operations for how to get and update routing control states in Application Recovery Controller. You also must set up the structures to support routing controls: clusters and control panels.

For more information about working with routing control in Application Recovery Controller, see the following:

", + "service": "

Welcome to the Routing Control (Recovery Cluster) API Reference Guide for Amazon Route 53 Application Recovery Controller.

With Route 53 ARC, you can use routing control with extreme reliability to recover applications by rerouting traffic across Availability Zones or Amazon Web Services Regions. Routing controls are simple on/off switches hosted on a highly available cluster in Route 53 ARC. A cluster provides a set of five redundant Regional endpoints against which you can run API calls to get or update the state of routing controls. To implement failover, you set one routing control On and another one Off, to reroute traffic from one Availability Zone or Amazon Web Services Region to another.

Be aware that you must specify a Regional endpoint for a cluster when you work with API cluster operations to get or update routing control states in Route 53 ARC. In addition, you must specify the US West (Oregon) Region for Route 53 ARC API calls. For example, use the parameter --region us-west-2 with AWS CLI commands. For more information, see Get and update routing control states using the API in the Amazon Route 53 Application Recovery Controller Developer Guide.

This API guide includes information about the API operations for how to get and update routing control states in Route 53 ARC. To work with routing control in Route 53 ARC, you must first create the required components (clusters, control panels, and routing controls) using the recovery cluster configuration API.

For more information about working with routing control in Route 53 ARC, see the following:

", "operations": { - "GetRoutingControlState": "

Get the state for a routing control. A routing control is a simple on/off switch that you can use to route traffic to cells. When the state is On, traffic flows to a cell. When it's Off, traffic does not flow.

Before you can create a routing control, you must first create a cluster to host the control in a control panel. For more information, see Create routing control structures in the Amazon Route 53 Application Recovery Controller Developer Guide. Then you access one of the endpoints for the cluster to get or update the routing control state to redirect traffic.

You must specify Regional endpoints when you work with API cluster operations to get or update routing control states in Application Recovery Controller.

To see a code example for getting a routing control state, including accessing Regional cluster endpoints in sequence, see API examples in the Amazon Route 53 Application Recovery Controller Developer Guide.

Learn more about working with routing controls in the following topics in the Amazon Route 53 Application Recovery Controller Developer Guide:

", - "UpdateRoutingControlState": "

Set the state of the routing control to reroute traffic. You can set the value to be On or Off. When the state is On, traffic flows to a cell. When it's Off, traffic does not flow.

With Application Recovery Controller, you can add safety rules for routing controls, which are safeguards for routing control state updates that help prevent unexpected outcomes, like fail open traffic routing. However, there are scenarios when you might want to bypass the routing control safeguards that are enforced with safety rules that you've configured. For example, you might want to fail over quickly for disaster recovery, and one or more safety rules might be unexpectedly preventing you from updating a routing control state to reroute traffic. In a \"break glass\" scenario like this, you can override one or more safety rules to change a routing control state and fail over your application.

The SafetyRulesToOverride property enables you override one or more safety rules and update routing control states. For more information, see Override safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.

You must specify Regional endpoints when you work with API cluster operations to get or update routing control states in Application Recovery Controller.

To see a code example for getting a routing control state, including accessing Regional cluster endpoints in sequence, see API examples in the Amazon Route 53 Application Recovery Controller Developer Guide.

", - "UpdateRoutingControlStates": "

Set multiple routing control states. You can set the value for each state to be On or Off. When the state is On, traffic flows to a cell. When it's Off, traffic does not flow.

With Application Recovery Controller, you can add safety rules for routing controls, which are safeguards for routing control state updates that help prevent unexpected outcomes, like fail open traffic routing. However, there are scenarios when you might want to bypass the routing control safeguards that are enforced with safety rules that you've configured. For example, you might want to fail over quickly for disaster recovery, and one or more safety rules might be unexpectedly preventing you from updating a routing control state to reroute traffic. In a \"break glass\" scenario like this, you can override one or more safety rules to change a routing control state and fail over your application.

The SafetyRulesToOverride property enables you override one or more safety rules and update routing control states. For more information, see Override safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.

You must specify Regional endpoints when you work with API cluster operations to get or update routing control states in Application Recovery Controller.

To see a code example for getting a routing control state, including accessing Regional cluster endpoints in sequence, see API examples in the Amazon Route 53 Application Recovery Controller Developer Guide.

" + "GetRoutingControlState": "

Get the state for a routing control. A routing control is a simple on/off switch that you can use to route traffic to cells. When a routing control state is On, traffic flows to a cell. When the state is Off, traffic does not flow.

Before you can create a routing control, you must first create a cluster, and then host the control in a control panel on the cluster. For more information, see Create routing control structures in the Amazon Route 53 Application Recovery Controller Developer Guide. You access one of the endpoints for the cluster to get or update the routing control state to redirect traffic for your application.

You must specify Regional endpoints when you work with API cluster operations to get or update routing control states in Route 53 ARC.

To see a code example for getting a routing control state, including accessing Regional cluster endpoints in sequence, see API examples in the Amazon Route 53 Application Recovery Controller Developer Guide.

Learn more about working with routing controls in the following topics in the Amazon Route 53 Application Recovery Controller Developer Guide:

", + "ListRoutingControls": "

List routing control names and Amazon Resource Names (ARNs), as well as the routing control state for each routing control, along with the control panel name and control panel ARN for the routing controls. If you specify a control panel ARN, this call lists the routing controls in the control panel. Otherwise, it lists all the routing controls in the cluster.

A routing control is a simple on/off switch in Route 53 ARC that you can use to route traffic to cells. When a routing control state is On, traffic flows to a cell. When the state is Off, traffic does not flow.

Before you can create a routing control, you must first create a cluster, and then host the control in a control panel on the cluster. For more information, see Create routing control structures in the Amazon Route 53 Application Recovery Controller Developer Guide. You access one of the endpoints for the cluster to get or update the routing control state to redirect traffic for your application.

You must specify Regional endpoints when you work with API cluster operations to use this API operation to list routing controls in Route 53 ARC.

Learn more about working with routing controls in the following topics in the Amazon Route 53 Application Recovery Controller Developer Guide:

", + "UpdateRoutingControlState": "

Set the state of the routing control to reroute traffic. You can set the value to be On or Off. When the state is On, traffic flows to a cell. When the state is Off, traffic does not flow.

With Route 53 ARC, you can add safety rules for routing controls, which are safeguards for routing control state updates that help prevent unexpected outcomes, like fail open traffic routing. However, there are scenarios when you might want to bypass the routing control safeguards that are enforced with safety rules that you've configured. For example, you might want to fail over quickly for disaster recovery, and one or more safety rules might be unexpectedly preventing you from updating a routing control state to reroute traffic. In a \"break glass\" scenario like this, you can override one or more safety rules to change a routing control state and fail over your application.

The SafetyRulesToOverride property enables you override one or more safety rules and update routing control states. For more information, see Override safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.

You must specify Regional endpoints when you work with API cluster operations to get or update routing control states in Route 53 ARC.

To see a code example for getting a routing control state, including accessing Regional cluster endpoints in sequence, see API examples in the Amazon Route 53 Application Recovery Controller Developer Guide.

", + "UpdateRoutingControlStates": "

Set multiple routing control states. You can set the value for each state to be On or Off. When the state is On, traffic flows to a cell. When it's Off, traffic does not flow.

With Route 53 ARC, you can add safety rules for routing controls, which are safeguards for routing control state updates that help prevent unexpected outcomes, like fail open traffic routing. However, there are scenarios when you might want to bypass the routing control safeguards that are enforced with safety rules that you've configured. For example, you might want to fail over quickly for disaster recovery, and one or more safety rules might be unexpectedly preventing you from updating a routing control state to reroute traffic. In a \"break glass\" scenario like this, you can override one or more safety rules to change a routing control state and fail over your application.

The SafetyRulesToOverride property enables you override one or more safety rules and update routing control states. For more information, see Override safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.

You must specify Regional endpoints when you work with API cluster operations to get or update routing control states in Route 53 ARC.

To see a code example for getting a routing control state, including accessing Regional cluster endpoints in sequence, see API examples in the Amazon Route 53 Application Recovery Controller Developer Guide.

" }, "shapes": { "AccessDeniedException": { - "base": "

You don't have sufficient permissions to query the routing control state.

", + "base": "

You don't have sufficient permissions to perform this action.

", "refs": { } }, @@ -16,17 +17,20 @@ "base": null, "refs": { "Arns$member": null, - "GetRoutingControlStateRequest$RoutingControlArn": "

The Amazon Resource Number (ARN) for the routing control that you want to get the state for.

", - "GetRoutingControlStateResponse$RoutingControlArn": "

The Amazon Resource Number (ARN) of the response.

", - "UpdateRoutingControlStateEntry$RoutingControlArn": "

The Amazon Resource Number (ARN) for a routing control state entry.

", - "UpdateRoutingControlStateRequest$RoutingControlArn": "

The Amazon Resource Number (ARN) for the routing control that you want to update the state for.

" + "GetRoutingControlStateRequest$RoutingControlArn": "

The Amazon Resource Name (ARN) for the routing control that you want to get the state for.

", + "GetRoutingControlStateResponse$RoutingControlArn": "

The Amazon Resource Name (ARN) of the response.

", + "ListRoutingControlsRequest$ControlPanelArn": "

The Amazon Resource Name (ARN) of the control panel of the routing controls to list.

", + "RoutingControl$ControlPanelArn": "

The Amazon Resource Name (ARN) of the control panel where the routing control is located.

", + "RoutingControl$RoutingControlArn": "

The Amazon Resource Name (ARN) of the routing control.

", + "UpdateRoutingControlStateEntry$RoutingControlArn": "

The Amazon Resource Name (ARN) for a routing control state entry.

", + "UpdateRoutingControlStateRequest$RoutingControlArn": "

The Amazon Resource Name (ARN) for the routing control that you want to update the state for.

" } }, "Arns": { "base": null, "refs": { - "UpdateRoutingControlStateRequest$SafetyRulesToOverride": "

The Amazon Resource Numbers (ARNs) for the safety rules that you want to override when you're updating the state of a routing control. You can override one safety rule or multiple safety rules by including one or more ARNs, separated by commas.

For more information, see Override safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.

", - "UpdateRoutingControlStatesRequest$SafetyRulesToOverride": "

The Amazon Resource Numbers (ARNs) for the safety rules that you want to override when you're updating routing control states. You can override one safety rule or multiple safety rules by including one or more ARNs, separated by commas.

For more information, see Override safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.

" + "UpdateRoutingControlStateRequest$SafetyRulesToOverride": "

The Amazon Resource Names (ARNs) for the safety rules that you want to override when you're updating the state of a routing control. You can override one safety rule or multiple safety rules by including one or more ARNs, separated by commas.

For more information, see Override safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.

", + "UpdateRoutingControlStatesRequest$SafetyRulesToOverride": "

The Amazon Resource Names (ARNs) for the safety rules that you want to override when you're updating routing control states. You can override one safety rule or multiple safety rules by including one or more ARNs, separated by commas.

For more information, see Override safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.

" } }, "ConflictException": { @@ -34,6 +38,12 @@ "refs": { } }, + "ControlPanelName": { + "base": null, + "refs": { + "RoutingControl$ControlPanelName": "

The name of the control panel where the routing control is located.

" + } + }, "EndpointTemporarilyUnavailableException": { "base": "

The cluster endpoint isn't available. Try another cluster endpoint.

", "refs": { @@ -54,8 +64,31 @@ "refs": { } }, + "ListRoutingControlsRequest": { + "base": null, + "refs": { + } + }, + "ListRoutingControlsResponse": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListRoutingControlsRequest$MaxResults": "

The number of routing controls objects that you want to return with this call. The default value is 500.

" + } + }, + "PageToken": { + "base": null, + "refs": { + "ListRoutingControlsRequest$NextToken": "

The token for the next set of results. You receive this token from a previous call.

", + "ListRoutingControlsResponse$NextToken": "

The token for the next set of results. You receive this token from a previous call.

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

The request references a routing control that was not found.

", + "base": "

The request references a routing control or control panel that was not found.

", "refs": { } }, @@ -66,14 +99,39 @@ "ThrottlingException$retryAfterSeconds": null } }, + "RoutingControl": { + "base": "

A routing control, which is a simple on/off switch that you can use to route traffic to cells. When a routing control state is On, traffic flows to a cell. When the state is Off, traffic does not flow.

", + "refs": { + "RoutingControls$member": null + } + }, + "RoutingControlName": { + "base": null, + "refs": { + "GetRoutingControlStateResponse$RoutingControlName": "

The routing control name.

", + "RoutingControl$RoutingControlName": "

The name of the routing control.

" + } + }, "RoutingControlState": { "base": null, "refs": { "GetRoutingControlStateResponse$RoutingControlState": "

The state of the routing control.

", + "RoutingControl$RoutingControlState": "

The current state of the routing control. When a routing control state is On, traffic flows to a cell. When the state is Off, traffic does not flow.

", "UpdateRoutingControlStateEntry$RoutingControlState": "

The routing control state in a set of routing control state entries.

", "UpdateRoutingControlStateRequest$RoutingControlState": "

The state of the routing control. You can set the value to be On or Off.

" } }, + "RoutingControls": { + "base": null, + "refs": { + "ListRoutingControlsResponse$RoutingControls": "

The list of routing controls.

" + } + }, + "ServiceLimitExceededException": { + "base": "

The request can't update that many routing control states at the same time. Try again with fewer routing control states.

", + "refs": { + } + }, "String": { "base": null, "refs": { @@ -86,6 +144,11 @@ "ResourceNotFoundException$message": null, "ResourceNotFoundException$resourceId": "Hypothetical resource identifier that was not found", "ResourceNotFoundException$resourceType": "Hypothetical resource type that was not found", + "ServiceLimitExceededException$message": null, + "ServiceLimitExceededException$resourceId": "

The resource identifier of the limit that was exceeded.

", + "ServiceLimitExceededException$resourceType": "

The resource type of the limit that was exceeded.

", + "ServiceLimitExceededException$limitCode": "

The code of the limit that was exceeded.

", + "ServiceLimitExceededException$serviceCode": "

The service code of the limit that was exceeded.

", "ThrottlingException$message": null, "ValidationException$message": null, "ValidationExceptionField$name": "

The field that had the validation exception.

", diff --git a/apis/route53-recovery-cluster/2019-12-02/paginators-1.json b/apis/route53-recovery-cluster/2019-12-02/paginators-1.json index 5677bd8e4a2..a2ef01b9f6e 100644 --- a/apis/route53-recovery-cluster/2019-12-02/paginators-1.json +++ b/apis/route53-recovery-cluster/2019-12-02/paginators-1.json @@ -1,4 +1,10 @@ { "pagination": { + "ListRoutingControls": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "RoutingControls" + } } } diff --git a/apis/workspaces/2015-04-08/api-2.json b/apis/workspaces/2015-04-08/api-2.json index 8884e5c5e1a..a866ea1afae 100644 --- a/apis/workspaces/2015-04-08/api-2.json +++ b/apis/workspaces/2015-04-08/api-2.json @@ -191,6 +191,20 @@ {"shape":"InvalidParameterValuesException"} ] }, + "DeleteClientBranding":{ + "name":"DeleteClientBranding", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteClientBrandingRequest"}, + "output":{"shape":"DeleteClientBrandingResult"}, + "errors":[ + {"shape":"InvalidParameterValuesException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ] + }, "DeleteConnectClientAddIn":{ "name":"DeleteConnectClientAddIn", "http":{ @@ -319,6 +333,20 @@ {"shape":"AccessDeniedException"} ] }, + "DescribeClientBranding":{ + "name":"DescribeClientBranding", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeClientBrandingRequest"}, + "output":{"shape":"DescribeClientBrandingResult"}, + "errors":[ + {"shape":"InvalidParameterValuesException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ] + }, "DescribeClientProperties":{ "name":"DescribeClientProperties", "http":{ @@ -521,6 +549,20 @@ {"shape":"AccessDeniedException"} ] }, + "ImportClientBranding":{ + "name":"ImportClientBranding", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportClientBrandingRequest"}, + "output":{"shape":"ImportClientBrandingResult"}, + "errors":[ + {"shape":"InvalidParameterValuesException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"AccessDeniedException"} + ] + }, "ImportWorkspaceImage":{ "name":"ImportWorkspaceImage", "http":{ @@ -990,6 +1032,41 @@ "member":{"shape":"WorkspaceBundle"} }, "BundleOwner":{"type":"string"}, + "ClientDeviceType":{ + "type":"string", + "enum":[ + "DeviceTypeWindows", + "DeviceTypeOsx", + "DeviceTypeAndroid", + "DeviceTypeIos", + "DeviceTypeLinux", + "DeviceTypeWeb" + ] + }, + "ClientDeviceTypeList":{ + "type":"list", + "member":{"shape":"ClientDeviceType"}, + "max":6, + "min":1 + }, + "ClientEmail":{ + "type":"string", + "max":64, + "min":6, + "pattern":"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$" + }, + "ClientLocale":{ + "type":"string", + "max":5, + "min":5, + "pattern":"^[a-z]{2}_[A-Z]{2}$" + }, + "ClientLoginMessage":{ + "type":"string", + "max":600, + "min":0, + "pattern":"^.*$" + }, "ClientProperties":{ "type":"structure", "members":{ @@ -1007,6 +1084,12 @@ "ClientProperties":{"shape":"ClientProperties"} } }, + "ClientUrl":{ + "type":"string", + "max":200, + "min":1, + "pattern":"^(http|https)\\://\\S+" + }, "Compute":{ "type":"string", "enum":[ @@ -1299,6 +1382,31 @@ "DISABLED" ] }, + "DefaultClientBrandingAttributes":{ + "type":"structure", + "members":{ + "LogoUrl":{"shape":"ClientUrl"}, + "SupportEmail":{"shape":"ClientEmail"}, + "SupportLink":{"shape":"ClientUrl"}, + "ForgotPasswordLink":{"shape":"ClientUrl"}, + "LoginMessage":{"shape":"LoginMessage"} + } + }, + "DefaultImportClientBrandingAttributes":{ + "type":"structure", + "members":{ + "Logo":{"shape":"DefaultLogo"}, + "SupportEmail":{"shape":"ClientEmail"}, + "SupportLink":{"shape":"ClientUrl"}, + "ForgotPasswordLink":{"shape":"ClientUrl"}, + "LoginMessage":{"shape":"LoginMessage"} + } + }, + "DefaultLogo":{ + "type":"blob", + "max":1500000, + "min":1 + }, "DefaultOu":{"type":"string"}, "DefaultWorkspaceCreationProperties":{ "type":"structure", @@ -1311,6 +1419,22 @@ "EnableMaintenanceMode":{"shape":"BooleanObject"} } }, + "DeleteClientBrandingRequest":{ + "type":"structure", + "required":[ + "ResourceId", + "Platforms" + ], + "members":{ + "ResourceId":{"shape":"DirectoryId"}, + "Platforms":{"shape":"ClientDeviceTypeList"} + } + }, + "DeleteClientBrandingResult":{ + "type":"structure", + "members":{ + } + }, "DeleteConnectClientAddInRequest":{ "type":"structure", "required":[ @@ -1427,6 +1551,24 @@ "DedicatedTenancyManagementCidrRange":{"shape":"DedicatedTenancyManagementCidrRange"} } }, + "DescribeClientBrandingRequest":{ + "type":"structure", + "required":["ResourceId"], + "members":{ + "ResourceId":{"shape":"DirectoryId"} + } + }, + "DescribeClientBrandingResult":{ + "type":"structure", + "members":{ + "DeviceTypeWindows":{"shape":"DefaultClientBrandingAttributes"}, + "DeviceTypeOsx":{"shape":"DefaultClientBrandingAttributes"}, + "DeviceTypeAndroid":{"shape":"DefaultClientBrandingAttributes"}, + "DeviceTypeIos":{"shape":"IosClientBrandingAttributes"}, + "DeviceTypeLinux":{"shape":"DefaultClientBrandingAttributes"}, + "DeviceTypeWeb":{"shape":"DefaultClientBrandingAttributes"} + } + }, "DescribeClientPropertiesRequest":{ "type":"structure", "required":["ResourceIds"], @@ -1739,6 +1881,30 @@ "SHARED" ] }, + "ImportClientBrandingRequest":{ + "type":"structure", + "required":["ResourceId"], + "members":{ + "ResourceId":{"shape":"DirectoryId"}, + "DeviceTypeWindows":{"shape":"DefaultImportClientBrandingAttributes"}, + "DeviceTypeOsx":{"shape":"DefaultImportClientBrandingAttributes"}, + "DeviceTypeAndroid":{"shape":"DefaultImportClientBrandingAttributes"}, + "DeviceTypeIos":{"shape":"IosImportClientBrandingAttributes"}, + "DeviceTypeLinux":{"shape":"DefaultImportClientBrandingAttributes"}, + "DeviceTypeWeb":{"shape":"DefaultImportClientBrandingAttributes"} + } + }, + "ImportClientBrandingResult":{ + "type":"structure", + "members":{ + "DeviceTypeWindows":{"shape":"DefaultClientBrandingAttributes"}, + "DeviceTypeOsx":{"shape":"DefaultClientBrandingAttributes"}, + "DeviceTypeAndroid":{"shape":"DefaultClientBrandingAttributes"}, + "DeviceTypeIos":{"shape":"IosClientBrandingAttributes"}, + "DeviceTypeLinux":{"shape":"DefaultClientBrandingAttributes"}, + "DeviceTypeWeb":{"shape":"DefaultClientBrandingAttributes"} + } + }, "ImportWorkspaceImageRequest":{ "type":"structure", "required":[ @@ -1776,6 +1942,45 @@ }, "exception":true }, + "Ios2XLogo":{ + "type":"blob", + "max":1770000, + "min":1 + }, + "Ios3XLogo":{ + "type":"blob", + "max":1770000, + "min":1 + }, + "IosClientBrandingAttributes":{ + "type":"structure", + "members":{ + "LogoUrl":{"shape":"ClientUrl"}, + "Logo2xUrl":{"shape":"ClientUrl"}, + "Logo3xUrl":{"shape":"ClientUrl"}, + "SupportEmail":{"shape":"ClientEmail"}, + "SupportLink":{"shape":"ClientUrl"}, + "ForgotPasswordLink":{"shape":"ClientUrl"}, + "LoginMessage":{"shape":"LoginMessage"} + } + }, + "IosImportClientBrandingAttributes":{ + "type":"structure", + "members":{ + "Logo":{"shape":"IosLogo"}, + "Logo2x":{"shape":"Ios2XLogo"}, + "Logo3x":{"shape":"Ios3XLogo"}, + "SupportEmail":{"shape":"ClientEmail"}, + "SupportLink":{"shape":"ClientUrl"}, + "ForgotPasswordLink":{"shape":"ClientUrl"}, + "LoginMessage":{"shape":"LoginMessage"} + } + }, + "IosLogo":{ + "type":"blob", + "max":447000, + "min":1 + }, "IpAddress":{"type":"string"}, "IpGroupDesc":{"type":"string"}, "IpGroupId":{ @@ -1825,6 +2030,11 @@ "NextToken":{"shape":"PaginationToken"} } }, + "LoginMessage":{ + "type":"map", + "key":{"shape":"ClientLocale"}, + "value":{"shape":"ClientLoginMessage"} + }, "ManagementCidrRangeConstraint":{ "type":"string", "pattern":"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/(3[0-2]|[1-2][0-9]|[0-9]))$" diff --git a/apis/workspaces/2015-04-08/docs-2.json b/apis/workspaces/2015-04-08/docs-2.json index 8ad457135d5..51020b06284 100644 --- a/apis/workspaces/2015-04-08/docs-2.json +++ b/apis/workspaces/2015-04-08/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "Amazon WorkSpaces Service

Amazon WorkSpaces enables you to provision virtual, cloud-based Microsoft Windows and Amazon Linux desktops for your users.

", + "service": "Amazon WorkSpaces Service

Amazon WorkSpaces enables you to provision virtual, cloud-based Microsoft Windows or Amazon Linux desktops for your users, known as WorkSpaces. WorkSpaces eliminates the need to procure and deploy hardware or install complex software. You can quickly add or remove users as your needs change. Users can access their virtual desktops from multiple devices or web browsers.

This API Reference provides detailed information about the actions, data types, parameters, and errors of the WorkSpaces service. For more information about the supported Amazon Web Services Regions, endpoints, and service quotas of the Amazon WorkSpaces service, see WorkSpaces endpoints and quotas in the Amazon Web Services General Reference.

You can also manage your WorkSpaces resources using the WorkSpaces console, Command Line Interface (CLI), and SDKs. For more information about administering WorkSpaces, see the Amazon WorkSpaces Administration Guide. For more information about using the Amazon WorkSpaces client application or web browser to access provisioned WorkSpaces, see the Amazon WorkSpaces User Guide. For more information about using the CLI to manage your WorkSpaces resources, see the WorkSpaces section of the CLI Reference.

", "operations": { "AssociateConnectionAlias": "

Associates the specified connection alias with the specified directory to enable cross-Region redirection. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

Before performing this operation, call DescribeConnectionAliases to make sure that the current state of the connection alias is CREATED.

", "AssociateIpGroups": "

Associates the specified IP access control group with the specified directory.

", @@ -13,6 +13,7 @@ "CreateUpdatedWorkspaceImage": "

Creates a new updated WorkSpace image based on the specified source image. The new updated WorkSpace image has the latest drivers and other updates required by the Amazon WorkSpaces components.

To determine which WorkSpace images need to be updated with the latest Amazon WorkSpaces requirements, use DescribeWorkspaceImages.

", "CreateWorkspaceBundle": "

Creates the specified WorkSpace bundle. For more information about creating WorkSpace bundles, see Create a Custom WorkSpaces Image and Bundle.

", "CreateWorkspaces": "

Creates one or more WorkSpaces.

This operation is asynchronous and returns before the WorkSpaces are created.

", + "DeleteClientBranding": "

Deletes customized client branding. Client branding allows you to customize your WorkSpace's client login portal. You can tailor your login portal company logo, the support email address, support link, link to reset password, and a custom message for users trying to sign in.

After you delete your customized client branding, your login portal reverts to the default client branding.

", "DeleteConnectClientAddIn": "

Deletes a client-add-in for Amazon Connect that is configured within a directory.

", "DeleteConnectionAlias": "

Deletes the specified connection alias. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

If you will no longer be using a fully qualified domain name (FQDN) as the registration code for your WorkSpaces users, you must take certain precautions to prevent potential security issues. For more information, see Security Considerations if You Stop Using Cross-Region Redirection.

To delete a connection alias that has been shared, the shared account must first disassociate the connection alias from any directories it has been associated with. Then you must unshare the connection alias from the account it has been shared with. You can delete a connection alias only after it is no longer shared with any accounts or associated with any directories.

", "DeleteIpGroup": "

Deletes the specified IP access control group.

You cannot delete an IP access control group that is associated with a directory.

", @@ -22,6 +23,7 @@ "DeregisterWorkspaceDirectory": "

Deregisters the specified directory. This operation is asynchronous and returns before the WorkSpace directory is deregistered. If any WorkSpaces are registered to this directory, you must remove them before you can deregister the directory.

Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, and you will be charged for this directory as per the Directory Service pricing terms.

To delete empty directories, see Delete the Directory for Your WorkSpaces. If you delete your Simple AD or AD Connector directory, you can always create a new one when you want to start using WorkSpaces again.

", "DescribeAccount": "

Retrieves a list that describes the configuration of Bring Your Own License (BYOL) for the specified account.

", "DescribeAccountModifications": "

Retrieves a list that describes modifications to the configuration of Bring Your Own License (BYOL) for the specified account.

", + "DescribeClientBranding": "

Describes the specified client branding. Client branding allows you to customize the log in page of various device types for your users. You can add your company logo, the support email address, support link, link to reset password, and a custom message for users trying to sign in.

Only device types that have branding information configured will be shown in the response.

", "DescribeClientProperties": "

Retrieves a list that describes one or more specified Amazon WorkSpaces clients.

", "DescribeConnectClientAddIns": "

Retrieves a list of Amazon Connect client add-ins that have been created.

", "DescribeConnectionAliasPermissions": "

Describes the permissions that the owner of a connection alias has granted to another Amazon Web Services account for the specified connection alias. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

", @@ -37,6 +39,7 @@ "DescribeWorkspacesConnectionStatus": "

Describes the connection status of the specified WorkSpaces.

", "DisassociateConnectionAlias": "

Disassociates a connection alias from a directory. Disassociating a connection alias disables cross-Region redirection between two directories in different Regions. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

Before performing this operation, call DescribeConnectionAliases to make sure that the current state of the connection alias is CREATED.

", "DisassociateIpGroups": "

Disassociates the specified IP access control group from the specified directory.

", + "ImportClientBranding": "

Imports client branding. Client branding allows you to customize your WorkSpace's client login portal. You can tailor your login portal company logo, the support email address, support link, link to reset password, and a custom message for users trying to sign in.

After you import client branding, the default branding experience for the specified platform type is replaced with the imported experience

", "ImportWorkspaceImage": "

Imports the specified Windows 10 Bring Your Own License (BYOL) image into Amazon WorkSpaces. The image must be an already licensed Amazon EC2 image that is in your Amazon Web Services account, and you must own the image. For more information about creating BYOL images, see Bring Your Own Windows Desktop Licenses.

", "ListAvailableManagementCidrRanges": "

Retrieves a list of IP address ranges, specified as IPv4 CIDR blocks, that you can use for the network management interface when you enable Bring Your Own License (BYOL).

This operation can be run only by Amazon Web Services accounts that are enabled for BYOL. If your account isn't enabled for BYOL, you'll receive an AccessDeniedException error.

The management network interface is connected to a secure Amazon WorkSpaces management network. It is used for interactive streaming of the WorkSpace desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage the WorkSpace.

", "MigrateWorkspace": "

Migrates a WorkSpace from one operating system or bundle type to another, while retaining the data on the user volume.

The migration process recreates the WorkSpace by using a new root volume from the target bundle image and the user volume from the last available snapshot of the original WorkSpace. During migration, the original D:\\Users\\%USERNAME% user profile folder is renamed to D:\\Users\\%USERNAME%MMddyyTHHmmss%.NotMigrated. A new D:\\Users\\%USERNAME%\\ folder is generated by the new OS. Certain files in the old user profile are moved to the new user profile.

For available migration scenarios, details about what happens during migration, and best practices, see Migrate a WorkSpace.

", @@ -242,6 +245,39 @@ "WorkspaceBundle$Owner": "

The owner of the bundle. This is the account identifier of the owner, or AMAZON if the bundle is provided by Amazon Web Services.

" } }, + "ClientDeviceType": { + "base": null, + "refs": { + "ClientDeviceTypeList$member": null + } + }, + "ClientDeviceTypeList": { + "base": null, + "refs": { + "DeleteClientBrandingRequest$Platforms": "

The device type for which you want to delete client branding.

" + } + }, + "ClientEmail": { + "base": null, + "refs": { + "DefaultClientBrandingAttributes$SupportEmail": "

The support email. The company's customer support email address.

", + "DefaultImportClientBrandingAttributes$SupportEmail": "

The support email. The company's customer support email address.

", + "IosClientBrandingAttributes$SupportEmail": "

The support email. The company's customer support email address.

", + "IosImportClientBrandingAttributes$SupportEmail": "

The support email. The company's customer support email address.

" + } + }, + "ClientLocale": { + "base": null, + "refs": { + "LoginMessage$key": null + } + }, + "ClientLoginMessage": { + "base": null, + "refs": { + "LoginMessage$value": null + } + }, "ClientProperties": { "base": "

Describes an Amazon WorkSpaces client.

", "refs": { @@ -261,6 +297,23 @@ "ClientPropertiesList$member": null } }, + "ClientUrl": { + "base": null, + "refs": { + "DefaultClientBrandingAttributes$LogoUrl": "

The logo URL. This is the link where users can download the logo image. The only supported image format is .png.

", + "DefaultClientBrandingAttributes$SupportLink": "

The support link. The link for the company's customer support page for their WorkSpace.

", + "DefaultClientBrandingAttributes$ForgotPasswordLink": "

The forgotten password link. This is the web address that users can go to if they forget the password for their WorkSpace.

", + "DefaultImportClientBrandingAttributes$SupportLink": "

The support link. The link for the company's customer support page for their WorkSpace.

", + "DefaultImportClientBrandingAttributes$ForgotPasswordLink": "

The forgotten password link. This is the web address that users can go to if they forget the password for their WorkSpace.

", + "IosClientBrandingAttributes$LogoUrl": "

The logo. This is the link where users can download the logo image. This is the standard-resolution display that has a 1:1 pixel density (or @1x), where one pixel is equal to one point.

", + "IosClientBrandingAttributes$Logo2xUrl": "

The @2x version of the logo. This is the higher resolution display that offers a scale factor of 2.0 (or @2x).

For more information about iOS image size and resolution, see Image Size and Resolution in the Apple Human Interface Guidelines.

", + "IosClientBrandingAttributes$Logo3xUrl": "

The @3x version of the logo. This is the higher resolution display that offers a scale factor of 3.0 (or @3x).

For more information about iOS image size and resolution, see Image Size and Resolution in the Apple Human Interface Guidelines.

", + "IosClientBrandingAttributes$SupportLink": "

The support link. The link for the company's customer support page for their WorkSpace.

", + "IosClientBrandingAttributes$ForgotPasswordLink": "

The forgotten password link. This is the web address that users can go to if they forget the password for their WorkSpace.

", + "IosImportClientBrandingAttributes$SupportLink": "

The support link. The link for the company's customer support page for their WorkSpace.

", + "IosImportClientBrandingAttributes$ForgotPasswordLink": "

The forgotten password link. This is the web address that users can go to if they forget the password for their WorkSpace.

" + } + }, "Compute": { "base": null, "refs": { @@ -490,6 +543,37 @@ "DescribeAccountResult$DedicatedTenancySupport": "

The status of BYOL (whether BYOL is enabled or disabled).

" } }, + "DefaultClientBrandingAttributes": { + "base": "

Returns default client branding attributes that were imported. These attributes display on the client login screen.

Client branding attributes are public facing. Ensure that you don't include sensitive information.

", + "refs": { + "DescribeClientBrandingResult$DeviceTypeWindows": "

The branding information for Windows devices.

", + "DescribeClientBrandingResult$DeviceTypeOsx": "

The branding information for macOS devices.

", + "DescribeClientBrandingResult$DeviceTypeAndroid": "

The branding information for Android devices.

", + "DescribeClientBrandingResult$DeviceTypeLinux": "

The branding information for Linux devices.

", + "DescribeClientBrandingResult$DeviceTypeWeb": "

The branding information for Web access.

", + "ImportClientBrandingResult$DeviceTypeWindows": "

The branding information configured for Windows devices.

", + "ImportClientBrandingResult$DeviceTypeOsx": "

The branding information configured for macOS devices.

", + "ImportClientBrandingResult$DeviceTypeAndroid": "

The branding information configured for Android devices.

", + "ImportClientBrandingResult$DeviceTypeLinux": "

The branding information configured for Linux devices.

", + "ImportClientBrandingResult$DeviceTypeWeb": "

The branding information configured for web access.

" + } + }, + "DefaultImportClientBrandingAttributes": { + "base": "

The default client branding attributes to be imported. These attributes display on the client login screen.

Client branding attributes are public facing. Ensure that you do not include sensitive information.

", + "refs": { + "ImportClientBrandingRequest$DeviceTypeWindows": "

The branding information to import for Windows devices.

", + "ImportClientBrandingRequest$DeviceTypeOsx": "

The branding information to import for macOS devices.

", + "ImportClientBrandingRequest$DeviceTypeAndroid": "

The branding information to import for Android devices.

", + "ImportClientBrandingRequest$DeviceTypeLinux": "

The branding information to import for Linux devices.

", + "ImportClientBrandingRequest$DeviceTypeWeb": "

The branding information to import for web access.

" + } + }, + "DefaultLogo": { + "base": null, + "refs": { + "DefaultImportClientBrandingAttributes$Logo": "

The logo. This is the link where users can download the logo image. The only image format accepted is .png.

" + } + }, "DefaultOu": { "base": null, "refs": { @@ -503,6 +587,16 @@ "WorkspaceDirectory$WorkspaceCreationProperties": "

The default creation properties for all WorkSpaces in the directory.

" } }, + "DeleteClientBrandingRequest": { + "base": null, + "refs": { + } + }, + "DeleteClientBrandingResult": { + "base": null, + "refs": { + } + }, "DeleteConnectClientAddInRequest": { "base": null, "refs": { @@ -593,6 +687,16 @@ "refs": { } }, + "DescribeClientBrandingRequest": { + "base": null, + "refs": { + } + }, + "DescribeClientBrandingResult": { + "base": null, + "refs": { + } + }, "DescribeClientPropertiesRequest": { "base": null, "refs": { @@ -740,12 +844,15 @@ "AssociateIpGroupsRequest$DirectoryId": "

The identifier of the directory.

", "ConnectClientAddIn$ResourceId": "

The directory identifier for which the client add-in is configured.

", "CreateConnectClientAddInRequest$ResourceId": "

The directory identifier for which to configure the client add-in.

", + "DeleteClientBrandingRequest$ResourceId": "

The directory identifier of the WorkSpace for which you want to delete client branding.

", "DeleteConnectClientAddInRequest$ResourceId": "

The directory identifier for which the client add-in is configured.

", "DeregisterWorkspaceDirectoryRequest$DirectoryId": "

The identifier of the directory. If any WorkSpaces are registered to this directory, you must remove them before you deregister the directory, or you will receive an OperationNotSupportedException error.

", + "DescribeClientBrandingRequest$ResourceId": "

The directory identifier of the WorkSpace for which you want to view client branding information.

", "DescribeConnectClientAddInsRequest$ResourceId": "

The directory identifier for which the client add-in is configured.

", "DescribeWorkspacesRequest$DirectoryId": "

The identifier of the directory. In addition, you can optionally specify a specific directory user (see UserName). You cannot combine this parameter with any other filter.

", "DirectoryIdList$member": null, "DisassociateIpGroupsRequest$DirectoryId": "

The identifier of the directory.

", + "ImportClientBrandingRequest$ResourceId": "

The directory identifier of the WorkSpace for which you want to import client branding.

", "ModifySelfservicePermissionsRequest$ResourceId": "

The identifier of the directory.

", "ModifyWorkspaceAccessPropertiesRequest$ResourceId": "

The identifier of the directory.

", "ModifyWorkspaceCreationPropertiesRequest$ResourceId": "

The identifier of the directory.

", @@ -902,6 +1009,16 @@ "DescribeWorkspaceImagesRequest$ImageType": "

The type (owned or shared) of the image.

" } }, + "ImportClientBrandingRequest": { + "base": null, + "refs": { + } + }, + "ImportClientBrandingResult": { + "base": null, + "refs": { + } + }, "ImportWorkspaceImageRequest": { "base": null, "refs": { @@ -922,6 +1039,37 @@ "refs": { } }, + "Ios2XLogo": { + "base": null, + "refs": { + "IosImportClientBrandingAttributes$Logo2x": "

The @2x version of the logo. This is the higher resolution display that offers a scale factor of 2.0 (or @2x).

For more information about iOS image size and resolution, see Image Size and Resolution in the Apple Human Interface Guidelines.

" + } + }, + "Ios3XLogo": { + "base": null, + "refs": { + "IosImportClientBrandingAttributes$Logo3x": "

The @3x version of the logo. This is the higher resolution display that offers a scale factor of 3.0 (or @3x).

For more information about iOS image size and resolution, see Image Size and Resolution in the Apple Human Interface Guidelines.

" + } + }, + "IosClientBrandingAttributes": { + "base": "

The client branding attributes for iOS device types. These attributes are displayed on the iOS client login screen only.

Client branding attributes are public facing. Ensure you do not include sensitive information.

", + "refs": { + "DescribeClientBrandingResult$DeviceTypeIos": "

The branding information for iOS devices.

", + "ImportClientBrandingResult$DeviceTypeIos": "

The branding information configured for iOS devices.

" + } + }, + "IosImportClientBrandingAttributes": { + "base": "

The client branding attributes to import for iOS device types. These attributes are displayed on the iOS client login screen.

Client branding attributes are public facing. Ensure you do not include sensitive information.

", + "refs": { + "ImportClientBrandingRequest$DeviceTypeIos": "

The branding information to import for iOS devices.

" + } + }, + "IosLogo": { + "base": null, + "refs": { + "IosImportClientBrandingAttributes$Logo": "

The logo. This is the link where users can download the logo image. This is the standard-resolution display that has a 1:1 pixel density (or @1x), where one pixel is equal to one point.

" + } + }, "IpAddress": { "base": null, "refs": { @@ -1021,6 +1169,15 @@ "refs": { } }, + "LoginMessage": { + "base": null, + "refs": { + "DefaultClientBrandingAttributes$LoginMessage": "

The login message. Specified as a key value pair, in which the key is a locale and the value is the localized message for that locale. The only key supported is en_US.

", + "DefaultImportClientBrandingAttributes$LoginMessage": "

The login message. Specified as a key value pair, in which the key is a locale and the value is the localized message for that locale. The only key supported is en_US.

", + "IosClientBrandingAttributes$LoginMessage": "

The login message. Specified as a key value pair, in which the key is a locale and the value is the localized message for that locale. The only key supported is en_US.

", + "IosImportClientBrandingAttributes$LoginMessage": "

The login message. Specified as a key value pair, in which the key is a locale and the value is the localized message for that locale. The only key supported is en_US.

" + } + }, "ManagementCidrRangeConstraint": { "base": null, "refs": { diff --git a/gems/aws-partitions/CHANGELOG.md b/gems/aws-partitions/CHANGELOG.md index f83657c222a..6b030248cd6 100644 --- a/gems/aws-partitions/CHANGELOG.md +++ b/gems/aws-partitions/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.572.0 (2022-03-31) +------------------ + +* Feature - Added support for enumerating regions for `Aws::PinpointSMSVoiceV2`. + 1.571.0 (2022-03-28) ------------------ diff --git a/gems/aws-partitions/VERSION b/gems/aws-partitions/VERSION index 4d65c69e0f2..d68bd2cb6b5 100644 --- a/gems/aws-partitions/VERSION +++ b/gems/aws-partitions/VERSION @@ -1 +1 @@ -1.571.0 +1.572.0 diff --git a/gems/aws-partitions/lib/aws-partitions.rb b/gems/aws-partitions/lib/aws-partitions.rb index 1b71627b4c0..65cc2109e3b 100644 --- a/gems/aws-partitions/lib/aws-partitions.rb +++ b/gems/aws-partitions/lib/aws-partitions.rb @@ -446,6 +446,7 @@ def service_ids 'Pinpoint' => 'pinpoint', 'PinpointEmail' => 'email', 'PinpointSMSVoice' => 'sms-voice.pinpoint', + 'PinpointSMSVoiceV2' => 'sms-voice', 'Polly' => 'polly', 'Pricing' => 'api.pricing', 'PrometheusService' => 'aps', diff --git a/gems/aws-partitions/partitions.json b/gems/aws-partitions/partitions.json index 67e514269d7..a4ad2618f59 100644 --- a/gems/aws-partitions/partitions.json +++ b/gems/aws-partitions/partitions.json @@ -2866,6 +2866,94 @@ "us-east-1" : { } } }, + "data-ats.iot" : { + "defaults" : { + "credentialScope" : { + "service" : "iotdata" + }, + "protocols" : [ "https" ] + }, + "endpoints" : { + "ap-east-1" : { }, + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "data.iot-fips.ca-central-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "eu-central-1" : { }, + "eu-north-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "eu-west-3" : { }, + "fips-ca-central-1" : { + "credentialScope" : { + "service" : "iotdata" + }, + "deprecated" : true, + "hostname" : "data.iot-fips.ca-central-1.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "service" : "iotdata" + }, + "deprecated" : true, + "hostname" : "data.iot-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "service" : "iotdata" + }, + "deprecated" : true, + "hostname" : "data.iot-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "service" : "iotdata" + }, + "deprecated" : true, + "hostname" : "data.iot-fips.us-west-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "service" : "iotdata" + }, + "deprecated" : true, + "hostname" : "data.iot-fips.us-west-2.amazonaws.com" + }, + "me-south-1" : { }, + "sa-east-1" : { }, + "us-east-1" : { + "variants" : [ { + "hostname" : "data.iot-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-east-2" : { + "variants" : [ { + "hostname" : "data.iot-fips.us-east-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-1" : { + "variants" : [ { + "hostname" : "data.iot-fips.us-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "data.iot-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + } + } + }, "data.iot" : { "defaults" : { "credentialScope" : { @@ -10899,6 +10987,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -13131,6 +13220,12 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-cn-global" }, + "cloudcontrolapi" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "cloudformation" : { "endpoints" : { "cn-north-1" : { }, @@ -13212,6 +13307,18 @@ "cn-northwest-1" : { } } }, + "data-ats.iot" : { + "defaults" : { + "credentialScope" : { + "service" : "iotdata" + }, + "protocols" : [ "https" ] + }, + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "data.iot" : { "defaults" : { "credentialScope" : { @@ -14773,6 +14880,42 @@ "us-gov-west-1" : { } } }, + "data-ats.iot" : { + "defaults" : { + "credentialScope" : { + "service" : "iotdata" + }, + "protocols" : [ "https" ] + }, + "endpoints" : { + "fips-us-gov-east-1" : { + "credentialScope" : { + "service" : "iotdata" + }, + "deprecated" : true, + "hostname" : "data.iot-fips.us-gov-east-1.amazonaws.com" + }, + "fips-us-gov-west-1" : { + "credentialScope" : { + "service" : "iotdata" + }, + "deprecated" : true, + "hostname" : "data.iot-fips.us-gov-west-1.amazonaws.com" + }, + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "data.iot-fips.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1" : { + "variants" : [ { + "hostname" : "data.iot-fips.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + } + } + }, "data.iot" : { "defaults" : { "credentialScope" : { diff --git a/gems/aws-sdk-auditmanager/CHANGELOG.md b/gems/aws-sdk-auditmanager/CHANGELOG.md index 598b1470083..7bcd17b9685 100644 --- a/gems/aws-sdk-auditmanager/CHANGELOG.md +++ b/gems/aws-sdk-auditmanager/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.23.0 (2022-03-31) +------------------ + +* Feature - This release adds documentation updates for Audit Manager. The updates provide data deletion guidance when a customer deregisters Audit Manager or deregisters a delegated administrator. + 1.22.0 (2022-03-23) ------------------ diff --git a/gems/aws-sdk-auditmanager/VERSION b/gems/aws-sdk-auditmanager/VERSION index 57807d6d0d0..a6c2798a482 100644 --- a/gems/aws-sdk-auditmanager/VERSION +++ b/gems/aws-sdk-auditmanager/VERSION @@ -1 +1 @@ -1.22.0 +1.23.0 diff --git a/gems/aws-sdk-auditmanager/lib/aws-sdk-auditmanager.rb b/gems/aws-sdk-auditmanager/lib/aws-sdk-auditmanager.rb index 853d0666742..5c964254767 100644 --- a/gems/aws-sdk-auditmanager/lib/aws-sdk-auditmanager.rb +++ b/gems/aws-sdk-auditmanager/lib/aws-sdk-auditmanager.rb @@ -48,6 +48,6 @@ # @!group service module Aws::AuditManager - GEM_VERSION = '1.22.0' + GEM_VERSION = '1.23.0' end diff --git a/gems/aws-sdk-auditmanager/lib/aws-sdk-auditmanager/client.rb b/gems/aws-sdk-auditmanager/lib/aws-sdk-auditmanager/client.rb index 9ef1541ebe5..120c63dd50f 100644 --- a/gems/aws-sdk-auditmanager/lib/aws-sdk-auditmanager/client.rb +++ b/gems/aws-sdk-auditmanager/lib/aws-sdk-auditmanager/client.rb @@ -1113,6 +1113,48 @@ def delete_control(params = {}, options = {}) # Deregisters an account in Audit Manager. # + # When you deregister your account from Audit Manager, your data isn’t + # deleted. If you want to delete your resource data, you must perform + # that task separately before you deregister your account. Either, you + # can do this in the Audit Manager console. Or, you can use one of the + # delete API operations that are provided by Audit Manager. + # + # To delete your Audit Manager resource data, see the following + # instructions: + # + # * [DeleteAssessment][1] (see also: [Deleting an assessment][2] in the + # *Audit Manager User Guide*) + # + # * [DeleteAssessmentFramework][3] (see also: [Deleting a custom + # framework][4] in the *Audit Manager User Guide*) + # + # * [DeleteAssessmentFrameworkShare][5] (see also: [Deleting a share + # request][6] in the *Audit Manager User Guide*) + # + # * [DeleteAssessmentReport][7] (see also: [Deleting an assessment + # report][8] in the *Audit Manager User Guide*) + # + # * [DeleteControl][9] (see also: [Deleting a custom control][10] in the + # *Audit Manager User Guide*) + # + # At this time, Audit Manager doesn't provide an option to delete + # evidence. All available delete operations are listed above. + # + # + # + # + # + # [1]: https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessment.html + # [2]: https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-assessment.html + # [3]: https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFramework.html + # [4]: https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-custom-framework.html + # [5]: https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFrameworkShare.html + # [6]: https://docs.aws.amazon.com/audit-manager/latest/userguide/deleting-shared-framework-requests.html + # [7]: https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentReport.html + # [8]: https://docs.aws.amazon.com/audit-manager/latest/userguide/generate-assessment-report.html#delete-assessment-report-steps + # [9]: https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteControl.html + # [10]: https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-controls.html + # # @return [Types::DeregisterAccountResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::DeregisterAccountResponse#status #status} => String @@ -1130,16 +1172,59 @@ def deregister_account(params = {}, options = {}) req.send_request(options) end - # Removes the specified member Amazon Web Services account as a - # delegated administrator for Audit Manager. + # Removes the specified Amazon Web Services account as a delegated + # administrator for Audit Manager. # # When you remove a delegated administrator from your Audit Manager # settings, you continue to have access to the evidence that you # previously collected under that account. This is also the case when - # you deregister a delegated administrator from Audit Manager. However, + # you deregister a delegated administrator from Organizations. However, # Audit Manager will stop collecting and attaching evidence to that # delegated administrator account moving forward. # + # When you deregister a delegated administrator account for Audit + # Manager, the data for that account isn’t deleted. If you want to + # delete resource data for a delegated administrator account, you must + # perform that task separately before you deregister the account. + # Either, you can do this in the Audit Manager console. Or, you can use + # one of the delete API operations that are provided by Audit Manager. + # + # To delete your Audit Manager resource data, see the following + # instructions: + # + # * [DeleteAssessment][1] (see also: [Deleting an assessment][2] in the + # *Audit Manager User Guide*) + # + # * [DeleteAssessmentFramework][3] (see also: [Deleting a custom + # framework][4] in the *Audit Manager User Guide*) + # + # * [DeleteAssessmentFrameworkShare][5] (see also: [Deleting a share + # request][6] in the *Audit Manager User Guide*) + # + # * [DeleteAssessmentReport][7] (see also: [Deleting an assessment + # report][8] in the *Audit Manager User Guide*) + # + # * [DeleteControl][9] (see also: [Deleting a custom control][10] in the + # *Audit Manager User Guide*) + # + # At this time, Audit Manager doesn't provide an option to delete + # evidence. All available delete operations are listed above. + # + # + # + # + # + # [1]: https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessment.html + # [2]: https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-assessment.html + # [3]: https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFramework.html + # [4]: https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-custom-framework.html + # [5]: https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFrameworkShare.html + # [6]: https://docs.aws.amazon.com/audit-manager/latest/userguide/deleting-shared-framework-requests.html + # [7]: https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentReport.html + # [8]: https://docs.aws.amazon.com/audit-manager/latest/userguide/generate-assessment-report.html#delete-assessment-report-steps + # [9]: https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteControl.html + # [10]: https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-controls.html + # # @option params [String] :admin_account_id # The identifier for the administrator account. # @@ -3538,7 +3623,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-auditmanager' - context[:gem_version] = '1.22.0' + context[:gem_version] = '1.23.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-cloudcontrolapi/CHANGELOG.md b/gems/aws-sdk-cloudcontrolapi/CHANGELOG.md index c752d413852..7f61ac45e61 100644 --- a/gems/aws-sdk-cloudcontrolapi/CHANGELOG.md +++ b/gems/aws-sdk-cloudcontrolapi/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.7.0 (2022-03-31) +------------------ + +* Feature - SDK release for Cloud Control API in Amazon Web Services China (Beijing) Region, operated by Sinnet, and Amazon Web Services China (Ningxia) Region, operated by NWCD + 1.6.0 (2022-02-24) ------------------ diff --git a/gems/aws-sdk-cloudcontrolapi/VERSION b/gems/aws-sdk-cloudcontrolapi/VERSION index dc1e644a101..bd8bf882d06 100644 --- a/gems/aws-sdk-cloudcontrolapi/VERSION +++ b/gems/aws-sdk-cloudcontrolapi/VERSION @@ -1 +1 @@ -1.6.0 +1.7.0 diff --git a/gems/aws-sdk-cloudcontrolapi/lib/aws-sdk-cloudcontrolapi.rb b/gems/aws-sdk-cloudcontrolapi/lib/aws-sdk-cloudcontrolapi.rb index 74e98772f15..a3fdfaf239e 100644 --- a/gems/aws-sdk-cloudcontrolapi/lib/aws-sdk-cloudcontrolapi.rb +++ b/gems/aws-sdk-cloudcontrolapi/lib/aws-sdk-cloudcontrolapi.rb @@ -49,6 +49,6 @@ # @!group service module Aws::CloudControlApi - GEM_VERSION = '1.6.0' + GEM_VERSION = '1.7.0' end diff --git a/gems/aws-sdk-cloudcontrolapi/lib/aws-sdk-cloudcontrolapi/client.rb b/gems/aws-sdk-cloudcontrolapi/lib/aws-sdk-cloudcontrolapi/client.rb index 93c1516ce30..906abf6c885 100644 --- a/gems/aws-sdk-cloudcontrolapi/lib/aws-sdk-cloudcontrolapi/client.rb +++ b/gems/aws-sdk-cloudcontrolapi/lib/aws-sdk-cloudcontrolapi/client.rb @@ -366,7 +366,7 @@ def initialize(*args) # *Amazon Web Services Cloud Control API User Guide*. # # Only resource operations requests with a status of `PENDING` or - # `IN_PROGRESS` can be cancelled. + # `IN_PROGRESS` can be canceled. # # # @@ -432,7 +432,7 @@ def cancel_resource_request(params = {}, options = {}) # # @option params [String] :role_arn # The Amazon Resource Name (ARN) of the Identity and Access Management - # (IAM) for Cloud Control API to use when performing this resource + # (IAM) role for Cloud Control API to use when performing this resource # operation. The role specified must have the permissions required for # this operation. The necessary permissions for each event handler are # defined in the ` handlers ` section of the [resource type definition @@ -492,8 +492,7 @@ def cancel_resource_request(params = {}, options = {}) # # For more information about the properties of a specific resource, # refer to the related topic for the resource in the [Resource and - # property types reference][2] in the *Amazon Web Services - # CloudFormation Users Guide*. + # property types reference][2] in the *CloudFormation Users Guide*. # # # @@ -560,7 +559,7 @@ def create_resource(params = {}, options = {}) # # @option params [String] :role_arn # The Amazon Resource Name (ARN) of the Identity and Access Management - # (IAM) for Cloud Control API to use when performing this resource + # (IAM) role for Cloud Control API to use when performing this resource # operation. The role specified must have the permissions required for # this operation. The necessary permissions for each event handler are # defined in the ` handlers ` section of the [resource type definition @@ -660,8 +659,8 @@ def delete_resource(params = {}, options = {}) # For details, see [Reading a resource's current state][1]. # # You can use this action to return information about an existing - # resource in your account and Amazon Web Services Region, whether or - # not those resources were provisioned using Cloud Control API. + # resource in your account and Amazon Web Services Region, whether those + # resources were provisioned using Cloud Control API. # # # @@ -677,7 +676,7 @@ def delete_resource(params = {}, options = {}) # # @option params [String] :role_arn # The Amazon Resource Name (ARN) of the Identity and Access Management - # (IAM) for Cloud Control API to use when performing this resource + # (IAM) role for Cloud Control API to use when performing this resource # operation. The role specified must have the permissions required for # this operation. The necessary permissions for each event handler are # defined in the ` handlers ` section of the [resource type definition @@ -801,7 +800,7 @@ def get_resource_request_status(params = {}, options = {}) # resource operation requests][1] in the *Amazon Web Services Cloud # Control API User Guide*. # - # Resource operation requests expire after seven days. + # Resource operation requests expire after 7 days. # # # @@ -871,14 +870,17 @@ def list_resource_requests(params = {}, options = {}) end # Returns information about the specified resources. For more - # information, see [Discovering - # resources](cloudcontrolapi/latest/userguide/resource-operations-list.html) - # in the *Amazon Web Services Cloud Control API User Guide*. + # information, see [Discovering resources][1] in the *Amazon Web + # Services Cloud Control API User Guide*. # # You can use this action to return information about existing resources - # in your account and Amazon Web Services Region, whether or not those + # in your account and Amazon Web Services Region, whether those # resources were provisioned using Cloud Control API. # + # + # + # [1]: https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-list.html + # # @option params [required, String] :type_name # The name of the resource type. # @@ -889,7 +891,7 @@ def list_resource_requests(params = {}, options = {}) # # @option params [String] :role_arn # The Amazon Resource Name (ARN) of the Identity and Access Management - # (IAM) for Cloud Control API to use when performing this resource + # (IAM) role for Cloud Control API to use when performing this resource # operation. The role specified must have the permissions required for # this operation. The necessary permissions for each event handler are # defined in the ` handlers ` section of the [resource type definition @@ -915,12 +917,7 @@ def list_resource_requests(params = {}, options = {}) # `NextToken` parameter is set to `null`. # # @option params [Integer] :max_results - # The maximum number of results to be returned with a single call. If - # the number of available results exceeds this maximum, the response - # includes a `NextToken` value that you can assign to the `NextToken` - # request parameter to get the next set of results. - # - # The default is `20`. + # Reserved. # # @option params [String] :resource_model # The resource model to use to select the resources to return. @@ -978,8 +975,7 @@ def list_resources(params = {}, options = {}) # # For more information about the properties of a specific resource, # refer to the related topic for the resource in the [Resource and - # property types reference][4] in the *Amazon Web Services - # CloudFormation Users Guide*. + # property types reference][4] in the *CloudFormation Users Guide*. # # # @@ -998,7 +994,7 @@ def list_resources(params = {}, options = {}) # # @option params [String] :role_arn # The Amazon Resource Name (ARN) of the Identity and Access Management - # (IAM) for Cloud Control API to use when performing this resource + # (IAM) role for Cloud Control API to use when performing this resource # operation. The role specified must have the permissions required for # this operation. The necessary permissions for each event handler are # defined in the ` handlers ` section of the [resource type definition @@ -1118,7 +1114,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-cloudcontrolapi' - context[:gem_version] = '1.6.0' + context[:gem_version] = '1.7.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-cloudcontrolapi/lib/aws-sdk-cloudcontrolapi/types.rb b/gems/aws-sdk-cloudcontrolapi/lib/aws-sdk-cloudcontrolapi/types.rb index e732475ba19..ccd9921cea1 100644 --- a/gems/aws-sdk-cloudcontrolapi/lib/aws-sdk-cloudcontrolapi/types.rb +++ b/gems/aws-sdk-cloudcontrolapi/lib/aws-sdk-cloudcontrolapi/types.rb @@ -64,7 +64,7 @@ class CancelResourceRequestOutput < Struct.new( # The specified client token has already been used in another resource # request. # - # It is best practice for client tokens to be unique for each resource + # It's best practice for client tokens to be unique for each resource # operation request. However, client token expire after 36 hours. # # @!attribute [rw] message @@ -128,11 +128,11 @@ class ConcurrentOperationException < Struct.new( # # @!attribute [rw] role_arn # The Amazon Resource Name (ARN) of the Identity and Access Management - # (IAM) for Cloud Control API to use when performing this resource - # operation. The role specified must have the permissions required for - # this operation. The necessary permissions for each event handler are - # defined in the ` handlers ` section of the [resource type definition - # schema][1]. + # (IAM) role for Cloud Control API to use when performing this + # resource operation. The role specified must have the permissions + # required for this operation. The necessary permissions for each + # event handler are defined in the ` handlers ` section of the + # [resource type definition schema][1]. # # If you do not specify a role, Cloud Control API uses a temporary # session created using your Amazon Web Services user credentials. @@ -195,8 +195,7 @@ class ConcurrentOperationException < Struct.new( # # For more information about the properties of a specific resource, # refer to the related topic for the resource in the [Resource and - # property types reference][2] in the *Amazon Web Services - # CloudFormation Users Guide*. + # property types reference][2] in the *CloudFormation Users Guide*. # # # @@ -260,11 +259,11 @@ class CreateResourceOutput < Struct.new( # # @!attribute [rw] role_arn # The Amazon Resource Name (ARN) of the Identity and Access Management - # (IAM) for Cloud Control API to use when performing this resource - # operation. The role specified must have the permissions required for - # this operation. The necessary permissions for each event handler are - # defined in the ` handlers ` section of the [resource type definition - # schema][1]. + # (IAM) role for Cloud Control API to use when performing this + # resource operation. The role specified must have the permissions + # required for this operation. The necessary permissions for each + # event handler are defined in the ` handlers ` section of the + # [resource type definition schema][1]. # # If you do not specify a role, Cloud Control API uses a temporary # session created using your Amazon Web Services user credentials. @@ -361,7 +360,7 @@ class DeleteResourceOutput < Struct.new( end # The resource handler has returned that the downstream service - # generated an error that does not map to any other handler error code. + # generated an error that doesn't map to any other handler error code. # # @!attribute [rw] message # @return [String] @@ -396,11 +395,11 @@ class GeneralServiceException < Struct.new( # # @!attribute [rw] role_arn # The Amazon Resource Name (ARN) of the Identity and Access Management - # (IAM) for Cloud Control API to use when performing this resource - # operation. The role specified must have the permissions required for - # this operation. The necessary permissions for each event handler are - # defined in the ` handlers ` section of the [resource type definition - # schema][1]. + # (IAM) role for Cloud Control API to use when performing this + # resource operation. The role specified must have the permissions + # required for this operation. The necessary permissions for each + # event handler are defined in the ` handlers ` section of the + # [resource type definition schema][1]. # # If you do not specify a role, Cloud Control API uses a temporary # session created using your Amazon Web Services user credentials. @@ -644,11 +643,11 @@ class ListResourceRequestsOutput < Struct.new( # # @!attribute [rw] role_arn # The Amazon Resource Name (ARN) of the Identity and Access Management - # (IAM) for Cloud Control API to use when performing this resource - # operation. The role specified must have the permissions required for - # this operation. The necessary permissions for each event handler are - # defined in the ` handlers ` section of the [resource type definition - # schema][1]. + # (IAM) role for Cloud Control API to use when performing this + # resource operation. The role specified must have the permissions + # required for this operation. The necessary permissions for each + # event handler are defined in the ` handlers ` section of the + # [resource type definition schema][1]. # # If you do not specify a role, Cloud Control API uses a temporary # session created using your Amazon Web Services user credentials. @@ -672,12 +671,7 @@ class ListResourceRequestsOutput < Struct.new( # @return [String] # # @!attribute [rw] max_results - # The maximum number of results to be returned with a single call. If - # the number of available results exceeds this maximum, the response - # includes a `NextToken` value that you can assign to the `NextToken` - # request parameter to get the next set of results. - # - # The default is `20`. + # Reserved. # @return [Integer] # # @!attribute [rw] resource_model @@ -724,7 +718,7 @@ class ListResourcesOutput < Struct.new( include Aws::Structure end - # The resource handler has returned that the request could not be + # The resource handler has returned that the request couldn't be # completed due to networking issues, such as a failure to receive a # response from the server. # @@ -754,7 +748,7 @@ class NotStabilizedException < Struct.new( end # One or more properties included in this resource operation are defined - # as create-only, and therefore cannot be updated. + # as create-only, and therefore can't be updated. # # @!attribute [rw] message # @return [String] @@ -767,7 +761,7 @@ class NotUpdatableException < Struct.new( include Aws::Structure end - # Cloud Control API has not received a valid response from the resource + # Cloud Control API hasn't received a valid response from the resource # handler, due to a configuration error. This includes issues such as # the resource handler returning an invalid response, or timing out. # @@ -821,7 +815,7 @@ class PrivateTypeException < Struct.new( # @!attribute [rw] operation_status # The current status of the resource operation request. # - # * `PENDING`\: The resource operation has not yet started. + # * `PENDING`\: The resource operation hasn't yet started. # # * `IN_PROGRESS`\: The resource operation is currently in progress. # @@ -882,7 +876,7 @@ class ProgressEvent < Struct.new( include Aws::Structure end - # A resource operation with the specified request token cannot be found. + # A resource operation with the specified request token can't be found. # # @!attribute [rw] message # @return [String] @@ -896,7 +890,7 @@ class RequestTokenNotFoundException < Struct.new( end # The resource is temporarily unavailable to be acted upon. For example, - # if the resource is currently undergoing an operation and cannot be + # if the resource is currently undergoing an operation and can't be # acted upon until that operation is finished. # # @!attribute [rw] message @@ -936,7 +930,7 @@ class ResourceDescription < Struct.new( include Aws::Structure end - # A resource with the specified identifier cannot be found. + # A resource with the specified identifier can't be found. # # @!attribute [rw] message # @return [String] @@ -969,14 +963,14 @@ class ResourceNotFoundException < Struct.new( # * `PENDING`\: The operation has been requested, but not yet # initiated. # - # * `IN_PROGRESS`\: The operation is currently in progress. + # * `IN_PROGRESS`\: The operation is in progress. # - # * `SUCCESS`\: The operation has successfully completed. + # * `SUCCESS`\: The operation completed. # - # * `FAILED`\: The operation has failed. + # * `FAILED`\: The operation failed. # - # * `CANCEL_IN_PROGRESS`\: The operation is currently in the process - # of being canceled. + # * `CANCEL_IN_PROGRESS`\: The operation is in the process of being + # canceled. # # * `CANCEL_COMPLETE`\: The operation has been canceled. # @return [Array] @@ -1031,7 +1025,7 @@ class ThrottlingException < Struct.new( include Aws::Structure end - # The specified extension does not exist in the CloudFormation registry. + # The specified extension doesn't exist in the CloudFormation registry. # # @!attribute [rw] message # @return [String] @@ -1044,7 +1038,7 @@ class TypeNotFoundException < Struct.new( include Aws::Structure end - # The specified resource does not support this resource operation. + # The specified resource doesn't support this resource operation. # # @!attribute [rw] message # @return [String] @@ -1081,11 +1075,11 @@ class UnsupportedActionException < Struct.new( # # @!attribute [rw] role_arn # The Amazon Resource Name (ARN) of the Identity and Access Management - # (IAM) for Cloud Control API to use when performing this resource - # operation. The role specified must have the permissions required for - # this operation. The necessary permissions for each event handler are - # defined in the ` handlers ` section of the [resource type definition - # schema][1]. + # (IAM) role for Cloud Control API to use when performing this + # resource operation. The role specified must have the permissions + # required for this operation. The necessary permissions for each + # event handler are defined in the ` handlers ` section of the + # [resource type definition schema][1]. # # If you do not specify a role, Cloud Control API uses a temporary # session created using your Amazon Web Services user credentials. diff --git a/gems/aws-sdk-gluedatabrew/CHANGELOG.md b/gems/aws-sdk-gluedatabrew/CHANGELOG.md index af54aba6df3..4886a580a62 100644 --- a/gems/aws-sdk-gluedatabrew/CHANGELOG.md +++ b/gems/aws-sdk-gluedatabrew/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.22.0 (2022-03-31) +------------------ + +* Feature - This AWS Glue Databrew release adds feature to support ORC as an input format. + 1.21.0 (2022-02-24) ------------------ diff --git a/gems/aws-sdk-gluedatabrew/VERSION b/gems/aws-sdk-gluedatabrew/VERSION index 3500250a4b0..57807d6d0d0 100644 --- a/gems/aws-sdk-gluedatabrew/VERSION +++ b/gems/aws-sdk-gluedatabrew/VERSION @@ -1 +1 @@ -1.21.0 +1.22.0 diff --git a/gems/aws-sdk-gluedatabrew/lib/aws-sdk-gluedatabrew.rb b/gems/aws-sdk-gluedatabrew/lib/aws-sdk-gluedatabrew.rb index cd35c793c2c..45b3fe737c7 100644 --- a/gems/aws-sdk-gluedatabrew/lib/aws-sdk-gluedatabrew.rb +++ b/gems/aws-sdk-gluedatabrew/lib/aws-sdk-gluedatabrew.rb @@ -48,6 +48,6 @@ # @!group service module Aws::GlueDataBrew - GEM_VERSION = '1.21.0' + GEM_VERSION = '1.22.0' end diff --git a/gems/aws-sdk-gluedatabrew/lib/aws-sdk-gluedatabrew/client.rb b/gems/aws-sdk-gluedatabrew/lib/aws-sdk-gluedatabrew/client.rb index 73158268958..d49985dfc86 100644 --- a/gems/aws-sdk-gluedatabrew/lib/aws-sdk-gluedatabrew/client.rb +++ b/gems/aws-sdk-gluedatabrew/lib/aws-sdk-gluedatabrew/client.rb @@ -450,7 +450,7 @@ def batch_delete_recipe_version(params = {}, options = {}) # # resp = client.create_dataset({ # name: "DatasetName", # required - # format: "CSV", # accepts CSV, JSON, PARQUET, EXCEL + # format: "CSV", # accepts CSV, JSON, PARQUET, EXCEL, ORC # format_options: { # json: { # multi_line: false, @@ -1303,7 +1303,7 @@ def delete_schedule(params = {}, options = {}) # resp.created_by #=> String # resp.create_date #=> Time # resp.name #=> String - # resp.format #=> String, one of "CSV", "JSON", "PARQUET", "EXCEL" + # resp.format #=> String, one of "CSV", "JSON", "PARQUET", "EXCEL", "ORC" # resp.format_options.json.multi_line #=> Boolean # resp.format_options.excel.sheet_names #=> Array # resp.format_options.excel.sheet_names[0] #=> String @@ -1867,7 +1867,7 @@ def describe_schedule(params = {}, options = {}) # resp.datasets[0].created_by #=> String # resp.datasets[0].create_date #=> Time # resp.datasets[0].name #=> String - # resp.datasets[0].format #=> String, one of "CSV", "JSON", "PARQUET", "EXCEL" + # resp.datasets[0].format #=> String, one of "CSV", "JSON", "PARQUET", "EXCEL", "ORC" # resp.datasets[0].format_options.json.multi_line #=> Boolean # resp.datasets[0].format_options.excel.sheet_names #=> Array # resp.datasets[0].format_options.excel.sheet_names[0] #=> String @@ -2737,7 +2737,7 @@ def untag_resource(params = {}, options = {}) # # resp = client.update_dataset({ # name: "DatasetName", # required - # format: "CSV", # accepts CSV, JSON, PARQUET, EXCEL + # format: "CSV", # accepts CSV, JSON, PARQUET, EXCEL, ORC # format_options: { # json: { # multi_line: false, @@ -3317,7 +3317,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-gluedatabrew' - context[:gem_version] = '1.21.0' + context[:gem_version] = '1.22.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-gluedatabrew/lib/aws-sdk-gluedatabrew/types.rb b/gems/aws-sdk-gluedatabrew/lib/aws-sdk-gluedatabrew/types.rb index 83b700ac8e5..4b6f6bb0127 100644 --- a/gems/aws-sdk-gluedatabrew/lib/aws-sdk-gluedatabrew/types.rb +++ b/gems/aws-sdk-gluedatabrew/lib/aws-sdk-gluedatabrew/types.rb @@ -233,7 +233,7 @@ class ConflictException < Struct.new( # # { # name: "DatasetName", # required - # format: "CSV", # accepts CSV, JSON, PARQUET, EXCEL + # format: "CSV", # accepts CSV, JSON, PARQUET, EXCEL, ORC # format_options: { # json: { # multi_line: false, @@ -1402,7 +1402,7 @@ class Dataset < Struct.new( include Aws::Structure end - # Represents a dataset paramater that defines type and conditions for a + # Represents a dataset parameter that defines type and conditions for a # parameter in the Amazon S3 path of the dataset. # # @note When making an API call, you may pass DatasetParameter @@ -2607,7 +2607,7 @@ class ExcelOptions < Struct.new( # @!attribute [rw] order # A criteria to use for Amazon S3 files sorting before their # selection. By default uses DESCENDING order, i.e. most recent files - # are selected first. Anotherpossible value is ASCENDING. + # are selected first. Another possible value is ASCENDING. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/FilesLimit AWS API Documentation @@ -4228,7 +4228,7 @@ class ResourceNotFoundException < Struct.new( # value or a column name. These values are defined in the # SubstitutionMap. If a CheckExpression starts with a column # reference, then ColumnSelectors in the rule should be null. If - # ColumnSelectors has been defined, then there should be no columnn + # ColumnSelectors has been defined, then there should be no column # reference in the left side of a condition, for example, `is_between # :val1 and :val2`. # @@ -4887,7 +4887,7 @@ class UntagResourceResponse < Aws::EmptyStructure; end # # { # name: "DatasetName", # required - # format: "CSV", # accepts CSV, JSON, PARQUET, EXCEL + # format: "CSV", # accepts CSV, JSON, PARQUET, EXCEL, ORC # format_options: { # json: { # multi_line: false, diff --git a/gems/aws-sdk-managedgrafana/CHANGELOG.md b/gems/aws-sdk-managedgrafana/CHANGELOG.md index 5e6ad671d17..d257e180d46 100644 --- a/gems/aws-sdk-managedgrafana/CHANGELOG.md +++ b/gems/aws-sdk-managedgrafana/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.7.0 (2022-03-31) +------------------ + +* Feature - This release adds tagging support to the Managed Grafana service. New APIs: TagResource, UntagResource and ListTagsForResource. Updates: add optional field tags to support tagging while calling CreateWorkspace. + 1.6.0 (2022-02-24) ------------------ diff --git a/gems/aws-sdk-managedgrafana/VERSION b/gems/aws-sdk-managedgrafana/VERSION index dc1e644a101..bd8bf882d06 100644 --- a/gems/aws-sdk-managedgrafana/VERSION +++ b/gems/aws-sdk-managedgrafana/VERSION @@ -1 +1 @@ -1.6.0 +1.7.0 diff --git a/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana.rb b/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana.rb index ce0d8aed2c6..3a1b7ad7ff8 100644 --- a/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana.rb +++ b/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana.rb @@ -48,6 +48,6 @@ # @!group service module Aws::ManagedGrafana - GEM_VERSION = '1.6.0' + GEM_VERSION = '1.7.0' end diff --git a/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana/client.rb b/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana/client.rb index 5bd52d35140..7e886e3139d 100644 --- a/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana/client.rb +++ b/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana/client.rb @@ -384,7 +384,7 @@ def initialize(*args) # resp.workspace.authentication.saml_configuration_status #=> String, one of "CONFIGURED", "NOT_CONFIGURED" # resp.workspace.created #=> Time # resp.workspace.data_sources #=> Array - # resp.workspace.data_sources[0] #=> String, one of "AMAZON_OPENSEARCH_SERVICE", "CLOUDWATCH", "PROMETHEUS", "XRAY", "TIMESTREAM", "SITEWISE" + # resp.workspace.data_sources[0] #=> String, one of "AMAZON_OPENSEARCH_SERVICE", "CLOUDWATCH", "PROMETHEUS", "XRAY", "TIMESTREAM", "SITEWISE", "ATHENA", "REDSHIFT" # resp.workspace.description #=> String # resp.workspace.endpoint #=> String # resp.workspace.free_trial_consumed #=> Boolean @@ -403,6 +403,8 @@ def initialize(*args) # resp.workspace.permission_type #=> String, one of "CUSTOMER_MANAGED", "SERVICE_MANAGED" # resp.workspace.stack_set_name #=> String # resp.workspace.status #=> String, one of "ACTIVE", "CREATING", "DELETING", "FAILED", "UPDATING", "UPGRADING", "DELETION_FAILED", "CREATION_FAILED", "UPDATE_FAILED", "UPGRADE_FAILED", "LICENSE_REMOVAL_FAILED" + # resp.workspace.tags #=> Hash + # resp.workspace.tags["TagKey"] #=> String # resp.workspace.workspace_role_arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/AssociateLicense AWS API Documentation @@ -457,10 +459,11 @@ def associate_license(params = {}, options = {}) # in other accounts in an organization. # # @option params [required, String] :permission_type - # If you specify `Service Managed`, Amazon Managed Grafana automatically - # creates the IAM roles and provisions the permissions that the - # workspace needs to use Amazon Web Services data sources and - # notification channels. + # If you specify `SERVICE_MANAGED` on AWS Grafana console, Amazon + # Managed Grafana automatically creates the IAM roles and provisions the + # permissions that the workspace needs to use Amazon Web Services data + # sources and notification channels. In CLI mode, the permissionType + # `SERVICE_MANAGED` will not create the IAM role for you. # # If you specify `CUSTOMER_MANAGED`, you will manage those roles and # permissions yourself. If you are creating this workspace in a member @@ -471,7 +474,7 @@ def associate_license(params = {}, options = {}) # # For more information, see [Amazon Managed Grafana permissions and # policies for Amazon Web Services data sources and notification - # channels][1] + # channels][1]. # # # @@ -481,6 +484,9 @@ def associate_license(params = {}, options = {}) # The name of the CloudFormation stack set to use to generate IAM roles # to be used for this workspace. # + # @option params [Hash] :tags + # The list of tags associated with the workspace. + # # @option params [Array] :workspace_data_sources # Specify the Amazon Web Services data sources that you want to be # queried in this workspace. Specifying these data sources here enables @@ -496,6 +502,8 @@ def associate_license(params = {}, options = {}) # A description for the workspace. This is used only to help you # identify this workspace. # + # Pattern: `^[\\p\{L\}\\p\{Z\}\\p\{N\}\\p\{P\}]\{0,2048\}$` + # # @option params [String] :workspace_name # The name for the workspace. It does not have to be unique. # @@ -513,10 +521,8 @@ def associate_license(params = {}, options = {}) # @option params [String] :workspace_role_arn # The workspace needs an IAM role that grants permissions to the Amazon # Web Services resources that the workspace will view data from. If you - # already have a role that you want to use, specify it here. If you omit - # this field and you specify some Amazon Web Services resources in - # `workspaceDataSources` or `workspaceNotificationDestinations`, a new - # IAM role with the necessary permissions is automatically created. + # already have a role that you want to use, specify it here. The + # permission type should be set to `CUSTOMER_MANAGED`. # # @return [Types::CreateWorkspaceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # @@ -531,7 +537,10 @@ def associate_license(params = {}, options = {}) # organization_role_name: "OrganizationRoleName", # permission_type: "CUSTOMER_MANAGED", # required, accepts CUSTOMER_MANAGED, SERVICE_MANAGED # stack_set_name: "StackSetName", - # workspace_data_sources: ["AMAZON_OPENSEARCH_SERVICE"], # accepts AMAZON_OPENSEARCH_SERVICE, CLOUDWATCH, PROMETHEUS, XRAY, TIMESTREAM, SITEWISE + # tags: { + # "TagKey" => "TagValue", + # }, + # workspace_data_sources: ["AMAZON_OPENSEARCH_SERVICE"], # accepts AMAZON_OPENSEARCH_SERVICE, CLOUDWATCH, PROMETHEUS, XRAY, TIMESTREAM, SITEWISE, ATHENA, REDSHIFT # workspace_description: "Description", # workspace_name: "WorkspaceName", # workspace_notification_destinations: ["SNS"], # accepts SNS @@ -547,7 +556,7 @@ def associate_license(params = {}, options = {}) # resp.workspace.authentication.saml_configuration_status #=> String, one of "CONFIGURED", "NOT_CONFIGURED" # resp.workspace.created #=> Time # resp.workspace.data_sources #=> Array - # resp.workspace.data_sources[0] #=> String, one of "AMAZON_OPENSEARCH_SERVICE", "CLOUDWATCH", "PROMETHEUS", "XRAY", "TIMESTREAM", "SITEWISE" + # resp.workspace.data_sources[0] #=> String, one of "AMAZON_OPENSEARCH_SERVICE", "CLOUDWATCH", "PROMETHEUS", "XRAY", "TIMESTREAM", "SITEWISE", "ATHENA", "REDSHIFT" # resp.workspace.description #=> String # resp.workspace.endpoint #=> String # resp.workspace.free_trial_consumed #=> Boolean @@ -566,6 +575,8 @@ def associate_license(params = {}, options = {}) # resp.workspace.permission_type #=> String, one of "CUSTOMER_MANAGED", "SERVICE_MANAGED" # resp.workspace.stack_set_name #=> String # resp.workspace.status #=> String, one of "ACTIVE", "CREATING", "DELETING", "FAILED", "UPDATING", "UPGRADING", "DELETION_FAILED", "CREATION_FAILED", "UPDATE_FAILED", "UPGRADE_FAILED", "LICENSE_REMOVAL_FAILED" + # resp.workspace.tags #=> Hash + # resp.workspace.tags["TagKey"] #=> String # resp.workspace.workspace_role_arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/CreateWorkspace AWS API Documentation @@ -600,7 +611,7 @@ def create_workspace(params = {}, options = {}) # resp.workspace.authentication.saml_configuration_status #=> String, one of "CONFIGURED", "NOT_CONFIGURED" # resp.workspace.created #=> Time # resp.workspace.data_sources #=> Array - # resp.workspace.data_sources[0] #=> String, one of "AMAZON_OPENSEARCH_SERVICE", "CLOUDWATCH", "PROMETHEUS", "XRAY", "TIMESTREAM", "SITEWISE" + # resp.workspace.data_sources[0] #=> String, one of "AMAZON_OPENSEARCH_SERVICE", "CLOUDWATCH", "PROMETHEUS", "XRAY", "TIMESTREAM", "SITEWISE", "ATHENA", "REDSHIFT" # resp.workspace.description #=> String # resp.workspace.endpoint #=> String # resp.workspace.free_trial_consumed #=> Boolean @@ -619,6 +630,8 @@ def create_workspace(params = {}, options = {}) # resp.workspace.permission_type #=> String, one of "CUSTOMER_MANAGED", "SERVICE_MANAGED" # resp.workspace.stack_set_name #=> String # resp.workspace.status #=> String, one of "ACTIVE", "CREATING", "DELETING", "FAILED", "UPDATING", "UPGRADING", "DELETION_FAILED", "CREATION_FAILED", "UPDATE_FAILED", "UPGRADE_FAILED", "LICENSE_REMOVAL_FAILED" + # resp.workspace.tags #=> Hash + # resp.workspace.tags["TagKey"] #=> String # resp.workspace.workspace_role_arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/DeleteWorkspace AWS API Documentation @@ -653,7 +666,7 @@ def delete_workspace(params = {}, options = {}) # resp.workspace.authentication.saml_configuration_status #=> String, one of "CONFIGURED", "NOT_CONFIGURED" # resp.workspace.created #=> Time # resp.workspace.data_sources #=> Array - # resp.workspace.data_sources[0] #=> String, one of "AMAZON_OPENSEARCH_SERVICE", "CLOUDWATCH", "PROMETHEUS", "XRAY", "TIMESTREAM", "SITEWISE" + # resp.workspace.data_sources[0] #=> String, one of "AMAZON_OPENSEARCH_SERVICE", "CLOUDWATCH", "PROMETHEUS", "XRAY", "TIMESTREAM", "SITEWISE", "ATHENA", "REDSHIFT" # resp.workspace.description #=> String # resp.workspace.endpoint #=> String # resp.workspace.free_trial_consumed #=> Boolean @@ -672,6 +685,8 @@ def delete_workspace(params = {}, options = {}) # resp.workspace.permission_type #=> String, one of "CUSTOMER_MANAGED", "SERVICE_MANAGED" # resp.workspace.stack_set_name #=> String # resp.workspace.status #=> String, one of "ACTIVE", "CREATING", "DELETING", "FAILED", "UPDATING", "UPGRADING", "DELETION_FAILED", "CREATION_FAILED", "UPDATE_FAILED", "UPGRADE_FAILED", "LICENSE_REMOVAL_FAILED" + # resp.workspace.tags #=> Hash + # resp.workspace.tags["TagKey"] #=> String # resp.workspace.workspace_role_arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/DescribeWorkspace AWS API Documentation @@ -757,7 +772,7 @@ def describe_workspace_authentication(params = {}, options = {}) # resp.workspace.authentication.saml_configuration_status #=> String, one of "CONFIGURED", "NOT_CONFIGURED" # resp.workspace.created #=> Time # resp.workspace.data_sources #=> Array - # resp.workspace.data_sources[0] #=> String, one of "AMAZON_OPENSEARCH_SERVICE", "CLOUDWATCH", "PROMETHEUS", "XRAY", "TIMESTREAM", "SITEWISE" + # resp.workspace.data_sources[0] #=> String, one of "AMAZON_OPENSEARCH_SERVICE", "CLOUDWATCH", "PROMETHEUS", "XRAY", "TIMESTREAM", "SITEWISE", "ATHENA", "REDSHIFT" # resp.workspace.description #=> String # resp.workspace.endpoint #=> String # resp.workspace.free_trial_consumed #=> Boolean @@ -776,6 +791,8 @@ def describe_workspace_authentication(params = {}, options = {}) # resp.workspace.permission_type #=> String, one of "CUSTOMER_MANAGED", "SERVICE_MANAGED" # resp.workspace.stack_set_name #=> String # resp.workspace.status #=> String, one of "ACTIVE", "CREATING", "DELETING", "FAILED", "UPDATING", "UPGRADING", "DELETION_FAILED", "CREATION_FAILED", "UPDATE_FAILED", "UPGRADE_FAILED", "LICENSE_REMOVAL_FAILED" + # resp.workspace.tags #=> Hash + # resp.workspace.tags["TagKey"] #=> String # resp.workspace.workspace_role_arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/DisassociateLicense AWS API Documentation @@ -852,6 +869,38 @@ def list_permissions(params = {}, options = {}) req.send_request(options) end + # The `ListTagsForResource` operation returns the tags that are + # associated with the Amazon Managed Service for Grafana resource + # specified by the `resourceArn`. Currently, the only resource that can + # be tagged is a workspace. + # + # @option params [required, String] :resource_arn + # The ARN of the resource the list of tags are associated with. + # + # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListTagsForResourceResponse#tags #tags} => Hash<String,String> + # + # @example Request syntax with placeholder values + # + # resp = client.list_tags_for_resource({ + # resource_arn: "String", # required + # }) + # + # @example Response structure + # + # resp.tags #=> Hash + # resp.tags["TagKey"] #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/ListTagsForResource AWS API Documentation + # + # @overload list_tags_for_resource(params = {}) + # @param [Hash] params ({}) + def list_tags_for_resource(params = {}, options = {}) + req = build_request(:list_tags_for_resource, params) + req.send_request(options) + end + # Returns a list of Amazon Managed Grafana workspaces in the account, # with some information about each workspace. For more complete # information about one workspace, use [DescribeWorkspace][1]. @@ -898,6 +947,8 @@ def list_permissions(params = {}, options = {}) # resp.workspaces[0].notification_destinations #=> Array # resp.workspaces[0].notification_destinations[0] #=> String, one of "SNS" # resp.workspaces[0].status #=> String, one of "ACTIVE", "CREATING", "DELETING", "FAILED", "UPDATING", "UPGRADING", "DELETION_FAILED", "CREATION_FAILED", "UPDATE_FAILED", "UPGRADE_FAILED", "LICENSE_REMOVAL_FAILED" + # resp.workspaces[0].tags #=> Hash + # resp.workspaces[0].tags["TagKey"] #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/ListWorkspaces AWS API Documentation # @@ -908,6 +959,70 @@ def list_workspaces(params = {}, options = {}) req.send_request(options) end + # The `TagResource` operation associates tags with an Amazon Managed + # Grafana resource. Currently, the only resource that can be tagged is + # workspaces. + # + # If you specify a new tag key for the resource, this tag is appended to + # the list of tags associated with the resource. If you specify a tag + # key that is already associated with the resource, the new tag value + # that you specify replaces the previous value for that tag. + # + # @option params [required, String] :resource_arn + # The ARN of the resource the tag is associated with. + # + # @option params [required, Hash] :tags + # The list of tag keys and values to associate with the resource. You + # can associate tag keys only, tags (key and values) only or a + # combination of tag keys and tags. + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.tag_resource({ + # resource_arn: "String", # required + # tags: { # required + # "TagKey" => "TagValue", + # }, + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/TagResource AWS API Documentation + # + # @overload tag_resource(params = {}) + # @param [Hash] params ({}) + def tag_resource(params = {}, options = {}) + req = build_request(:tag_resource, params) + req.send_request(options) + end + + # The `UntagResource` operation removes the association of the tag with + # the Amazon Managed Grafana resource. + # + # @option params [required, String] :resource_arn + # The ARN of the resource the tag association is removed from. + # + # @option params [required, Array] :tag_keys + # The key values of the tag to be removed from the resource. + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.untag_resource({ + # resource_arn: "String", # required + # tag_keys: ["TagKey"], # required + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/UntagResource AWS API Documentation + # + # @overload untag_resource(params = {}) + # @param [Hash] params ({}) + def untag_resource(params = {}, options = {}) + req = build_request(:untag_resource, params) + req.send_request(options) + end + # Updates which users in a workspace have the Grafana `Admin` or # `Editor` roles. # @@ -1063,7 +1178,7 @@ def update_permissions(params = {}, options = {}) # organization_role_name: "OrganizationRoleName", # permission_type: "CUSTOMER_MANAGED", # accepts CUSTOMER_MANAGED, SERVICE_MANAGED # stack_set_name: "StackSetName", - # workspace_data_sources: ["AMAZON_OPENSEARCH_SERVICE"], # accepts AMAZON_OPENSEARCH_SERVICE, CLOUDWATCH, PROMETHEUS, XRAY, TIMESTREAM, SITEWISE + # workspace_data_sources: ["AMAZON_OPENSEARCH_SERVICE"], # accepts AMAZON_OPENSEARCH_SERVICE, CLOUDWATCH, PROMETHEUS, XRAY, TIMESTREAM, SITEWISE, ATHENA, REDSHIFT # workspace_description: "Description", # workspace_id: "WorkspaceId", # required # workspace_name: "WorkspaceName", @@ -1080,7 +1195,7 @@ def update_permissions(params = {}, options = {}) # resp.workspace.authentication.saml_configuration_status #=> String, one of "CONFIGURED", "NOT_CONFIGURED" # resp.workspace.created #=> Time # resp.workspace.data_sources #=> Array - # resp.workspace.data_sources[0] #=> String, one of "AMAZON_OPENSEARCH_SERVICE", "CLOUDWATCH", "PROMETHEUS", "XRAY", "TIMESTREAM", "SITEWISE" + # resp.workspace.data_sources[0] #=> String, one of "AMAZON_OPENSEARCH_SERVICE", "CLOUDWATCH", "PROMETHEUS", "XRAY", "TIMESTREAM", "SITEWISE", "ATHENA", "REDSHIFT" # resp.workspace.description #=> String # resp.workspace.endpoint #=> String # resp.workspace.free_trial_consumed #=> Boolean @@ -1099,6 +1214,8 @@ def update_permissions(params = {}, options = {}) # resp.workspace.permission_type #=> String, one of "CUSTOMER_MANAGED", "SERVICE_MANAGED" # resp.workspace.stack_set_name #=> String # resp.workspace.status #=> String, one of "ACTIVE", "CREATING", "DELETING", "FAILED", "UPDATING", "UPGRADING", "DELETION_FAILED", "CREATION_FAILED", "UPDATE_FAILED", "UPGRADE_FAILED", "LICENSE_REMOVAL_FAILED" + # resp.workspace.tags #=> Hash + # resp.workspace.tags["TagKey"] #=> String # resp.workspace.workspace_role_arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/UpdateWorkspace AWS API Documentation @@ -1210,7 +1327,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-managedgrafana' - context[:gem_version] = '1.6.0' + context[:gem_version] = '1.7.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana/client_api.rb b/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana/client_api.rb index d3898547863..c03513918fa 100644 --- a/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana/client_api.rb +++ b/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana/client_api.rb @@ -53,6 +53,8 @@ module ClientApi ListPermissionsRequest = Shapes::StructureShape.new(name: 'ListPermissionsRequest') ListPermissionsRequestMaxResultsInteger = Shapes::IntegerShape.new(name: 'ListPermissionsRequestMaxResultsInteger') ListPermissionsResponse = Shapes::StructureShape.new(name: 'ListPermissionsResponse') + ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest') + ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse') ListWorkspacesRequest = Shapes::StructureShape.new(name: 'ListWorkspacesRequest') ListWorkspacesRequestMaxResultsInteger = Shapes::IntegerShape.new(name: 'ListWorkspacesRequestMaxResultsInteger') ListWorkspacesResponse = Shapes::StructureShape.new(name: 'ListWorkspacesResponse') @@ -79,8 +81,16 @@ module ClientApi SsoId = Shapes::StringShape.new(name: 'SsoId') StackSetName = Shapes::StringShape.new(name: 'StackSetName') String = Shapes::StringShape.new(name: 'String') + TagKey = Shapes::StringShape.new(name: 'TagKey') + TagKeys = Shapes::ListShape.new(name: 'TagKeys') + TagMap = Shapes::MapShape.new(name: 'TagMap') + TagResourceRequest = Shapes::StructureShape.new(name: 'TagResourceRequest') + TagResourceResponse = Shapes::StructureShape.new(name: 'TagResourceResponse') + TagValue = Shapes::StringShape.new(name: 'TagValue') ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException') Timestamp = Shapes::TimestampShape.new(name: 'Timestamp') + UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest') + UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse') UpdateAction = Shapes::StringShape.new(name: 'UpdateAction') UpdateError = Shapes::StructureShape.new(name: 'UpdateError') UpdateErrorCodeInteger = Shapes::IntegerShape.new(name: 'UpdateErrorCodeInteger') @@ -152,6 +162,7 @@ module ClientApi CreateWorkspaceRequest.add_member(:organization_role_name, Shapes::ShapeRef.new(shape: OrganizationRoleName, location_name: "organizationRoleName")) CreateWorkspaceRequest.add_member(:permission_type, Shapes::ShapeRef.new(shape: PermissionType, required: true, location_name: "permissionType")) CreateWorkspaceRequest.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, location_name: "stackSetName")) + CreateWorkspaceRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags")) CreateWorkspaceRequest.add_member(:workspace_data_sources, Shapes::ShapeRef.new(shape: DataSourceTypesList, location_name: "workspaceDataSources")) CreateWorkspaceRequest.add_member(:workspace_description, Shapes::ShapeRef.new(shape: Description, location_name: "workspaceDescription")) CreateWorkspaceRequest.add_member(:workspace_name, Shapes::ShapeRef.new(shape: WorkspaceName, location_name: "workspaceName")) @@ -214,6 +225,12 @@ module ClientApi ListPermissionsResponse.add_member(:permissions, Shapes::ShapeRef.new(shape: PermissionEntryList, required: true, location_name: "permissions")) ListPermissionsResponse.struct_class = Types::ListPermissionsResponse + ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: String, required: true, location: "uri", location_name: "resourceArn")) + ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest + + ListTagsForResourceResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags")) + ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse + ListWorkspacesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: ListWorkspacesRequestMaxResultsInteger, location: "querystring", location_name: "maxResults")) ListWorkspacesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location: "querystring", location_name: "nextToken")) ListWorkspacesRequest.struct_class = Types::ListWorkspacesRequest @@ -261,12 +278,29 @@ module ClientApi ServiceQuotaExceededException.add_member(:service_code, Shapes::ShapeRef.new(shape: String, required: true, location_name: "serviceCode")) ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException + TagKeys.member = Shapes::ShapeRef.new(shape: TagKey) + + TagMap.key = Shapes::ShapeRef.new(shape: TagKey) + TagMap.value = Shapes::ShapeRef.new(shape: TagValue) + + TagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: String, required: true, location: "uri", location_name: "resourceArn")) + TagResourceRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, required: true, location_name: "tags")) + TagResourceRequest.struct_class = Types::TagResourceRequest + + TagResourceResponse.struct_class = Types::TagResourceResponse + ThrottlingException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) ThrottlingException.add_member(:quota_code, Shapes::ShapeRef.new(shape: String, location_name: "quotaCode")) ThrottlingException.add_member(:retry_after_seconds, Shapes::ShapeRef.new(shape: Integer, location: "header", location_name: "Retry-After")) ThrottlingException.add_member(:service_code, Shapes::ShapeRef.new(shape: String, location_name: "serviceCode")) ThrottlingException.struct_class = Types::ThrottlingException + UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: String, required: true, location: "uri", location_name: "resourceArn")) + UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeys, required: true, location: "querystring", location_name: "tagKeys")) + UntagResourceRequest.struct_class = Types::UntagResourceRequest + + UntagResourceResponse.struct_class = Types::UntagResourceResponse + UpdateError.add_member(:caused_by, Shapes::ShapeRef.new(shape: UpdateInstruction, required: true, location_name: "causedBy")) UpdateError.add_member(:code, Shapes::ShapeRef.new(shape: UpdateErrorCodeInteger, required: true, location_name: "code")) UpdateError.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) @@ -349,6 +383,7 @@ module ClientApi WorkspaceDescription.add_member(:permission_type, Shapes::ShapeRef.new(shape: PermissionType, location_name: "permissionType")) WorkspaceDescription.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, location_name: "stackSetName")) WorkspaceDescription.add_member(:status, Shapes::ShapeRef.new(shape: WorkspaceStatus, required: true, location_name: "status")) + WorkspaceDescription.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags")) WorkspaceDescription.add_member(:workspace_role_arn, Shapes::ShapeRef.new(shape: IamRoleArn, location_name: "workspaceRoleArn")) WorkspaceDescription.struct_class = Types::WorkspaceDescription @@ -364,6 +399,7 @@ module ClientApi WorkspaceSummary.add_member(:name, Shapes::ShapeRef.new(shape: WorkspaceName, location_name: "name")) WorkspaceSummary.add_member(:notification_destinations, Shapes::ShapeRef.new(shape: NotificationDestinationsList, location_name: "notificationDestinations")) WorkspaceSummary.add_member(:status, Shapes::ShapeRef.new(shape: WorkspaceStatus, required: true, location_name: "status")) + WorkspaceSummary.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags")) WorkspaceSummary.struct_class = Types::WorkspaceSummary @@ -483,6 +519,19 @@ module ClientApi ) end) + api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListTagsForResource" + o.http_method = "GET" + o.http_request_uri = "/tags/{resourceArn}" + o.input = Shapes::ShapeRef.new(shape: ListTagsForResourceRequest) + o.output = Shapes::ShapeRef.new(shape: ListTagsForResourceResponse) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + api.add_operation(:list_workspaces, Seahorse::Model::Operation.new.tap do |o| o.name = "ListWorkspaces" o.http_method = "GET" @@ -500,6 +549,32 @@ module ClientApi ) end) + api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o| + o.name = "TagResource" + o.http_method = "POST" + o.http_request_uri = "/tags/{resourceArn}" + o.input = Shapes::ShapeRef.new(shape: TagResourceRequest) + o.output = Shapes::ShapeRef.new(shape: TagResourceResponse) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o| + o.name = "UntagResource" + o.http_method = "DELETE" + o.http_request_uri = "/tags/{resourceArn}" + o.input = Shapes::ShapeRef.new(shape: UntagResourceRequest) + o.output = Shapes::ShapeRef.new(shape: UntagResourceResponse) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + api.add_operation(:update_permissions, Seahorse::Model::Operation.new.tap do |o| o.name = "UpdatePermissions" o.http_method = "PATCH" diff --git a/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana/types.rb b/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana/types.rb index 2f0ff6f3344..fa036e08794 100644 --- a/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana/types.rb +++ b/gems/aws-sdk-managedgrafana/lib/aws-sdk-managedgrafana/types.rb @@ -223,7 +223,10 @@ class ConflictException < Struct.new( # organization_role_name: "OrganizationRoleName", # permission_type: "CUSTOMER_MANAGED", # required, accepts CUSTOMER_MANAGED, SERVICE_MANAGED # stack_set_name: "StackSetName", - # workspace_data_sources: ["AMAZON_OPENSEARCH_SERVICE"], # accepts AMAZON_OPENSEARCH_SERVICE, CLOUDWATCH, PROMETHEUS, XRAY, TIMESTREAM, SITEWISE + # tags: { + # "TagKey" => "TagValue", + # }, + # workspace_data_sources: ["AMAZON_OPENSEARCH_SERVICE"], # accepts AMAZON_OPENSEARCH_SERVICE, CLOUDWATCH, PROMETHEUS, XRAY, TIMESTREAM, SITEWISE, ATHENA, REDSHIFT # workspace_description: "Description", # workspace_name: "WorkspaceName", # workspace_notification_destinations: ["SNS"], # accepts SNS @@ -266,10 +269,12 @@ class ConflictException < Struct.new( # @return [String] # # @!attribute [rw] permission_type - # If you specify `Service Managed`, Amazon Managed Grafana - # automatically creates the IAM roles and provisions the permissions - # that the workspace needs to use Amazon Web Services data sources and - # notification channels. + # If you specify `SERVICE_MANAGED` on AWS Grafana console, Amazon + # Managed Grafana automatically creates the IAM roles and provisions + # the permissions that the workspace needs to use Amazon Web Services + # data sources and notification channels. In CLI mode, the + # permissionType `SERVICE_MANAGED` will not create the IAM role for + # you. # # If you specify `CUSTOMER_MANAGED`, you will manage those roles and # permissions yourself. If you are creating this workspace in a member @@ -280,7 +285,7 @@ class ConflictException < Struct.new( # # For more information, see [Amazon Managed Grafana permissions and # policies for Amazon Web Services data sources and notification - # channels][1] + # channels][1]. # # # @@ -292,6 +297,10 @@ class ConflictException < Struct.new( # roles to be used for this workspace. # @return [String] # + # @!attribute [rw] tags + # The list of tags associated with the workspace. + # @return [Hash] + # # @!attribute [rw] workspace_data_sources # Specify the Amazon Web Services data sources that you want to be # queried in this workspace. Specifying these data sources here @@ -308,6 +317,8 @@ class ConflictException < Struct.new( # @!attribute [rw] workspace_description # A description for the workspace. This is used only to help you # identify this workspace. + # + # Pattern: `^[\\p\{L\}\\p\{Z\}\\p\{N\}\\p\{P\}]\{0,2048\}$` # @return [String] # # @!attribute [rw] workspace_name @@ -331,10 +342,7 @@ class ConflictException < Struct.new( # The workspace needs an IAM role that grants permissions to the # Amazon Web Services resources that the workspace will view data # from. If you already have a role that you want to use, specify it - # here. If you omit this field and you specify some Amazon Web - # Services resources in `workspaceDataSources` or - # `workspaceNotificationDestinations`, a new IAM role with the - # necessary permissions is automatically created. + # here. The permission type should be set to `CUSTOMER_MANAGED`. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/CreateWorkspaceRequest AWS API Documentation @@ -346,6 +354,7 @@ class CreateWorkspaceRequest < Struct.new( :organization_role_name, :permission_type, :stack_set_name, + :tags, :workspace_data_sources, :workspace_description, :workspace_name, @@ -626,6 +635,37 @@ class ListPermissionsResponse < Struct.new( include Aws::Structure end + # @note When making an API call, you may pass ListTagsForResourceRequest + # data as a hash: + # + # { + # resource_arn: "String", # required + # } + # + # @!attribute [rw] resource_arn + # The ARN of the resource the list of tags are associated with. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/ListTagsForResourceRequest AWS API Documentation + # + class ListTagsForResourceRequest < Struct.new( + :resource_arn) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] tags + # The list of tags that are associated with the resource. + # @return [Hash] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/ListTagsForResourceResponse AWS API Documentation + # + class ListTagsForResourceResponse < Struct.new( + :tags) + SENSITIVE = [] + include Aws::Structure + end + # @note When making an API call, you may pass ListWorkspacesRequest # data as a hash: # @@ -868,6 +908,39 @@ class ServiceQuotaExceededException < Struct.new( include Aws::Structure end + # @note When making an API call, you may pass TagResourceRequest + # data as a hash: + # + # { + # resource_arn: "String", # required + # tags: { # required + # "TagKey" => "TagValue", + # }, + # } + # + # @!attribute [rw] resource_arn + # The ARN of the resource the tag is associated with. + # @return [String] + # + # @!attribute [rw] tags + # The list of tag keys and values to associate with the resource. You + # can associate tag keys only, tags (key and values) only or a + # combination of tag keys and tags. + # @return [Hash] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/TagResourceRequest AWS API Documentation + # + class TagResourceRequest < Struct.new( + :resource_arn, + :tags) + SENSITIVE = [] + include Aws::Structure + end + + # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/TagResourceResponse AWS API Documentation + # + class TagResourceResponse < Aws::EmptyStructure; end + # The request was denied because of request throttling. Retry the # request. # @@ -898,6 +971,35 @@ class ThrottlingException < Struct.new( include Aws::Structure end + # @note When making an API call, you may pass UntagResourceRequest + # data as a hash: + # + # { + # resource_arn: "String", # required + # tag_keys: ["TagKey"], # required + # } + # + # @!attribute [rw] resource_arn + # The ARN of the resource the tag association is removed from. + # @return [String] + # + # @!attribute [rw] tag_keys + # The key values of the tag to be removed from the resource. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/UntagResourceRequest AWS API Documentation + # + class UntagResourceRequest < Struct.new( + :resource_arn, + :tag_keys) + SENSITIVE = [] + include Aws::Structure + end + + # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/UntagResourceResponse AWS API Documentation + # + class UntagResourceResponse < Aws::EmptyStructure; end + # A structure containing information about one error encountered while # performing an [UpdatePermissions][1] operation. # @@ -1102,7 +1204,7 @@ class UpdateWorkspaceAuthenticationResponse < Struct.new( # organization_role_name: "OrganizationRoleName", # permission_type: "CUSTOMER_MANAGED", # accepts CUSTOMER_MANAGED, SERVICE_MANAGED # stack_set_name: "StackSetName", - # workspace_data_sources: ["AMAZON_OPENSEARCH_SERVICE"], # accepts AMAZON_OPENSEARCH_SERVICE, CLOUDWATCH, PROMETHEUS, XRAY, TIMESTREAM, SITEWISE + # workspace_data_sources: ["AMAZON_OPENSEARCH_SERVICE"], # accepts AMAZON_OPENSEARCH_SERVICE, CLOUDWATCH, PROMETHEUS, XRAY, TIMESTREAM, SITEWISE, ATHENA, REDSHIFT # workspace_description: "Description", # workspace_id: "WorkspaceId", # required # workspace_name: "WorkspaceName", @@ -1243,6 +1345,9 @@ class UpdateWorkspaceResponse < Struct.new( # # @!attribute [rw] id # The ID of the user or group. + # + # Pattern: + # `^([0-9a-fA-F]\{10\}-|)[A-Fa-f0-9]\{8\}-[A-Fa-f0-9]\{4\}-[A-Fa-f0-9]\{4\}-[A-Fa-f0-9]\{4\}-[A-Fa-f0-9]\{12\}$` # @return [String] # # @!attribute [rw] type @@ -1422,6 +1527,10 @@ class ValidationExceptionField < Struct.new( # The current status of the workspace. # @return [String] # + # @!attribute [rw] tags + # The list of tags associated with the workspace. + # @return [Hash] + # # @!attribute [rw] workspace_role_arn # The IAM role that grants permissions to the Amazon Web Services # resources that the workspace will view data from. This role must @@ -1451,6 +1560,7 @@ class WorkspaceDescription < Struct.new( :permission_type, :stack_set_name, :status, + :tags, :workspace_role_arn) SENSITIVE = [:description, :name, :organization_role_name, :organizational_units, :workspace_role_arn] include Aws::Structure @@ -1503,6 +1613,10 @@ class WorkspaceDescription < Struct.new( # The current status of the workspace. # @return [String] # + # @!attribute [rw] tags + # The list of tags associated with the workspace. + # @return [Hash] + # # @see http://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/WorkspaceSummary AWS API Documentation # class WorkspaceSummary < Struct.new( @@ -1515,7 +1629,8 @@ class WorkspaceSummary < Struct.new( :modified, :name, :notification_destinations, - :status) + :status, + :tags) SENSITIVE = [:description, :name] include Aws::Structure end diff --git a/gems/aws-sdk-pinpointsmsvoicev2/CHANGELOG.md b/gems/aws-sdk-pinpointsmsvoicev2/CHANGELOG.md new file mode 100644 index 00000000000..5407fcb62bc --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/CHANGELOG.md @@ -0,0 +1,8 @@ +Unreleased Changes +------------------ + +1.0.0 (2022-03-31) +------------------ + +* Feature - Initial release of `aws-sdk-pinpointsmsvoicev2`. + diff --git a/gems/aws-sdk-pinpointsmsvoicev2/LICENSE.txt b/gems/aws-sdk-pinpointsmsvoicev2/LICENSE.txt new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/gems/aws-sdk-pinpointsmsvoicev2/VERSION b/gems/aws-sdk-pinpointsmsvoicev2/VERSION new file mode 100644 index 00000000000..3eefcb9dd5b --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/VERSION @@ -0,0 +1 @@ +1.0.0 diff --git a/gems/aws-sdk-pinpointsmsvoicev2/aws-sdk-pinpointsmsvoicev2.gemspec b/gems/aws-sdk-pinpointsmsvoicev2/aws-sdk-pinpointsmsvoicev2.gemspec new file mode 100644 index 00000000000..3942280d250 --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/aws-sdk-pinpointsmsvoicev2.gemspec @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +Gem::Specification.new do |spec| + + spec.name = 'aws-sdk-pinpointsmsvoicev2' + spec.version = File.read(File.expand_path('../VERSION', __FILE__)).strip + spec.summary = 'AWS SDK for Ruby - Amazon Pinpoint SMS Voice V2' + spec.description = 'Official AWS Ruby gem for Amazon Pinpoint SMS Voice V2. This gem is part of the AWS SDK for Ruby.' + spec.author = 'Amazon Web Services' + spec.homepage = 'https://github.com/aws/aws-sdk-ruby' + spec.license = 'Apache-2.0' + spec.email = ['aws-dr-rubygems@amazon.com'] + spec.require_paths = ['lib'] + spec.files = Dir['LICENSE.txt', 'CHANGELOG.md', 'VERSION', 'lib/**/*.rb'] + + spec.metadata = { + 'source_code_uri' => 'https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-pinpointsmsvoicev2', + 'changelog_uri' => 'https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-pinpointsmsvoicev2/CHANGELOG.md' + } + + spec.add_dependency('aws-sdk-core', '~> 3', '>= 3.127.0') + spec.add_dependency('aws-sigv4', '~> 1.1') + + spec.required_ruby_version = '>= 2.3' +end diff --git a/gems/aws-sdk-pinpointsmsvoicev2/features/env.rb b/gems/aws-sdk-pinpointsmsvoicev2/features/env.rb new file mode 100644 index 00000000000..af6fbb2c9ba --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/features/env.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +$:.unshift(File.expand_path('../../lib', __FILE__)) +$:.unshift(File.expand_path('../../../aws-sdk-core/features', __FILE__)) +$:.unshift(File.expand_path('../../../aws-sdk-core/lib', __FILE__)) +$:.unshift(File.expand_path('../../../aws-sigv4/lib', __FILE__)) + +require 'features_helper' +require 'aws-sdk-pinpointsmsvoicev2' + +Aws::PinpointSMSVoiceV2::Client.add_plugin(ApiCallTracker) diff --git a/gems/aws-sdk-pinpointsmsvoicev2/features/smoke.feature b/gems/aws-sdk-pinpointsmsvoicev2/features/smoke.feature new file mode 100644 index 00000000000..a4dfa999a73 --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/features/smoke.feature @@ -0,0 +1,11 @@ +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +Feature: Smoke tests for PinpointSMSVoiceV2 + +Background: + Given I create a client in region 'us-west-2' diff --git a/gems/aws-sdk-pinpointsmsvoicev2/features/smoke_step_definitions.rb b/gems/aws-sdk-pinpointsmsvoicev2/features/smoke_step_definitions.rb new file mode 100644 index 00000000000..389c534da0d --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/features/smoke_step_definitions.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +# Shared Smoke Test Definitions +Given(/I create a client in region '(.*?)'/) do |region| + @regional_client = Aws::PinpointSMSVoiceV2::Client.new(region: region) +end + +Given(/I create a client with endpoint '(.*?)'/) do |endpoint| + @regional_client = Aws::PinpointSMSVoiceV2::Client.new(endpoint: endpoint) +end + +When(/I call the operation '(.*?)' with params:/) do |operation, params| + opts = JSON.parse(params, symbolize_names: true) + begin + @regional_client.send(operation.to_sym, opts) + @operation_raised_error = false + rescue StandardError + @operation_raised_error = true + end +end + +Then(/I expect an error was raised/) do + expect(@operation_raised_error).to be_truthy +end + +Then(/I expect an error was not raised/) do + expect(@operation_raised_error).not_to be_truthy +end diff --git a/gems/aws-sdk-pinpointsmsvoicev2/features/step_definitions.rb b/gems/aws-sdk-pinpointsmsvoicev2/features/step_definitions.rb new file mode 100644 index 00000000000..9e5eef2e55a --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/features/step_definitions.rb @@ -0,0 +1,8 @@ +Before("@pinpointsmsvoicev2") do + @service = Aws::PinpointSMSVoiceV2::Resource.new + @client = @service.client +end + +After("@pinpointsmsvoicev2") do + # shared cleanup logic +end diff --git a/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2.rb b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2.rb new file mode 100644 index 00000000000..5d6634c31fd --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + + +require 'aws-sdk-core' +require 'aws-sigv4' + +require_relative 'aws-sdk-pinpointsmsvoicev2/types' +require_relative 'aws-sdk-pinpointsmsvoicev2/client_api' +require_relative 'aws-sdk-pinpointsmsvoicev2/client' +require_relative 'aws-sdk-pinpointsmsvoicev2/errors' +require_relative 'aws-sdk-pinpointsmsvoicev2/waiters' +require_relative 'aws-sdk-pinpointsmsvoicev2/resource' +require_relative 'aws-sdk-pinpointsmsvoicev2/customizations' + +# This module provides support for Amazon Pinpoint SMS Voice V2. This module is available in the +# `aws-sdk-pinpointsmsvoicev2` gem. +# +# # Client +# +# The {Client} class provides one method for each API operation. Operation +# methods each accept a hash of request parameters and return a response +# structure. +# +# pinpoint_sms_voice_v2 = Aws::PinpointSMSVoiceV2::Client.new +# resp = pinpoint_sms_voice_v2.associate_origination_identity(params) +# +# See {Client} for more information. +# +# # Errors +# +# Errors returned from Amazon Pinpoint SMS Voice V2 are defined in the +# {Errors} module and all extend {Errors::ServiceError}. +# +# begin +# # do stuff +# rescue Aws::PinpointSMSVoiceV2::Errors::ServiceError +# # rescues all Amazon Pinpoint SMS Voice V2 API errors +# end +# +# See {Errors} for more information. +# +# @!group service +module Aws::PinpointSMSVoiceV2 + + GEM_VERSION = '1.0.0' + +end diff --git a/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/client.rb b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/client.rb new file mode 100644 index 00000000000..853869f09fa --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/client.rb @@ -0,0 +1,3021 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +require 'seahorse/client/plugins/content_length.rb' +require 'aws-sdk-core/plugins/credentials_configuration.rb' +require 'aws-sdk-core/plugins/logging.rb' +require 'aws-sdk-core/plugins/param_converter.rb' +require 'aws-sdk-core/plugins/param_validator.rb' +require 'aws-sdk-core/plugins/user_agent.rb' +require 'aws-sdk-core/plugins/helpful_socket_errors.rb' +require 'aws-sdk-core/plugins/retry_errors.rb' +require 'aws-sdk-core/plugins/global_configuration.rb' +require 'aws-sdk-core/plugins/regional_endpoint.rb' +require 'aws-sdk-core/plugins/endpoint_discovery.rb' +require 'aws-sdk-core/plugins/endpoint_pattern.rb' +require 'aws-sdk-core/plugins/response_paging.rb' +require 'aws-sdk-core/plugins/stub_responses.rb' +require 'aws-sdk-core/plugins/idempotency_token.rb' +require 'aws-sdk-core/plugins/jsonvalue_converter.rb' +require 'aws-sdk-core/plugins/client_metrics_plugin.rb' +require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb' +require 'aws-sdk-core/plugins/transfer_encoding.rb' +require 'aws-sdk-core/plugins/http_checksum.rb' +require 'aws-sdk-core/plugins/checksum_algorithm.rb' +require 'aws-sdk-core/plugins/defaults_mode.rb' +require 'aws-sdk-core/plugins/recursion_detection.rb' +require 'aws-sdk-core/plugins/signature_v4.rb' +require 'aws-sdk-core/plugins/protocols/json_rpc.rb' + +Aws::Plugins::GlobalConfiguration.add_identifier(:pinpointsmsvoicev2) + +module Aws::PinpointSMSVoiceV2 + # An API client for PinpointSMSVoiceV2. To construct a client, you need to configure a `:region` and `:credentials`. + # + # client = Aws::PinpointSMSVoiceV2::Client.new( + # region: region_name, + # credentials: credentials, + # # ... + # ) + # + # For details on configuring region and credentials see + # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html). + # + # See {#initialize} for a full list of supported configuration options. + class Client < Seahorse::Client::Base + + include Aws::ClientStubs + + @identifier = :pinpointsmsvoicev2 + + set_api(ClientApi::API) + + add_plugin(Seahorse::Client::Plugins::ContentLength) + add_plugin(Aws::Plugins::CredentialsConfiguration) + add_plugin(Aws::Plugins::Logging) + add_plugin(Aws::Plugins::ParamConverter) + add_plugin(Aws::Plugins::ParamValidator) + add_plugin(Aws::Plugins::UserAgent) + add_plugin(Aws::Plugins::HelpfulSocketErrors) + add_plugin(Aws::Plugins::RetryErrors) + add_plugin(Aws::Plugins::GlobalConfiguration) + add_plugin(Aws::Plugins::RegionalEndpoint) + add_plugin(Aws::Plugins::EndpointDiscovery) + add_plugin(Aws::Plugins::EndpointPattern) + add_plugin(Aws::Plugins::ResponsePaging) + add_plugin(Aws::Plugins::StubResponses) + add_plugin(Aws::Plugins::IdempotencyToken) + add_plugin(Aws::Plugins::JsonvalueConverter) + add_plugin(Aws::Plugins::ClientMetricsPlugin) + add_plugin(Aws::Plugins::ClientMetricsSendPlugin) + add_plugin(Aws::Plugins::TransferEncoding) + add_plugin(Aws::Plugins::HttpChecksum) + add_plugin(Aws::Plugins::ChecksumAlgorithm) + add_plugin(Aws::Plugins::DefaultsMode) + add_plugin(Aws::Plugins::RecursionDetection) + add_plugin(Aws::Plugins::SignatureV4) + add_plugin(Aws::Plugins::Protocols::JsonRpc) + + # @overload initialize(options) + # @param [Hash] options + # @option options [required, Aws::CredentialProvider] :credentials + # Your AWS credentials. This can be an instance of any one of the + # following classes: + # + # * `Aws::Credentials` - Used for configuring static, non-refreshing + # credentials. + # + # * `Aws::SharedCredentials` - Used for loading static credentials from a + # shared file, such as `~/.aws/config`. + # + # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role. + # + # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to + # assume a role after providing credentials via the web. + # + # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an + # access token generated from `aws login`. + # + # * `Aws::ProcessCredentials` - Used for loading credentials from a + # process that outputs to stdout. + # + # * `Aws::InstanceProfileCredentials` - Used for loading credentials + # from an EC2 IMDS on an EC2 instance. + # + # * `Aws::ECSCredentials` - Used for loading credentials from + # instances running in ECS. + # + # * `Aws::CognitoIdentityCredentials` - Used for loading credentials + # from the Cognito Identity service. + # + # When `:credentials` are not configured directly, the following + # locations will be searched for credentials: + # + # * `Aws.config[:credentials]` + # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options. + # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'] + # * `~/.aws/credentials` + # * `~/.aws/config` + # * EC2/ECS IMDS instance profile - When used by default, the timeouts + # are very aggressive. Construct and pass an instance of + # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to + # enable retries and extended timeouts. Instance profile credential + # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED'] + # to true. + # + # @option options [required, String] :region + # The AWS region to connect to. The configured `:region` is + # used to determine the service `:endpoint`. When not passed, + # a default `:region` is searched for in the following locations: + # + # * `Aws.config[:region]` + # * `ENV['AWS_REGION']` + # * `ENV['AMAZON_REGION']` + # * `ENV['AWS_DEFAULT_REGION']` + # * `~/.aws/credentials` + # * `~/.aws/config` + # + # @option options [String] :access_key_id + # + # @option options [Boolean] :active_endpoint_cache (false) + # When set to `true`, a thread polling for endpoints will be running in + # the background every 60 secs (default). Defaults to `false`. + # + # @option options [Boolean] :adaptive_retry_wait_to_fill (true) + # Used only in `adaptive` retry mode. When true, the request will sleep + # until there is sufficent client side capacity to retry the request. + # When false, the request will raise a `RetryCapacityNotAvailableError` and will + # not retry instead of sleeping. + # + # @option options [Boolean] :client_side_monitoring (false) + # When `true`, client-side metrics will be collected for all API requests from + # this client. + # + # @option options [String] :client_side_monitoring_client_id ("") + # Allows you to provide an identifier for this client which will be attached to + # all generated client side metrics. Defaults to an empty string. + # + # @option options [String] :client_side_monitoring_host ("127.0.0.1") + # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client + # side monitoring agent is running on, where client metrics will be published via UDP. + # + # @option options [Integer] :client_side_monitoring_port (31000) + # Required for publishing client metrics. The port that the client side monitoring + # agent is running on, where client metrics will be published via UDP. + # + # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher) + # Allows you to provide a custom client-side monitoring publisher class. By default, + # will use the Client Side Monitoring Agent Publisher. + # + # @option options [Boolean] :convert_params (true) + # When `true`, an attempt is made to coerce request parameters into + # the required types. + # + # @option options [Boolean] :correct_clock_skew (true) + # Used only in `standard` and adaptive retry modes. Specifies whether to apply + # a clock skew correction and retry requests with skewed client clocks. + # + # @option options [String] :defaults_mode ("legacy") + # See {Aws::DefaultsModeConfiguration} for a list of the + # accepted modes and the configuration defaults that are included. + # + # @option options [Boolean] :disable_host_prefix_injection (false) + # Set to true to disable SDK automatically adding host prefix + # to default service endpoint when available. + # + # @option options [String] :endpoint + # The client endpoint is normally constructed from the `:region` + # option. You should only configure an `:endpoint` when connecting + # to test or custom endpoints. This should be a valid HTTP(S) URI. + # + # @option options [Integer] :endpoint_cache_max_entries (1000) + # Used for the maximum size limit of the LRU cache storing endpoints data + # for endpoint discovery enabled operations. Defaults to 1000. + # + # @option options [Integer] :endpoint_cache_max_threads (10) + # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10. + # + # @option options [Integer] :endpoint_cache_poll_interval (60) + # When :endpoint_discovery and :active_endpoint_cache is enabled, + # Use this option to config the time interval in seconds for making + # requests fetching endpoints information. Defaults to 60 sec. + # + # @option options [Boolean] :endpoint_discovery (false) + # When set to `true`, endpoint discovery will be enabled for operations when available. + # + # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default) + # The log formatter. + # + # @option options [Symbol] :log_level (:info) + # The log level to send messages to the `:logger` at. + # + # @option options [Logger] :logger + # The Logger instance to send log messages to. If this option + # is not set, logging will be disabled. + # + # @option options [Integer] :max_attempts (3) + # An integer representing the maximum number attempts that will be made for + # a single request, including the initial attempt. For example, + # setting this value to 5 will result in a request being retried up to + # 4 times. Used in `standard` and `adaptive` retry modes. + # + # @option options [String] :profile ("default") + # Used when loading credentials from the shared credentials file + # at HOME/.aws/credentials. When not specified, 'default' is used. + # + # @option options [Proc] :retry_backoff + # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay. + # This option is only used in the `legacy` retry mode. + # + # @option options [Float] :retry_base_delay (0.3) + # The base delay in seconds used by the default backoff function. This option + # is only used in the `legacy` retry mode. + # + # @option options [Symbol] :retry_jitter (:none) + # A delay randomiser function used by the default backoff function. + # Some predefined functions can be referenced by name - :none, :equal, :full, + # otherwise a Proc that takes and returns a number. This option is only used + # in the `legacy` retry mode. + # + # @see https://www.awsarchitectureblog.com/2015/03/backoff.html + # + # @option options [Integer] :retry_limit (3) + # The maximum number of times to retry failed requests. Only + # ~ 500 level server errors and certain ~ 400 level client errors + # are retried. Generally, these are throttling errors, data + # checksum errors, networking errors, timeout errors, auth errors, + # endpoint discovery, and errors from expired credentials. + # This option is only used in the `legacy` retry mode. + # + # @option options [Integer] :retry_max_delay (0) + # The maximum number of seconds to delay between retries (0 for no limit) + # used by the default backoff function. This option is only used in the + # `legacy` retry mode. + # + # @option options [String] :retry_mode ("legacy") + # Specifies which retry algorithm to use. Values are: + # + # * `legacy` - The pre-existing retry behavior. This is default value if + # no retry mode is provided. + # + # * `standard` - A standardized set of retry rules across the AWS SDKs. + # This includes support for retry quotas, which limit the number of + # unsuccessful retries a client can make. + # + # * `adaptive` - An experimental retry mode that includes all the + # functionality of `standard` mode along with automatic client side + # throttling. This is a provisional mode that may change behavior + # in the future. + # + # + # @option options [String] :secret_access_key + # + # @option options [String] :session_token + # + # @option options [Boolean] :simple_json (false) + # Disables request parameter conversion, validation, and formatting. + # Also disable response data type conversions. This option is useful + # when you want to ensure the highest level of performance by + # avoiding overhead of walking request parameters and response data + # structures. + # + # When `:simple_json` is enabled, the request parameters hash must + # be formatted exactly as the DynamoDB API expects. + # + # @option options [Boolean] :stub_responses (false) + # Causes the client to return stubbed responses. By default + # fake responses are generated and returned. You can specify + # the response data to return or errors to raise by calling + # {ClientStubs#stub_responses}. See {ClientStubs} for more information. + # + # ** Please note ** When response stubbing is enabled, no HTTP + # requests are made, and retries are disabled. + # + # @option options [Boolean] :use_dualstack_endpoint + # When set to `true`, dualstack enabled endpoints (with `.aws` TLD) + # will be used if available. + # + # @option options [Boolean] :use_fips_endpoint + # When set to `true`, fips compatible endpoints will be used if available. + # When a `fips` region is used, the region is normalized and this config + # is set to `true`. + # + # @option options [Boolean] :validate_params (true) + # When `true`, request parameters are validated before + # sending the request. + # + # @option options [URI::HTTP,String] :http_proxy A proxy to send + # requests through. Formatted like 'http://proxy.com:123'. + # + # @option options [Float] :http_open_timeout (15) The number of + # seconds to wait when opening a HTTP session before raising a + # `Timeout::Error`. + # + # @option options [Float] :http_read_timeout (60) The default + # number of seconds to wait for response data. This value can + # safely be set per-request on the session. + # + # @option options [Float] :http_idle_timeout (5) The number of + # seconds a connection is allowed to sit idle before it is + # considered stale. Stale connections are closed and removed + # from the pool before making a request. + # + # @option options [Float] :http_continue_timeout (1) The number of + # seconds to wait for a 100-continue response before sending the + # request body. This option has no effect unless the request has + # "Expect" header set to "100-continue". Defaults to `nil` which + # disables this behaviour. This value can safely be set per + # request on the session. + # + # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout + # in seconds. + # + # @option options [Boolean] :http_wire_trace (false) When `true`, + # HTTP debug output will be sent to the `:logger`. + # + # @option options [Boolean] :ssl_verify_peer (true) When `true`, + # SSL peer certificates are verified when establishing a + # connection. + # + # @option options [String] :ssl_ca_bundle Full path to the SSL + # certificate authority bundle file that should be used when + # verifying peer certificates. If you do not pass + # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default + # will be used if available. + # + # @option options [String] :ssl_ca_directory Full path of the + # directory that contains the unbundled SSL certificate + # authority files for verifying peer certificates. If you do + # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the + # system default will be used if available. + # + def initialize(*args) + super + end + + # @!group API Operations + + # Associates the specified origination identity with a pool. + # + # If the origination identity is a phone number and is already + # associated with another pool, an Error is returned. A sender ID can be + # associated with multiple pools. + # + # If the origination identity configuration doesn't match the pool's + # configuration, an Error is returned. + # + # @option params [required, String] :pool_id + # The pool to update with the new Identity. This value can be either the + # PoolId or PoolArn, and you can find these values using DescribePools. + # + # @option params [required, String] :origination_identity + # The origination identity to use, such as PhoneNumberId, + # PhoneNumberArn, SenderId, or SenderIdArn. You can use + # DescribePhoneNumbers to find the values for PhoneNumberId and + # PhoneNumberArn, while DescribeSenderIds can be used to get the values + # for SenderId and SenderIdArn. + # + # @option params [required, String] :iso_country_code + # The new two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region of the origination identity. + # + # @option params [String] :client_token + # Unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @return [Types::AssociateOriginationIdentityResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::AssociateOriginationIdentityResult#pool_arn #pool_arn} => String + # * {Types::AssociateOriginationIdentityResult#pool_id #pool_id} => String + # * {Types::AssociateOriginationIdentityResult#origination_identity_arn #origination_identity_arn} => String + # * {Types::AssociateOriginationIdentityResult#origination_identity #origination_identity} => String + # * {Types::AssociateOriginationIdentityResult#iso_country_code #iso_country_code} => String + # + # @example Request syntax with placeholder values + # + # resp = client.associate_origination_identity({ + # pool_id: "PoolIdOrArn", # required + # origination_identity: "PhoneOrSenderIdOrArn", # required + # iso_country_code: "IsoCountryCode", # required + # client_token: "ClientToken", + # }) + # + # @example Response structure + # + # resp.pool_arn #=> String + # resp.pool_id #=> String + # resp.origination_identity_arn #=> String + # resp.origination_identity #=> String + # resp.iso_country_code #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/AssociateOriginationIdentity AWS API Documentation + # + # @overload associate_origination_identity(params = {}) + # @param [Hash] params ({}) + def associate_origination_identity(params = {}, options = {}) + req = build_request(:associate_origination_identity, params) + req.send_request(options) + end + + # Creates a new configuration set. After you create the configuration + # set, you can add one or more event destinations to it. + # + # A configuration set is a set of rules that you apply to the SMS and + # voice messages that you send. + # + # When you send a message, you can optionally specify a single + # configuration set. + # + # @option params [required, String] :configuration_set_name + # The name to use for the new configuration set. + # + # @option params [Array] :tags + # An array of key and value pair tags that's associated with the new + # configuration set. + # + # @option params [String] :client_token + # Unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @return [Types::CreateConfigurationSetResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateConfigurationSetResult#configuration_set_arn #configuration_set_arn} => String + # * {Types::CreateConfigurationSetResult#configuration_set_name #configuration_set_name} => String + # * {Types::CreateConfigurationSetResult#tags #tags} => Array<Types::Tag> + # * {Types::CreateConfigurationSetResult#created_timestamp #created_timestamp} => Time + # + # @example Request syntax with placeholder values + # + # resp = client.create_configuration_set({ + # configuration_set_name: "ConfigurationSetName", # required + # tags: [ + # { + # key: "TagKey", # required + # value: "TagValue", # required + # }, + # ], + # client_token: "ClientToken", + # }) + # + # @example Response structure + # + # resp.configuration_set_arn #=> String + # resp.configuration_set_name #=> String + # resp.tags #=> Array + # resp.tags[0].key #=> String + # resp.tags[0].value #=> String + # resp.created_timestamp #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/CreateConfigurationSet AWS API Documentation + # + # @overload create_configuration_set(params = {}) + # @param [Hash] params ({}) + def create_configuration_set(params = {}, options = {}) + req = build_request(:create_configuration_set, params) + req.send_request(options) + end + + # Creates a new event destination in a configuration set. + # + # An event destination is a location where you send message events. The + # event options are Amazon CloudWatch, Amazon Kinesis Data Firehose, or + # Amazon SNS. For example, when a message is delivered successfully, you + # can send information about that event to an event destination, or send + # notifications to endpoints that are subscribed to an Amazon SNS topic. + # + # Each configuration set can contain between 0 and 5 event destinations. + # Each event destination can contain a reference to a single + # destination, such as a CloudWatch or Kinesis Data Firehose + # destination. + # + # @option params [required, String] :configuration_set_name + # Either the name of the configuration set or the configuration set ARN + # to apply event logging to. The ConfigurateSetName and + # ConfigurationSetArn can be found using the DescribeConfigurationSets + # action. + # + # @option params [required, String] :event_destination_name + # The name that identifies the event destination. + # + # @option params [required, Array] :matching_event_types + # An array of event types that determine which events to log. If "ALL" + # is used, then Amazon Pinpoint logs every event type. + # + # @option params [Types::CloudWatchLogsDestination] :cloud_watch_logs_destination + # An object that contains information about an event destination for + # logging to Amazon CloudWatch logs. + # + # @option params [Types::KinesisFirehoseDestination] :kinesis_firehose_destination + # An object that contains information about an event destination for + # logging to Amazon Kinesis Data Firehose. + # + # @option params [Types::SnsDestination] :sns_destination + # An object that contains information about an event destination for + # logging to Amazon SNS. + # + # @option params [String] :client_token + # Unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @return [Types::CreateEventDestinationResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateEventDestinationResult#configuration_set_arn #configuration_set_arn} => String + # * {Types::CreateEventDestinationResult#configuration_set_name #configuration_set_name} => String + # * {Types::CreateEventDestinationResult#event_destination #event_destination} => Types::EventDestination + # + # @example Request syntax with placeholder values + # + # resp = client.create_event_destination({ + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # event_destination_name: "EventDestinationName", # required + # matching_event_types: ["ALL"], # required, accepts ALL, TEXT_ALL, TEXT_SENT, TEXT_PENDING, TEXT_QUEUED, TEXT_SUCCESSFUL, TEXT_DELIVERED, TEXT_INVALID, TEXT_INVALID_MESSAGE, TEXT_UNREACHABLE, TEXT_CARRIER_UNREACHABLE, TEXT_BLOCKED, TEXT_CARRIER_BLOCKED, TEXT_SPAM, TEXT_UNKNOWN, TEXT_TTL_EXPIRED, VOICE_ALL, VOICE_INITIATED, VOICE_RINGING, VOICE_ANSWERED, VOICE_COMPLETED, VOICE_BUSY, VOICE_NO_ANSWER, VOICE_FAILED, VOICE_TTL_EXPIRED + # cloud_watch_logs_destination: { + # iam_role_arn: "IamRoleArn", # required + # log_group_arn: "LogGroupArn", # required + # }, + # kinesis_firehose_destination: { + # iam_role_arn: "IamRoleArn", # required + # delivery_stream_arn: "DeliveryStreamArn", # required + # }, + # sns_destination: { + # topic_arn: "SnsTopicArn", # required + # }, + # client_token: "ClientToken", + # }) + # + # @example Response structure + # + # resp.configuration_set_arn #=> String + # resp.configuration_set_name #=> String + # resp.event_destination.event_destination_name #=> String + # resp.event_destination.enabled #=> Boolean + # resp.event_destination.matching_event_types #=> Array + # resp.event_destination.matching_event_types[0] #=> String, one of "ALL", "TEXT_ALL", "TEXT_SENT", "TEXT_PENDING", "TEXT_QUEUED", "TEXT_SUCCESSFUL", "TEXT_DELIVERED", "TEXT_INVALID", "TEXT_INVALID_MESSAGE", "TEXT_UNREACHABLE", "TEXT_CARRIER_UNREACHABLE", "TEXT_BLOCKED", "TEXT_CARRIER_BLOCKED", "TEXT_SPAM", "TEXT_UNKNOWN", "TEXT_TTL_EXPIRED", "VOICE_ALL", "VOICE_INITIATED", "VOICE_RINGING", "VOICE_ANSWERED", "VOICE_COMPLETED", "VOICE_BUSY", "VOICE_NO_ANSWER", "VOICE_FAILED", "VOICE_TTL_EXPIRED" + # resp.event_destination.cloud_watch_logs_destination.iam_role_arn #=> String + # resp.event_destination.cloud_watch_logs_destination.log_group_arn #=> String + # resp.event_destination.kinesis_firehose_destination.iam_role_arn #=> String + # resp.event_destination.kinesis_firehose_destination.delivery_stream_arn #=> String + # resp.event_destination.sns_destination.topic_arn #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/CreateEventDestination AWS API Documentation + # + # @overload create_event_destination(params = {}) + # @param [Hash] params ({}) + def create_event_destination(params = {}, options = {}) + req = build_request(:create_event_destination, params) + req.send_request(options) + end + + # Creates a new opt-out list. + # + # If the opt-out list name already exists, an Error is returned. + # + # An opt-out list is a list of phone numbers that are opted out, meaning + # you can't send SMS or voice messages to them. If end user replies + # with the keyword "STOP," an entry for the phone number is added to + # the opt-out list. In addition to STOP, your recipients can use any + # supported opt-out keyword, such as CANCEL or OPTOUT. For a list of + # supported opt-out keywords, see [ SMS opt out ][1] in the *Amazon + # Pinpoint User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-manage.html#channels-sms-manage-optout + # + # @option params [required, String] :opt_out_list_name + # The name of the new OptOutList. + # + # @option params [Array] :tags + # An array of tags (key and value pairs) to associate with the new + # OptOutList. + # + # @option params [String] :client_token + # Unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @return [Types::CreateOptOutListResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateOptOutListResult#opt_out_list_arn #opt_out_list_arn} => String + # * {Types::CreateOptOutListResult#opt_out_list_name #opt_out_list_name} => String + # * {Types::CreateOptOutListResult#tags #tags} => Array<Types::Tag> + # * {Types::CreateOptOutListResult#created_timestamp #created_timestamp} => Time + # + # @example Request syntax with placeholder values + # + # resp = client.create_opt_out_list({ + # opt_out_list_name: "OptOutListName", # required + # tags: [ + # { + # key: "TagKey", # required + # value: "TagValue", # required + # }, + # ], + # client_token: "ClientToken", + # }) + # + # @example Response structure + # + # resp.opt_out_list_arn #=> String + # resp.opt_out_list_name #=> String + # resp.tags #=> Array + # resp.tags[0].key #=> String + # resp.tags[0].value #=> String + # resp.created_timestamp #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/CreateOptOutList AWS API Documentation + # + # @overload create_opt_out_list(params = {}) + # @param [Hash] params ({}) + def create_opt_out_list(params = {}, options = {}) + req = build_request(:create_opt_out_list, params) + req.send_request(options) + end + + # Creates a new pool and associates the specified origination identity + # to the pool. A pool can include one or more phone numbers and + # SenderIds that are associated with your Amazon Web Services account. + # + # The new pool inherits its configuration from the specified origination + # identity. This includes keywords, message type, opt-out list, two-way + # configuration, and self-managed opt-out configuration. Deletion + # protection isn't inherited from the origination identity and defaults + # to false. + # + # If the origination identity is a phone number and is already + # associated with another pool, an Error is returned. A sender ID can be + # associated with multiple pools. + # + # @option params [required, String] :origination_identity + # The origination identity to use such as a PhoneNumberId, + # PhoneNumberArn, SenderId or SenderIdArn. You can use + # DescribePhoneNumbers to find the values for PhoneNumberId and + # PhoneNumberArn while DescribeSenderIds can be used to get the values + # for SenderId and SenderIdArn. + # + # @option params [required, String] :iso_country_code + # The new two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region of the new pool. + # + # @option params [required, String] :message_type + # The type of message. Valid values are TRANSACTIONAL for messages that + # are critical or time-sensitive and PROMOTIONAL for messages that + # aren't critical or time-sensitive. + # + # @option params [Boolean] :deletion_protection_enabled + # By default this is set to false. When set to true the pool can't be + # deleted. You can change this value using the UpdatePool action. + # + # @option params [Array] :tags + # An array of tags (key and value pairs) associated with the pool. + # + # @option params [String] :client_token + # Unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @return [Types::CreatePoolResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreatePoolResult#pool_arn #pool_arn} => String + # * {Types::CreatePoolResult#pool_id #pool_id} => String + # * {Types::CreatePoolResult#status #status} => String + # * {Types::CreatePoolResult#message_type #message_type} => String + # * {Types::CreatePoolResult#two_way_enabled #two_way_enabled} => Boolean + # * {Types::CreatePoolResult#two_way_channel_arn #two_way_channel_arn} => String + # * {Types::CreatePoolResult#self_managed_opt_outs_enabled #self_managed_opt_outs_enabled} => Boolean + # * {Types::CreatePoolResult#opt_out_list_name #opt_out_list_name} => String + # * {Types::CreatePoolResult#shared_routes_enabled #shared_routes_enabled} => Boolean + # * {Types::CreatePoolResult#deletion_protection_enabled #deletion_protection_enabled} => Boolean + # * {Types::CreatePoolResult#tags #tags} => Array<Types::Tag> + # * {Types::CreatePoolResult#created_timestamp #created_timestamp} => Time + # + # @example Request syntax with placeholder values + # + # resp = client.create_pool({ + # origination_identity: "PhoneOrSenderIdOrArn", # required + # iso_country_code: "IsoCountryCode", # required + # message_type: "TRANSACTIONAL", # required, accepts TRANSACTIONAL, PROMOTIONAL + # deletion_protection_enabled: false, + # tags: [ + # { + # key: "TagKey", # required + # value: "TagValue", # required + # }, + # ], + # client_token: "ClientToken", + # }) + # + # @example Response structure + # + # resp.pool_arn #=> String + # resp.pool_id #=> String + # resp.status #=> String, one of "CREATING", "ACTIVE", "DELETING" + # resp.message_type #=> String, one of "TRANSACTIONAL", "PROMOTIONAL" + # resp.two_way_enabled #=> Boolean + # resp.two_way_channel_arn #=> String + # resp.self_managed_opt_outs_enabled #=> Boolean + # resp.opt_out_list_name #=> String + # resp.shared_routes_enabled #=> Boolean + # resp.deletion_protection_enabled #=> Boolean + # resp.tags #=> Array + # resp.tags[0].key #=> String + # resp.tags[0].value #=> String + # resp.created_timestamp #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/CreatePool AWS API Documentation + # + # @overload create_pool(params = {}) + # @param [Hash] params ({}) + def create_pool(params = {}, options = {}) + req = build_request(:create_pool, params) + req.send_request(options) + end + + # Deletes an existing configuration set. + # + # A configuration set is a set of rules that you apply to voice and SMS + # messages that you send. In a configuration set, you can specify a + # destination for specific types of events related to voice and SMS + # messages. + # + # @option params [required, String] :configuration_set_name + # The name of the configuration set or the configuration set ARN that + # you want to delete. The ConfigurationSetName and ConfigurationSetArn + # can be found using the DescribeConfigurationSets action. + # + # @return [Types::DeleteConfigurationSetResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeleteConfigurationSetResult#configuration_set_arn #configuration_set_arn} => String + # * {Types::DeleteConfigurationSetResult#configuration_set_name #configuration_set_name} => String + # * {Types::DeleteConfigurationSetResult#event_destinations #event_destinations} => Array<Types::EventDestination> + # * {Types::DeleteConfigurationSetResult#default_message_type #default_message_type} => String + # * {Types::DeleteConfigurationSetResult#default_sender_id #default_sender_id} => String + # * {Types::DeleteConfigurationSetResult#created_timestamp #created_timestamp} => Time + # + # @example Request syntax with placeholder values + # + # resp = client.delete_configuration_set({ + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # }) + # + # @example Response structure + # + # resp.configuration_set_arn #=> String + # resp.configuration_set_name #=> String + # resp.event_destinations #=> Array + # resp.event_destinations[0].event_destination_name #=> String + # resp.event_destinations[0].enabled #=> Boolean + # resp.event_destinations[0].matching_event_types #=> Array + # resp.event_destinations[0].matching_event_types[0] #=> String, one of "ALL", "TEXT_ALL", "TEXT_SENT", "TEXT_PENDING", "TEXT_QUEUED", "TEXT_SUCCESSFUL", "TEXT_DELIVERED", "TEXT_INVALID", "TEXT_INVALID_MESSAGE", "TEXT_UNREACHABLE", "TEXT_CARRIER_UNREACHABLE", "TEXT_BLOCKED", "TEXT_CARRIER_BLOCKED", "TEXT_SPAM", "TEXT_UNKNOWN", "TEXT_TTL_EXPIRED", "VOICE_ALL", "VOICE_INITIATED", "VOICE_RINGING", "VOICE_ANSWERED", "VOICE_COMPLETED", "VOICE_BUSY", "VOICE_NO_ANSWER", "VOICE_FAILED", "VOICE_TTL_EXPIRED" + # resp.event_destinations[0].cloud_watch_logs_destination.iam_role_arn #=> String + # resp.event_destinations[0].cloud_watch_logs_destination.log_group_arn #=> String + # resp.event_destinations[0].kinesis_firehose_destination.iam_role_arn #=> String + # resp.event_destinations[0].kinesis_firehose_destination.delivery_stream_arn #=> String + # resp.event_destinations[0].sns_destination.topic_arn #=> String + # resp.default_message_type #=> String, one of "TRANSACTIONAL", "PROMOTIONAL" + # resp.default_sender_id #=> String + # resp.created_timestamp #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteConfigurationSet AWS API Documentation + # + # @overload delete_configuration_set(params = {}) + # @param [Hash] params ({}) + def delete_configuration_set(params = {}, options = {}) + req = build_request(:delete_configuration_set, params) + req.send_request(options) + end + + # Deletes an existing default message type on a configuration set. + # + # A message type is a type of messages that you plan to send. If you + # send account-related messages or time-sensitive messages such as + # one-time passcodes, choose **Transactional**. If you plan to send + # messages that contain marketing material or other promotional content, + # choose **Promotional**. This setting applies to your entire Amazon Web + # Services account. + # + # @option params [required, String] :configuration_set_name + # The name of the configuration set or the configuration set Amazon + # Resource Name (ARN) to delete the default message type from. The + # ConfigurationSetName and ConfigurationSetArn can be found using the + # DescribeConfigurationSets action. + # + # @return [Types::DeleteDefaultMessageTypeResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeleteDefaultMessageTypeResult#configuration_set_arn #configuration_set_arn} => String + # * {Types::DeleteDefaultMessageTypeResult#configuration_set_name #configuration_set_name} => String + # * {Types::DeleteDefaultMessageTypeResult#message_type #message_type} => String + # + # @example Request syntax with placeholder values + # + # resp = client.delete_default_message_type({ + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # }) + # + # @example Response structure + # + # resp.configuration_set_arn #=> String + # resp.configuration_set_name #=> String + # resp.message_type #=> String, one of "TRANSACTIONAL", "PROMOTIONAL" + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteDefaultMessageType AWS API Documentation + # + # @overload delete_default_message_type(params = {}) + # @param [Hash] params ({}) + def delete_default_message_type(params = {}, options = {}) + req = build_request(:delete_default_message_type, params) + req.send_request(options) + end + + # Deletes an existing default sender ID on a configuration set. + # + # A default sender ID is the identity that appears on recipients' + # devices when they receive SMS messages. Support for sender ID + # capabilities varies by country or region. + # + # @option params [required, String] :configuration_set_name + # The name of the configuration set or the configuration set Amazon + # Resource Name (ARN) to delete the default sender ID from. The + # ConfigurationSetName and ConfigurationSetArn can be found using the + # DescribeConfigurationSets action. + # + # @return [Types::DeleteDefaultSenderIdResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeleteDefaultSenderIdResult#configuration_set_arn #configuration_set_arn} => String + # * {Types::DeleteDefaultSenderIdResult#configuration_set_name #configuration_set_name} => String + # * {Types::DeleteDefaultSenderIdResult#sender_id #sender_id} => String + # + # @example Request syntax with placeholder values + # + # resp = client.delete_default_sender_id({ + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # }) + # + # @example Response structure + # + # resp.configuration_set_arn #=> String + # resp.configuration_set_name #=> String + # resp.sender_id #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteDefaultSenderId AWS API Documentation + # + # @overload delete_default_sender_id(params = {}) + # @param [Hash] params ({}) + def delete_default_sender_id(params = {}, options = {}) + req = build_request(:delete_default_sender_id, params) + req.send_request(options) + end + + # Deletes an existing event destination. + # + # An event destination is a location where you send response information + # about the messages that you send. For example, when a message is + # delivered successfully, you can send information about that event to + # an Amazon CloudWatch destination, or send notifications to endpoints + # that are subscribed to an Amazon SNS topic. + # + # @option params [required, String] :configuration_set_name + # The name of the configuration set or the configuration set's Amazon + # Resource Name (ARN) to remove the event destination from. The + # ConfigurateSetName and ConfigurationSetArn can be found using the + # DescribeConfigurationSets action. + # + # @option params [required, String] :event_destination_name + # The name of the event destination to delete. + # + # @return [Types::DeleteEventDestinationResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeleteEventDestinationResult#configuration_set_arn #configuration_set_arn} => String + # * {Types::DeleteEventDestinationResult#configuration_set_name #configuration_set_name} => String + # * {Types::DeleteEventDestinationResult#event_destination #event_destination} => Types::EventDestination + # + # @example Request syntax with placeholder values + # + # resp = client.delete_event_destination({ + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # event_destination_name: "EventDestinationName", # required + # }) + # + # @example Response structure + # + # resp.configuration_set_arn #=> String + # resp.configuration_set_name #=> String + # resp.event_destination.event_destination_name #=> String + # resp.event_destination.enabled #=> Boolean + # resp.event_destination.matching_event_types #=> Array + # resp.event_destination.matching_event_types[0] #=> String, one of "ALL", "TEXT_ALL", "TEXT_SENT", "TEXT_PENDING", "TEXT_QUEUED", "TEXT_SUCCESSFUL", "TEXT_DELIVERED", "TEXT_INVALID", "TEXT_INVALID_MESSAGE", "TEXT_UNREACHABLE", "TEXT_CARRIER_UNREACHABLE", "TEXT_BLOCKED", "TEXT_CARRIER_BLOCKED", "TEXT_SPAM", "TEXT_UNKNOWN", "TEXT_TTL_EXPIRED", "VOICE_ALL", "VOICE_INITIATED", "VOICE_RINGING", "VOICE_ANSWERED", "VOICE_COMPLETED", "VOICE_BUSY", "VOICE_NO_ANSWER", "VOICE_FAILED", "VOICE_TTL_EXPIRED" + # resp.event_destination.cloud_watch_logs_destination.iam_role_arn #=> String + # resp.event_destination.cloud_watch_logs_destination.log_group_arn #=> String + # resp.event_destination.kinesis_firehose_destination.iam_role_arn #=> String + # resp.event_destination.kinesis_firehose_destination.delivery_stream_arn #=> String + # resp.event_destination.sns_destination.topic_arn #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteEventDestination AWS API Documentation + # + # @overload delete_event_destination(params = {}) + # @param [Hash] params ({}) + def delete_event_destination(params = {}, options = {}) + req = build_request(:delete_event_destination, params) + req.send_request(options) + end + + # Deletes an existing keyword from an origination phone number or pool. + # + # A keyword is a word that you can search for on a particular phone + # number or pool. It is also a specific word or phrase that an end user + # can send to your number to elicit a response, such as an informational + # message or a special offer. When your number receives a message that + # begins with a keyword, Amazon Pinpoint responds with a customizable + # message. + # + # Keywords "HELP" and "STOP" can't be deleted or modified. + # + # @option params [required, String] :origination_identity + # The origination identity to use such as a PhoneNumberId, + # PhoneNumberArn, PoolId or PoolArn. You can use DescribePhoneNumbers to + # find the values for PhoneNumberId and PhoneNumberArn and DescribePools + # to find the values of PoolId and PoolArn. + # + # @option params [required, String] :keyword + # The keyword to delete. + # + # @return [Types::DeleteKeywordResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeleteKeywordResult#origination_identity_arn #origination_identity_arn} => String + # * {Types::DeleteKeywordResult#origination_identity #origination_identity} => String + # * {Types::DeleteKeywordResult#keyword #keyword} => String + # * {Types::DeleteKeywordResult#keyword_message #keyword_message} => String + # * {Types::DeleteKeywordResult#keyword_action #keyword_action} => String + # + # @example Request syntax with placeholder values + # + # resp = client.delete_keyword({ + # origination_identity: "PhoneOrPoolIdOrArn", # required + # keyword: "Keyword", # required + # }) + # + # @example Response structure + # + # resp.origination_identity_arn #=> String + # resp.origination_identity #=> String + # resp.keyword #=> String + # resp.keyword_message #=> String + # resp.keyword_action #=> String, one of "AUTOMATIC_RESPONSE", "OPT_OUT", "OPT_IN" + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteKeyword AWS API Documentation + # + # @overload delete_keyword(params = {}) + # @param [Hash] params ({}) + def delete_keyword(params = {}, options = {}) + req = build_request(:delete_keyword, params) + req.send_request(options) + end + + # Deletes an existing opt-out list. All opted out phone numbers in the + # opt-out list are deleted. + # + # If the specified opt-out list name doesn't exist or is in-use by an + # origination phone number or pool, an Error is returned. + # + # @option params [required, String] :opt_out_list_name + # The OptOutListName or OptOutListArn of the OptOutList to delete. You + # can use DescribeOptOutLists to find the values for OptOutListName and + # OptOutListArn. + # + # @return [Types::DeleteOptOutListResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeleteOptOutListResult#opt_out_list_arn #opt_out_list_arn} => String + # * {Types::DeleteOptOutListResult#opt_out_list_name #opt_out_list_name} => String + # * {Types::DeleteOptOutListResult#created_timestamp #created_timestamp} => Time + # + # @example Request syntax with placeholder values + # + # resp = client.delete_opt_out_list({ + # opt_out_list_name: "OptOutListNameOrArn", # required + # }) + # + # @example Response structure + # + # resp.opt_out_list_arn #=> String + # resp.opt_out_list_name #=> String + # resp.created_timestamp #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteOptOutList AWS API Documentation + # + # @overload delete_opt_out_list(params = {}) + # @param [Hash] params ({}) + def delete_opt_out_list(params = {}, options = {}) + req = build_request(:delete_opt_out_list, params) + req.send_request(options) + end + + # Deletes an existing opted out destination phone number from the + # specified opt-out list. + # + # Each destination phone number can only be deleted once every 30 days. + # + # If the specified destination phone number doesn't exist or if the + # opt-out list doesn't exist, an Error is returned. + # + # @option params [required, String] :opt_out_list_name + # The OptOutListName or OptOutListArn to remove the phone number from. + # + # @option params [required, String] :opted_out_number + # The phone number, in E.164 format, to remove from the OptOutList. + # + # @return [Types::DeleteOptedOutNumberResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeleteOptedOutNumberResult#opt_out_list_arn #opt_out_list_arn} => String + # * {Types::DeleteOptedOutNumberResult#opt_out_list_name #opt_out_list_name} => String + # * {Types::DeleteOptedOutNumberResult#opted_out_number #opted_out_number} => String + # * {Types::DeleteOptedOutNumberResult#opted_out_timestamp #opted_out_timestamp} => Time + # * {Types::DeleteOptedOutNumberResult#end_user_opted_out #end_user_opted_out} => Boolean + # + # @example Request syntax with placeholder values + # + # resp = client.delete_opted_out_number({ + # opt_out_list_name: "OptOutListNameOrArn", # required + # opted_out_number: "PhoneNumber", # required + # }) + # + # @example Response structure + # + # resp.opt_out_list_arn #=> String + # resp.opt_out_list_name #=> String + # resp.opted_out_number #=> String + # resp.opted_out_timestamp #=> Time + # resp.end_user_opted_out #=> Boolean + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteOptedOutNumber AWS API Documentation + # + # @overload delete_opted_out_number(params = {}) + # @param [Hash] params ({}) + def delete_opted_out_number(params = {}, options = {}) + req = build_request(:delete_opted_out_number, params) + req.send_request(options) + end + + # Deletes an existing pool. Deleting a pool disassociates all + # origination identities from that pool. + # + # If the pool status isn't active or if deletion protection is enabled, + # an Error is returned. + # + # A pool is a collection of phone numbers and SenderIds. A pool can + # include one or more phone numbers and SenderIds that are associated + # with your Amazon Web Services account. + # + # @option params [required, String] :pool_id + # The PoolId or PoolArn of the pool to delete. You can use DescribePools + # to find the values for PoolId and PoolArn . + # + # @return [Types::DeletePoolResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeletePoolResult#pool_arn #pool_arn} => String + # * {Types::DeletePoolResult#pool_id #pool_id} => String + # * {Types::DeletePoolResult#status #status} => String + # * {Types::DeletePoolResult#message_type #message_type} => String + # * {Types::DeletePoolResult#two_way_enabled #two_way_enabled} => Boolean + # * {Types::DeletePoolResult#two_way_channel_arn #two_way_channel_arn} => String + # * {Types::DeletePoolResult#self_managed_opt_outs_enabled #self_managed_opt_outs_enabled} => Boolean + # * {Types::DeletePoolResult#opt_out_list_name #opt_out_list_name} => String + # * {Types::DeletePoolResult#shared_routes_enabled #shared_routes_enabled} => Boolean + # * {Types::DeletePoolResult#created_timestamp #created_timestamp} => Time + # + # @example Request syntax with placeholder values + # + # resp = client.delete_pool({ + # pool_id: "PoolIdOrArn", # required + # }) + # + # @example Response structure + # + # resp.pool_arn #=> String + # resp.pool_id #=> String + # resp.status #=> String, one of "CREATING", "ACTIVE", "DELETING" + # resp.message_type #=> String, one of "TRANSACTIONAL", "PROMOTIONAL" + # resp.two_way_enabled #=> Boolean + # resp.two_way_channel_arn #=> String + # resp.self_managed_opt_outs_enabled #=> Boolean + # resp.opt_out_list_name #=> String + # resp.shared_routes_enabled #=> Boolean + # resp.created_timestamp #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeletePool AWS API Documentation + # + # @overload delete_pool(params = {}) + # @param [Hash] params ({}) + def delete_pool(params = {}, options = {}) + req = build_request(:delete_pool, params) + req.send_request(options) + end + + # Deletes an account-level monthly spending limit override for sending + # text messages. Deleting a spend limit override will set the + # `EnforcedLimit` to equal the `MaxLimit`, which is controlled by Amazon + # Web Services. For more information on spend limits (quotas) see + # [Amazon Pinpoint quotas ][1] in the *Amazon Pinpoint Developer Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/developerguide/quotas.html + # + # @return [Types::DeleteTextMessageSpendLimitOverrideResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeleteTextMessageSpendLimitOverrideResult#monthly_limit #monthly_limit} => Integer + # + # @example Response structure + # + # resp.monthly_limit #=> Integer + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteTextMessageSpendLimitOverride AWS API Documentation + # + # @overload delete_text_message_spend_limit_override(params = {}) + # @param [Hash] params ({}) + def delete_text_message_spend_limit_override(params = {}, options = {}) + req = build_request(:delete_text_message_spend_limit_override, params) + req.send_request(options) + end + + # Deletes an account level monthly spend limit override for sending + # voice messages. Deleting a spend limit override sets the + # `EnforcedLimit` equal to the `MaxLimit`, which is controlled by Amazon + # Web Services. For more information on spending limits (quotas) see + # [Amazon Pinpoint quotas][1] in the *Amazon Pinpoint Developer Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/developerguide/quotas.html + # + # @return [Types::DeleteVoiceMessageSpendLimitOverrideResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeleteVoiceMessageSpendLimitOverrideResult#monthly_limit #monthly_limit} => Integer + # + # @example Response structure + # + # resp.monthly_limit #=> Integer + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteVoiceMessageSpendLimitOverride AWS API Documentation + # + # @overload delete_voice_message_spend_limit_override(params = {}) + # @param [Hash] params ({}) + def delete_voice_message_spend_limit_override(params = {}, options = {}) + req = build_request(:delete_voice_message_spend_limit_override, params) + req.send_request(options) + end + + # Describes attributes of your Amazon Web Services account. The + # supported account attributes include account tier, which indicates + # whether your account is in the sandbox or production environment. When + # you're ready to move your account out of the sandbox, create an + # Amazon Web Services Support case for a service limit increase request. + # + # New Amazon Pinpoint accounts are placed into an SMS or voice sandbox. + # The sandbox protects both Amazon Web Services end recipients and SMS + # or voice recipients from fraud and abuse. + # + # @option params [String] :next_token + # The token to be used for the next set of paginated results. You don't + # need to supply a value for this field in the initial request. + # + # @option params [Integer] :max_results + # The maximum number of results to return per each request. + # + # @return [Types::DescribeAccountAttributesResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribeAccountAttributesResult#account_attributes #account_attributes} => Array<Types::AccountAttribute> + # * {Types::DescribeAccountAttributesResult#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.describe_account_attributes({ + # next_token: "NextToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.account_attributes #=> Array + # resp.account_attributes[0].name #=> String, one of "ACCOUNT_TIER" + # resp.account_attributes[0].value #=> String + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeAccountAttributes AWS API Documentation + # + # @overload describe_account_attributes(params = {}) + # @param [Hash] params ({}) + def describe_account_attributes(params = {}, options = {}) + req = build_request(:describe_account_attributes, params) + req.send_request(options) + end + + # Describes the current Amazon Pinpoint SMS Voice V2 resource quotas for + # your account. The description for a quota includes the quota name, + # current usage toward that quota, and the quota's maximum value. + # + # When you establish an Amazon Web Services account, the account has + # initial quotas on the maximum number of configuration sets, opt-out + # lists, phone numbers, and pools that you can create in a given Region. + # For more information see [ Amazon Pinpoint quotas ][1] in the *Amazon + # Pinpoint Developer Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/developerguide/quotas.html + # + # @option params [String] :next_token + # The token to be used for the next set of paginated results. You don't + # need to supply a value for this field in the initial request. + # + # @option params [Integer] :max_results + # The maximum number of results to return per each request. + # + # @return [Types::DescribeAccountLimitsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribeAccountLimitsResult#account_limits #account_limits} => Array<Types::AccountLimit> + # * {Types::DescribeAccountLimitsResult#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.describe_account_limits({ + # next_token: "NextToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.account_limits #=> Array + # resp.account_limits[0].name #=> String, one of "PHONE_NUMBERS", "POOLS", "CONFIGURATION_SETS", "OPT_OUT_LISTS" + # resp.account_limits[0].used #=> Integer + # resp.account_limits[0].max #=> Integer + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeAccountLimits AWS API Documentation + # + # @overload describe_account_limits(params = {}) + # @param [Hash] params ({}) + def describe_account_limits(params = {}, options = {}) + req = build_request(:describe_account_limits, params) + req.send_request(options) + end + + # Describes the specified configuration sets or all in your account. + # + # If you specify configuration set names, the output includes + # information for only the specified configuration sets. If you specify + # filters, the output includes information for only those configuration + # sets that meet the filter criteria. If you don't specify + # configuration set names or filters, the output includes information + # for all configuration sets. + # + # If you specify a configuration set name that isn't valid, an error is + # returned. + # + # @option params [Array] :configuration_set_names + # An array of strings. Each element can be either a ConfigurationSetName + # or ConfigurationSetArn. + # + # @option params [Array] :filters + # An array of filters to apply to the results that are returned. + # + # @option params [String] :next_token + # The token to be used for the next set of paginated results. You don't + # need to supply a value for this field in the initial request. + # + # @option params [Integer] :max_results + # The maximum number of results to return per each request. + # + # @return [Types::DescribeConfigurationSetsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribeConfigurationSetsResult#configuration_sets #configuration_sets} => Array<Types::ConfigurationSetInformation> + # * {Types::DescribeConfigurationSetsResult#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.describe_configuration_sets({ + # configuration_set_names: ["ConfigurationSetNameOrArn"], + # filters: [ + # { + # name: "event-destination-name", # required, accepts event-destination-name, matching-event-types, default-message-type, default-sender-id + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.configuration_sets #=> Array + # resp.configuration_sets[0].configuration_set_arn #=> String + # resp.configuration_sets[0].configuration_set_name #=> String + # resp.configuration_sets[0].event_destinations #=> Array + # resp.configuration_sets[0].event_destinations[0].event_destination_name #=> String + # resp.configuration_sets[0].event_destinations[0].enabled #=> Boolean + # resp.configuration_sets[0].event_destinations[0].matching_event_types #=> Array + # resp.configuration_sets[0].event_destinations[0].matching_event_types[0] #=> String, one of "ALL", "TEXT_ALL", "TEXT_SENT", "TEXT_PENDING", "TEXT_QUEUED", "TEXT_SUCCESSFUL", "TEXT_DELIVERED", "TEXT_INVALID", "TEXT_INVALID_MESSAGE", "TEXT_UNREACHABLE", "TEXT_CARRIER_UNREACHABLE", "TEXT_BLOCKED", "TEXT_CARRIER_BLOCKED", "TEXT_SPAM", "TEXT_UNKNOWN", "TEXT_TTL_EXPIRED", "VOICE_ALL", "VOICE_INITIATED", "VOICE_RINGING", "VOICE_ANSWERED", "VOICE_COMPLETED", "VOICE_BUSY", "VOICE_NO_ANSWER", "VOICE_FAILED", "VOICE_TTL_EXPIRED" + # resp.configuration_sets[0].event_destinations[0].cloud_watch_logs_destination.iam_role_arn #=> String + # resp.configuration_sets[0].event_destinations[0].cloud_watch_logs_destination.log_group_arn #=> String + # resp.configuration_sets[0].event_destinations[0].kinesis_firehose_destination.iam_role_arn #=> String + # resp.configuration_sets[0].event_destinations[0].kinesis_firehose_destination.delivery_stream_arn #=> String + # resp.configuration_sets[0].event_destinations[0].sns_destination.topic_arn #=> String + # resp.configuration_sets[0].default_message_type #=> String, one of "TRANSACTIONAL", "PROMOTIONAL" + # resp.configuration_sets[0].default_sender_id #=> String + # resp.configuration_sets[0].created_timestamp #=> Time + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeConfigurationSets AWS API Documentation + # + # @overload describe_configuration_sets(params = {}) + # @param [Hash] params ({}) + def describe_configuration_sets(params = {}, options = {}) + req = build_request(:describe_configuration_sets, params) + req.send_request(options) + end + + # Describes the specified keywords or all keywords on your origination + # phone number or pool. + # + # A keyword is a word that you can search for on a particular phone + # number or pool. It is also a specific word or phrase that an end user + # can send to your number to elicit a response, such as an informational + # message or a special offer. When your number receives a message that + # begins with a keyword, Amazon Pinpoint responds with a customizable + # message. + # + # If you specify a keyword that isn't valid, an Error is returned. + # + # @option params [required, String] :origination_identity + # The origination identity to use such as a PhoneNumberId, + # PhoneNumberArn, SenderId or SenderIdArn. You can use + # DescribePhoneNumbers to find the values for PhoneNumberId and + # PhoneNumberArn while DescribeSenderIds can be used to get the values + # for SenderId and SenderIdArn. + # + # @option params [Array] :keywords + # An array of keywords to search for. + # + # @option params [Array] :filters + # An array of keyword filters to filter the results. + # + # @option params [String] :next_token + # The token to be used for the next set of paginated results. You don't + # need to supply a value for this field in the initial request. + # + # @option params [Integer] :max_results + # The maximum number of results to return per each request. + # + # @return [Types::DescribeKeywordsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribeKeywordsResult#origination_identity_arn #origination_identity_arn} => String + # * {Types::DescribeKeywordsResult#origination_identity #origination_identity} => String + # * {Types::DescribeKeywordsResult#keywords #keywords} => Array<Types::KeywordInformation> + # * {Types::DescribeKeywordsResult#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.describe_keywords({ + # origination_identity: "PhoneOrPoolIdOrArn", # required + # keywords: ["Keyword"], + # filters: [ + # { + # name: "keyword-action", # required, accepts keyword-action + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.origination_identity_arn #=> String + # resp.origination_identity #=> String + # resp.keywords #=> Array + # resp.keywords[0].keyword #=> String + # resp.keywords[0].keyword_message #=> String + # resp.keywords[0].keyword_action #=> String, one of "AUTOMATIC_RESPONSE", "OPT_OUT", "OPT_IN" + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeKeywords AWS API Documentation + # + # @overload describe_keywords(params = {}) + # @param [Hash] params ({}) + def describe_keywords(params = {}, options = {}) + req = build_request(:describe_keywords, params) + req.send_request(options) + end + + # Describes the specified opt-out list or all opt-out lists in your + # account. + # + # If you specify opt-out list names, the output includes information for + # only the specified opt-out lists. Opt-out lists include only those + # that meet the filter criteria. If you don't specify opt-out list + # names or filters, the output includes information for all opt-out + # lists. + # + # If you specify an opt-out list name that isn't valid, an Error is + # returned. + # + # @option params [Array] :opt_out_list_names + # The OptOutLists to show the details of. This is an array of strings + # that can be either the OptOutListName or OptOutListArn. + # + # @option params [String] :next_token + # The token to be used for the next set of paginated results. You don't + # need to supply a value for this field in the initial request. + # + # @option params [Integer] :max_results + # The maximum number of results to return per each request. + # + # @return [Types::DescribeOptOutListsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribeOptOutListsResult#opt_out_lists #opt_out_lists} => Array<Types::OptOutListInformation> + # * {Types::DescribeOptOutListsResult#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.describe_opt_out_lists({ + # opt_out_list_names: ["OptOutListNameOrArn"], + # next_token: "NextToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.opt_out_lists #=> Array + # resp.opt_out_lists[0].opt_out_list_arn #=> String + # resp.opt_out_lists[0].opt_out_list_name #=> String + # resp.opt_out_lists[0].created_timestamp #=> Time + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeOptOutLists AWS API Documentation + # + # @overload describe_opt_out_lists(params = {}) + # @param [Hash] params ({}) + def describe_opt_out_lists(params = {}, options = {}) + req = build_request(:describe_opt_out_lists, params) + req.send_request(options) + end + + # Describes the specified opted out destination numbers or all opted out + # destination numbers in an opt-out list. + # + # If you specify opted out numbers, the output includes information for + # only the specified opted out numbers. If you specify filters, the + # output includes information for only those opted out numbers that meet + # the filter criteria. If you don't specify opted out numbers or + # filters, the output includes information for all opted out destination + # numbers in your opt-out list. + # + # If you specify an opted out number that isn't valid, an Error is + # returned. + # + # @option params [required, String] :opt_out_list_name + # The OptOutListName or OptOutListArn of the OptOutList. You can use + # DescribeOptOutLists to find the values for OptOutListName and + # OptOutListArn. + # + # @option params [Array] :opted_out_numbers + # An array of phone numbers to search for in the OptOutList. + # + # @option params [Array] :filters + # An array of OptedOutFilter objects to filter the results on. + # + # @option params [String] :next_token + # The token to be used for the next set of paginated results. You don't + # need to supply a value for this field in the initial request. + # + # @option params [Integer] :max_results + # The maximum number of results to return per each request. + # + # @return [Types::DescribeOptedOutNumbersResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribeOptedOutNumbersResult#opt_out_list_arn #opt_out_list_arn} => String + # * {Types::DescribeOptedOutNumbersResult#opt_out_list_name #opt_out_list_name} => String + # * {Types::DescribeOptedOutNumbersResult#opted_out_numbers #opted_out_numbers} => Array<Types::OptedOutNumberInformation> + # * {Types::DescribeOptedOutNumbersResult#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.describe_opted_out_numbers({ + # opt_out_list_name: "OptOutListNameOrArn", # required + # opted_out_numbers: ["PhoneNumber"], + # filters: [ + # { + # name: "end-user-opted-out", # required, accepts end-user-opted-out + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.opt_out_list_arn #=> String + # resp.opt_out_list_name #=> String + # resp.opted_out_numbers #=> Array + # resp.opted_out_numbers[0].opted_out_number #=> String + # resp.opted_out_numbers[0].opted_out_timestamp #=> Time + # resp.opted_out_numbers[0].end_user_opted_out #=> Boolean + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeOptedOutNumbers AWS API Documentation + # + # @overload describe_opted_out_numbers(params = {}) + # @param [Hash] params ({}) + def describe_opted_out_numbers(params = {}, options = {}) + req = build_request(:describe_opted_out_numbers, params) + req.send_request(options) + end + + # Describes the specified origination phone number, or all the phone + # numbers in your account. + # + # If you specify phone number IDs, the output includes information for + # only the specified phone numbers. If you specify filters, the output + # includes information for only those phone numbers that meet the filter + # criteria. If you don't specify phone number IDs or filters, the + # output includes information for all phone numbers. + # + # If you specify a phone number ID that isn't valid, an Error is + # returned. + # + # @option params [Array] :phone_number_ids + # The unique identifier of phone numbers to find information about. This + # is an array of strings that can be either the PhoneNumberId or + # PhoneNumberArn. + # + # @option params [Array] :filters + # An array of PhoneNumberFilter objects to filter the results. + # + # @option params [String] :next_token + # The token to be used for the next set of paginated results. You don't + # need to supply a value for this field in the initial request. + # + # @option params [Integer] :max_results + # The maximum number of results to return per each request. + # + # @return [Types::DescribePhoneNumbersResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribePhoneNumbersResult#phone_numbers #phone_numbers} => Array<Types::PhoneNumberInformation> + # * {Types::DescribePhoneNumbersResult#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.describe_phone_numbers({ + # phone_number_ids: ["PhoneNumberIdOrArn"], + # filters: [ + # { + # name: "status", # required, accepts status, iso-country-code, message-type, number-capability, number-type, two-way-enabled, self-managed-opt-outs-enabled, opt-out-list-name, deletion-protection-enabled + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.phone_numbers #=> Array + # resp.phone_numbers[0].phone_number_arn #=> String + # resp.phone_numbers[0].phone_number_id #=> String + # resp.phone_numbers[0].phone_number #=> String + # resp.phone_numbers[0].status #=> String, one of "PENDING", "ACTIVE", "ASSOCIATING", "DISASSOCIATING", "DELETED" + # resp.phone_numbers[0].iso_country_code #=> String + # resp.phone_numbers[0].message_type #=> String, one of "TRANSACTIONAL", "PROMOTIONAL" + # resp.phone_numbers[0].number_capabilities #=> Array + # resp.phone_numbers[0].number_capabilities[0] #=> String, one of "SMS", "VOICE" + # resp.phone_numbers[0].number_type #=> String, one of "SHORT_CODE", "LONG_CODE", "TOLL_FREE", "TEN_DLC" + # resp.phone_numbers[0].monthly_leasing_price #=> String + # resp.phone_numbers[0].two_way_enabled #=> Boolean + # resp.phone_numbers[0].two_way_channel_arn #=> String + # resp.phone_numbers[0].self_managed_opt_outs_enabled #=> Boolean + # resp.phone_numbers[0].opt_out_list_name #=> String + # resp.phone_numbers[0].deletion_protection_enabled #=> Boolean + # resp.phone_numbers[0].pool_id #=> String + # resp.phone_numbers[0].created_timestamp #=> Time + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribePhoneNumbers AWS API Documentation + # + # @overload describe_phone_numbers(params = {}) + # @param [Hash] params ({}) + def describe_phone_numbers(params = {}, options = {}) + req = build_request(:describe_phone_numbers, params) + req.send_request(options) + end + + # Retrieves the specified pools or all pools associated with your Amazon + # Web Services account. + # + # If you specify pool IDs, the output includes information for only the + # specified pools. If you specify filters, the output includes + # information for only those pools that meet the filter criteria. If you + # don't specify pool IDs or filters, the output includes information + # for all pools. + # + # If you specify a pool ID that isn't valid, an Error is returned. + # + # A pool is a collection of phone numbers and SenderIds. A pool can + # include one or more phone numbers and SenderIds that are associated + # with your Amazon Web Services account. + # + # @option params [Array] :pool_ids + # The unique identifier of pools to find. This is an array of strings + # that can be either the PoolId or PoolArn. + # + # @option params [Array] :filters + # An array of PoolFilter objects to filter the results. + # + # @option params [String] :next_token + # The token to be used for the next set of paginated results. You don't + # need to supply a value for this field in the initial request. + # + # @option params [Integer] :max_results + # The maximum number of results to return per each request. + # + # @return [Types::DescribePoolsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribePoolsResult#pools #pools} => Array<Types::PoolInformation> + # * {Types::DescribePoolsResult#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.describe_pools({ + # pool_ids: ["PoolIdOrArn"], + # filters: [ + # { + # name: "status", # required, accepts status, message-type, two-way-enabled, self-managed-opt-outs-enabled, opt-out-list-name, shared-routes-enabled, deletion-protection-enabled + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.pools #=> Array + # resp.pools[0].pool_arn #=> String + # resp.pools[0].pool_id #=> String + # resp.pools[0].status #=> String, one of "CREATING", "ACTIVE", "DELETING" + # resp.pools[0].message_type #=> String, one of "TRANSACTIONAL", "PROMOTIONAL" + # resp.pools[0].two_way_enabled #=> Boolean + # resp.pools[0].two_way_channel_arn #=> String + # resp.pools[0].self_managed_opt_outs_enabled #=> Boolean + # resp.pools[0].opt_out_list_name #=> String + # resp.pools[0].shared_routes_enabled #=> Boolean + # resp.pools[0].deletion_protection_enabled #=> Boolean + # resp.pools[0].created_timestamp #=> Time + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribePools AWS API Documentation + # + # @overload describe_pools(params = {}) + # @param [Hash] params ({}) + def describe_pools(params = {}, options = {}) + req = build_request(:describe_pools, params) + req.send_request(options) + end + + # Describes the specified SenderIds or all SenderIds associated with + # your Amazon Web Services account. + # + # If you specify SenderIds, the output includes information for only the + # specified SenderIds. If you specify filters, the output includes + # information for only those SenderIds that meet the filter criteria. If + # you don't specify SenderIds or filters, the output includes + # information for all SenderIds. + # + # f you specify a sender ID that isn't valid, an Error is returned. + # + # @option params [Array] :sender_ids + # An array of SenderIdAndCountry objects to search for. + # + # @option params [Array] :filters + # An array of SenderIdFilter objects to filter the results. + # + # @option params [String] :next_token + # The token to be used for the next set of paginated results. You don't + # need to supply a value for this field in the initial request. + # + # @option params [Integer] :max_results + # The maximum number of results to return per each request. + # + # @return [Types::DescribeSenderIdsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribeSenderIdsResult#sender_ids #sender_ids} => Array<Types::SenderIdInformation> + # * {Types::DescribeSenderIdsResult#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.describe_sender_ids({ + # sender_ids: [ + # { + # sender_id: "SenderIdOrArn", # required + # iso_country_code: "IsoCountryCode", # required + # }, + # ], + # filters: [ + # { + # name: "sender-id", # required, accepts sender-id, iso-country-code, message-type + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.sender_ids #=> Array + # resp.sender_ids[0].sender_id_arn #=> String + # resp.sender_ids[0].sender_id #=> String + # resp.sender_ids[0].iso_country_code #=> String + # resp.sender_ids[0].message_types #=> Array + # resp.sender_ids[0].message_types[0] #=> String, one of "TRANSACTIONAL", "PROMOTIONAL" + # resp.sender_ids[0].monthly_leasing_price #=> String + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeSenderIds AWS API Documentation + # + # @overload describe_sender_ids(params = {}) + # @param [Hash] params ({}) + def describe_sender_ids(params = {}, options = {}) + req = build_request(:describe_sender_ids, params) + req.send_request(options) + end + + # Describes the current Amazon Pinpoint monthly spend limits for sending + # voice and text messages. + # + # When you establish an Amazon Web Services account, the account has + # initial monthly spend limit in a given Region. For more information on + # increasing your monthly spend limit, see [ Requesting increases to + # your monthly SMS spending quota for Amazon Pinpoint ][1] in the + # *Amazon Pinpoint User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-awssupport-spend-threshold.html + # + # @option params [String] :next_token + # The token to be used for the next set of paginated results. You don't + # need to supply a value for this field in the initial request. + # + # @option params [Integer] :max_results + # The maximum number of results to return per each request. + # + # @return [Types::DescribeSpendLimitsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribeSpendLimitsResult#spend_limits #spend_limits} => Array<Types::SpendLimit> + # * {Types::DescribeSpendLimitsResult#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.describe_spend_limits({ + # next_token: "NextToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.spend_limits #=> Array + # resp.spend_limits[0].name #=> String, one of "TEXT_MESSAGE_MONTHLY_SPEND_LIMIT", "VOICE_MESSAGE_MONTHLY_SPEND_LIMIT" + # resp.spend_limits[0].enforced_limit #=> Integer + # resp.spend_limits[0].max_limit #=> Integer + # resp.spend_limits[0].overridden #=> Boolean + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeSpendLimits AWS API Documentation + # + # @overload describe_spend_limits(params = {}) + # @param [Hash] params ({}) + def describe_spend_limits(params = {}, options = {}) + req = build_request(:describe_spend_limits, params) + req.send_request(options) + end + + # Removes the specified origination identity from an existing pool. + # + # If the origination identity isn't associated with the specified pool, + # an Error is returned. + # + # @option params [required, String] :pool_id + # The unique identifier for the pool to disassociate with the + # origination identity. This value can be either the PoolId or PoolArn. + # + # @option params [required, String] :origination_identity + # The origination identity to use such as a PhoneNumberId, + # PhoneNumberArn, SenderId or SenderIdArn. You can use + # DescribePhoneNumbers find the values for PhoneNumberId and + # PhoneNumberArn, or use DescribeSenderIds to get the values for + # SenderId and SenderIdArn. + # + # @option params [required, String] :iso_country_code + # The two-character code, in ISO 3166-1 alpha-2 format, for the country + # or region. + # + # @option params [String] :client_token + # Unique, case-sensitive identifier you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @return [Types::DisassociateOriginationIdentityResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DisassociateOriginationIdentityResult#pool_arn #pool_arn} => String + # * {Types::DisassociateOriginationIdentityResult#pool_id #pool_id} => String + # * {Types::DisassociateOriginationIdentityResult#origination_identity_arn #origination_identity_arn} => String + # * {Types::DisassociateOriginationIdentityResult#origination_identity #origination_identity} => String + # * {Types::DisassociateOriginationIdentityResult#iso_country_code #iso_country_code} => String + # + # @example Request syntax with placeholder values + # + # resp = client.disassociate_origination_identity({ + # pool_id: "PoolIdOrArn", # required + # origination_identity: "PhoneOrSenderIdOrArn", # required + # iso_country_code: "IsoCountryCode", # required + # client_token: "ClientToken", + # }) + # + # @example Response structure + # + # resp.pool_arn #=> String + # resp.pool_id #=> String + # resp.origination_identity_arn #=> String + # resp.origination_identity #=> String + # resp.iso_country_code #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DisassociateOriginationIdentity AWS API Documentation + # + # @overload disassociate_origination_identity(params = {}) + # @param [Hash] params ({}) + def disassociate_origination_identity(params = {}, options = {}) + req = build_request(:disassociate_origination_identity, params) + req.send_request(options) + end + + # Lists all associated origination identities in your pool. + # + # If you specify filters, the output includes information for only those + # origination identities that meet the filter criteria. + # + # @option params [required, String] :pool_id + # The unique identifier for the pool. This value can be either the + # PoolId or PoolArn. + # + # @option params [Array] :filters + # An array of PoolOriginationIdentitiesFilter objects to filter the + # results.. + # + # @option params [String] :next_token + # The token to be used for the next set of paginated results. You don't + # need to supply a value for this field in the initial request. + # + # @option params [Integer] :max_results + # The maximum number of results to return per each request. + # + # @return [Types::ListPoolOriginationIdentitiesResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListPoolOriginationIdentitiesResult#pool_arn #pool_arn} => String + # * {Types::ListPoolOriginationIdentitiesResult#pool_id #pool_id} => String + # * {Types::ListPoolOriginationIdentitiesResult#origination_identities #origination_identities} => Array<Types::OriginationIdentityMetadata> + # * {Types::ListPoolOriginationIdentitiesResult#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_pool_origination_identities({ + # pool_id: "PoolIdOrArn", # required + # filters: [ + # { + # name: "iso-country-code", # required, accepts iso-country-code, number-capability + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.pool_arn #=> String + # resp.pool_id #=> String + # resp.origination_identities #=> Array + # resp.origination_identities[0].origination_identity_arn #=> String + # resp.origination_identities[0].origination_identity #=> String + # resp.origination_identities[0].iso_country_code #=> String + # resp.origination_identities[0].number_capabilities #=> Array + # resp.origination_identities[0].number_capabilities[0] #=> String, one of "SMS", "VOICE" + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ListPoolOriginationIdentities AWS API Documentation + # + # @overload list_pool_origination_identities(params = {}) + # @param [Hash] params ({}) + def list_pool_origination_identities(params = {}, options = {}) + req = build_request(:list_pool_origination_identities, params) + req.send_request(options) + end + + # List all tags associated with a resource. + # + # @option params [required, String] :resource_arn + # The Amazon Resource Name (ARN) of the resource to query for. + # + # @return [Types::ListTagsForResourceResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListTagsForResourceResult#resource_arn #resource_arn} => String + # * {Types::ListTagsForResourceResult#tags #tags} => Array<Types::Tag> + # + # @example Request syntax with placeholder values + # + # resp = client.list_tags_for_resource({ + # resource_arn: "AmazonResourceName", # required + # }) + # + # @example Response structure + # + # resp.resource_arn #=> String + # resp.tags #=> Array + # resp.tags[0].key #=> String + # resp.tags[0].value #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ListTagsForResource AWS API Documentation + # + # @overload list_tags_for_resource(params = {}) + # @param [Hash] params ({}) + def list_tags_for_resource(params = {}, options = {}) + req = build_request(:list_tags_for_resource, params) + req.send_request(options) + end + + # Creates or updates a keyword configuration on an origination phone + # number or pool. + # + # A keyword is a word that you can search for on a particular phone + # number or pool. It is also a specific word or phrase that an end user + # can send to your number to elicit a response, such as an informational + # message or a special offer. When your number receives a message that + # begins with a keyword, Amazon Pinpoint responds with a customizable + # message. + # + # If you specify a keyword that isn't valid, an Error is returned. + # + # @option params [required, String] :origination_identity + # The origination identity to use such as a PhoneNumberId, + # PhoneNumberArn, SenderId or SenderIdArn. You can use + # DescribePhoneNumbers get the values for PhoneNumberId and + # PhoneNumberArn while DescribeSenderIds can be used to get the values + # for SenderId and SenderIdArn. + # + # @option params [required, String] :keyword + # The new keyword to add. + # + # @option params [required, String] :keyword_message + # The message associated with the keyword. + # + # * AUTOMATIC\_RESPONSE: A message is sent to the recipient. + # + # * OPT\_OUT: Keeps the recipient from receiving future messages. + # + # * OPT\_IN: The recipient wants to receive future messages. + # + # @option params [String] :keyword_action + # The action to perform for the new keyword when it is received. + # + # @return [Types::PutKeywordResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::PutKeywordResult#origination_identity_arn #origination_identity_arn} => String + # * {Types::PutKeywordResult#origination_identity #origination_identity} => String + # * {Types::PutKeywordResult#keyword #keyword} => String + # * {Types::PutKeywordResult#keyword_message #keyword_message} => String + # * {Types::PutKeywordResult#keyword_action #keyword_action} => String + # + # @example Request syntax with placeholder values + # + # resp = client.put_keyword({ + # origination_identity: "PhoneOrPoolIdOrArn", # required + # keyword: "Keyword", # required + # keyword_message: "KeywordMessage", # required + # keyword_action: "AUTOMATIC_RESPONSE", # accepts AUTOMATIC_RESPONSE, OPT_OUT, OPT_IN + # }) + # + # @example Response structure + # + # resp.origination_identity_arn #=> String + # resp.origination_identity #=> String + # resp.keyword #=> String + # resp.keyword_message #=> String + # resp.keyword_action #=> String, one of "AUTOMATIC_RESPONSE", "OPT_OUT", "OPT_IN" + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/PutKeyword AWS API Documentation + # + # @overload put_keyword(params = {}) + # @param [Hash] params ({}) + def put_keyword(params = {}, options = {}) + req = build_request(:put_keyword, params) + req.send_request(options) + end + + # Creates an opted out destination phone number in the opt-out list. + # + # If the destination phone number isn't valid or if the specified + # opt-out list doesn't exist, an Error is returned. + # + # @option params [required, String] :opt_out_list_name + # The OptOutListName or OptOutListArn to add the phone number to. + # + # @option params [required, String] :opted_out_number + # The phone number to add to the OptOutList in E.164 format. + # + # @return [Types::PutOptedOutNumberResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::PutOptedOutNumberResult#opt_out_list_arn #opt_out_list_arn} => String + # * {Types::PutOptedOutNumberResult#opt_out_list_name #opt_out_list_name} => String + # * {Types::PutOptedOutNumberResult#opted_out_number #opted_out_number} => String + # * {Types::PutOptedOutNumberResult#opted_out_timestamp #opted_out_timestamp} => Time + # * {Types::PutOptedOutNumberResult#end_user_opted_out #end_user_opted_out} => Boolean + # + # @example Request syntax with placeholder values + # + # resp = client.put_opted_out_number({ + # opt_out_list_name: "OptOutListNameOrArn", # required + # opted_out_number: "PhoneNumber", # required + # }) + # + # @example Response structure + # + # resp.opt_out_list_arn #=> String + # resp.opt_out_list_name #=> String + # resp.opted_out_number #=> String + # resp.opted_out_timestamp #=> Time + # resp.end_user_opted_out #=> Boolean + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/PutOptedOutNumber AWS API Documentation + # + # @overload put_opted_out_number(params = {}) + # @param [Hash] params ({}) + def put_opted_out_number(params = {}, options = {}) + req = build_request(:put_opted_out_number, params) + req.send_request(options) + end + + # Releases an existing origination phone number in your account. Once + # released, a phone number is no longer available for sending messages. + # + # If the origination phone number has deletion protection enabled or is + # associated with a pool, an Error is returned. + # + # @option params [required, String] :phone_number_id + # The PhoneNumberId or PhoneNumberArn of the phone number to release. + # You can use DescribePhoneNumbers to get the values for PhoneNumberId + # and PhoneNumberArn. + # + # @return [Types::ReleasePhoneNumberResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ReleasePhoneNumberResult#phone_number_arn #phone_number_arn} => String + # * {Types::ReleasePhoneNumberResult#phone_number_id #phone_number_id} => String + # * {Types::ReleasePhoneNumberResult#phone_number #phone_number} => String + # * {Types::ReleasePhoneNumberResult#status #status} => String + # * {Types::ReleasePhoneNumberResult#iso_country_code #iso_country_code} => String + # * {Types::ReleasePhoneNumberResult#message_type #message_type} => String + # * {Types::ReleasePhoneNumberResult#number_capabilities #number_capabilities} => Array<String> + # * {Types::ReleasePhoneNumberResult#number_type #number_type} => String + # * {Types::ReleasePhoneNumberResult#monthly_leasing_price #monthly_leasing_price} => String + # * {Types::ReleasePhoneNumberResult#two_way_enabled #two_way_enabled} => Boolean + # * {Types::ReleasePhoneNumberResult#two_way_channel_arn #two_way_channel_arn} => String + # * {Types::ReleasePhoneNumberResult#self_managed_opt_outs_enabled #self_managed_opt_outs_enabled} => Boolean + # * {Types::ReleasePhoneNumberResult#opt_out_list_name #opt_out_list_name} => String + # * {Types::ReleasePhoneNumberResult#created_timestamp #created_timestamp} => Time + # + # @example Request syntax with placeholder values + # + # resp = client.release_phone_number({ + # phone_number_id: "PhoneNumberIdOrArn", # required + # }) + # + # @example Response structure + # + # resp.phone_number_arn #=> String + # resp.phone_number_id #=> String + # resp.phone_number #=> String + # resp.status #=> String, one of "PENDING", "ACTIVE", "ASSOCIATING", "DISASSOCIATING", "DELETED" + # resp.iso_country_code #=> String + # resp.message_type #=> String, one of "TRANSACTIONAL", "PROMOTIONAL" + # resp.number_capabilities #=> Array + # resp.number_capabilities[0] #=> String, one of "SMS", "VOICE" + # resp.number_type #=> String, one of "SHORT_CODE", "LONG_CODE", "TOLL_FREE", "TEN_DLC" + # resp.monthly_leasing_price #=> String + # resp.two_way_enabled #=> Boolean + # resp.two_way_channel_arn #=> String + # resp.self_managed_opt_outs_enabled #=> Boolean + # resp.opt_out_list_name #=> String + # resp.created_timestamp #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ReleasePhoneNumber AWS API Documentation + # + # @overload release_phone_number(params = {}) + # @param [Hash] params ({}) + def release_phone_number(params = {}, options = {}) + req = build_request(:release_phone_number, params) + req.send_request(options) + end + + # Request an origination phone number for use in your account. For more + # information on phone number request see [ Requesting a number ][1] in + # the *Amazon Pinpoint User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-sms-request-number.html + # + # @option params [required, String] :iso_country_code + # The two-character code, in ISO 3166-1 alpha-2 format, for the country + # or region. + # + # @option params [required, String] :message_type + # The type of message. Valid values are TRANSACTIONAL for messages that + # are critical or time-sensitive and PROMOTIONAL for messages that + # aren't critical or time-sensitive. + # + # @option params [required, Array] :number_capabilities + # Indicates if the phone number will be used for text messages, voice + # messages, or both. + # + # @option params [required, String] :number_type + # The type of phone number to request. + # + # @option params [String] :opt_out_list_name + # The name of the OptOutList to associate with the phone number. You can + # use the OutOutListName or OptPutListArn. + # + # @option params [String] :pool_id + # The pool to associated with the phone number. You can use the PoolId + # or PoolArn. + # + # @option params [String] :registration_id + # Use this field to attach your phone number for an external + # registration process. + # + # @option params [Boolean] :deletion_protection_enabled + # By default this is set to false. When set to true the phone number + # can't be deleted. + # + # @option params [Array] :tags + # An array of tags (key and value pairs) associate with the requested + # phone number. + # + # @option params [String] :client_token + # Unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option.** + # + # @return [Types::RequestPhoneNumberResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::RequestPhoneNumberResult#phone_number_arn #phone_number_arn} => String + # * {Types::RequestPhoneNumberResult#phone_number_id #phone_number_id} => String + # * {Types::RequestPhoneNumberResult#phone_number #phone_number} => String + # * {Types::RequestPhoneNumberResult#status #status} => String + # * {Types::RequestPhoneNumberResult#iso_country_code #iso_country_code} => String + # * {Types::RequestPhoneNumberResult#message_type #message_type} => String + # * {Types::RequestPhoneNumberResult#number_capabilities #number_capabilities} => Array<String> + # * {Types::RequestPhoneNumberResult#number_type #number_type} => String + # * {Types::RequestPhoneNumberResult#monthly_leasing_price #monthly_leasing_price} => String + # * {Types::RequestPhoneNumberResult#two_way_enabled #two_way_enabled} => Boolean + # * {Types::RequestPhoneNumberResult#two_way_channel_arn #two_way_channel_arn} => String + # * {Types::RequestPhoneNumberResult#self_managed_opt_outs_enabled #self_managed_opt_outs_enabled} => Boolean + # * {Types::RequestPhoneNumberResult#opt_out_list_name #opt_out_list_name} => String + # * {Types::RequestPhoneNumberResult#deletion_protection_enabled #deletion_protection_enabled} => Boolean + # * {Types::RequestPhoneNumberResult#pool_id #pool_id} => String + # * {Types::RequestPhoneNumberResult#tags #tags} => Array<Types::Tag> + # * {Types::RequestPhoneNumberResult#created_timestamp #created_timestamp} => Time + # + # @example Request syntax with placeholder values + # + # resp = client.request_phone_number({ + # iso_country_code: "IsoCountryCode", # required + # message_type: "TRANSACTIONAL", # required, accepts TRANSACTIONAL, PROMOTIONAL + # number_capabilities: ["SMS"], # required, accepts SMS, VOICE + # number_type: "LONG_CODE", # required, accepts LONG_CODE, TOLL_FREE, TEN_DLC + # opt_out_list_name: "OptOutListNameOrArn", + # pool_id: "PoolIdOrArn", + # registration_id: "RegistrationId", + # deletion_protection_enabled: false, + # tags: [ + # { + # key: "TagKey", # required + # value: "TagValue", # required + # }, + # ], + # client_token: "ClientToken", + # }) + # + # @example Response structure + # + # resp.phone_number_arn #=> String + # resp.phone_number_id #=> String + # resp.phone_number #=> String + # resp.status #=> String, one of "PENDING", "ACTIVE", "ASSOCIATING", "DISASSOCIATING", "DELETED" + # resp.iso_country_code #=> String + # resp.message_type #=> String, one of "TRANSACTIONAL", "PROMOTIONAL" + # resp.number_capabilities #=> Array + # resp.number_capabilities[0] #=> String, one of "SMS", "VOICE" + # resp.number_type #=> String, one of "LONG_CODE", "TOLL_FREE", "TEN_DLC" + # resp.monthly_leasing_price #=> String + # resp.two_way_enabled #=> Boolean + # resp.two_way_channel_arn #=> String + # resp.self_managed_opt_outs_enabled #=> Boolean + # resp.opt_out_list_name #=> String + # resp.deletion_protection_enabled #=> Boolean + # resp.pool_id #=> String + # resp.tags #=> Array + # resp.tags[0].key #=> String + # resp.tags[0].value #=> String + # resp.created_timestamp #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/RequestPhoneNumber AWS API Documentation + # + # @overload request_phone_number(params = {}) + # @param [Hash] params ({}) + def request_phone_number(params = {}, options = {}) + req = build_request(:request_phone_number, params) + req.send_request(options) + end + + # Creates a new text message and sends it to a recipient's phone + # number. + # + # SMS throughput limits are measured in Message Parts per Second (MPS). + # Your MPS limit depends on the destination country of your messages, as + # well as the type of phone number (origination number) that you use to + # send the message. For more information, see [Message Parts per Second + # (MPS) limits][1] in the *Amazon Pinpoint User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-limitations-mps.html + # + # @option params [required, String] :destination_phone_number + # The destination phone number in E.164 format. + # + # @option params [String] :origination_identity + # The origination identity of the message. This can be either the + # PhoneNumber, PhoneNumberId, PhoneNumberArn, SenderId, SenderIdArn, + # PoolId, or PoolArn. + # + # @option params [String] :message_body + # The body of the text message. + # + # @option params [String] :message_type + # The type of message. Valid values are TRANSACTIONAL for messages that + # are critical or time-sensitive and PROMOTIONAL for messages that + # aren't critical or time-sensitive. + # + # @option params [String] :keyword + # When you register a short code in the US, you must specify a program + # name. If you don’t have a US short code, omit this attribute. + # + # @option params [String] :configuration_set_name + # The name of the configuration set to use. This can be either the + # ConfigurationSetName or ConfigurationSetArn. + # + # @option params [String] :max_price + # The maximum amount that you want to spend, in US dollars, per each + # text message part. A text message can contain multiple parts. + # + # @option params [Integer] :time_to_live + # How long the text message is valid for. By default this is 72 hours. + # + # @option params [Hash] :context + # You can specify custom data in this field. If you do, that data is + # logged to the event destination. + # + # @option params [Hash] :destination_country_parameters + # This field is used for any country-specific registration requirements. + # Currently, this setting is only used when you send messages to + # recipients in India using a sender ID. For more information see + # [Special requirements for sending SMS messages to recipients in + # India][1]. + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-senderid-india.html + # + # @option params [Boolean] :dry_run + # When set to true, the message is checked and validated, but isn't + # sent to the end recipient. + # + # @return [Types::SendTextMessageResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::SendTextMessageResult#message_id #message_id} => String + # + # @example Request syntax with placeholder values + # + # resp = client.send_text_message({ + # destination_phone_number: "PhoneNumber", # required + # origination_identity: "TextMessageOriginationIdentity", + # message_body: "TextMessageBody", + # message_type: "TRANSACTIONAL", # accepts TRANSACTIONAL, PROMOTIONAL + # keyword: "Keyword", + # configuration_set_name: "ConfigurationSetNameOrArn", + # max_price: "MaxPrice", + # time_to_live: 1, + # context: { + # "ContextKey" => "ContextValue", + # }, + # destination_country_parameters: { + # "IN_TEMPLATE_ID" => "DestinationCountryParameterValue", + # }, + # dry_run: false, + # }) + # + # @example Response structure + # + # resp.message_id #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SendTextMessage AWS API Documentation + # + # @overload send_text_message(params = {}) + # @param [Hash] params ({}) + def send_text_message(params = {}, options = {}) + req = build_request(:send_text_message, params) + req.send_request(options) + end + + # Allows you to send a request that sends a text message through Amazon + # Pinpoint. This operation uses [Amazon Polly][1] to convert a text + # script into a voice message. + # + # + # + # [1]: http://aws.amazon.com/polly/ + # + # @option params [required, String] :destination_phone_number + # The destination phone number in E.164 format. + # + # @option params [required, String] :origination_identity + # The origination identity to use for the voice call. This can be the + # PhoneNumber, PhoneNumberId, PhoneNumberArn, PoolId, or PoolArn. + # + # @option params [String] :message_body + # The text to convert to a voice message. + # + # @option params [String] :message_body_text_type + # Specifies if the MessageBody field contains text or [speech synthesis + # markup language (SSML)][1]. + # + # * TEXT: This is the default value. When used the maximum character + # limit is 3000. + # + # * SSML: When used the maximum character limit is 6000 including SSML + # tagging. + # + # + # + # [1]: https://docs.aws.amazon.com/polly/latest/dg/what-is.html + # + # @option params [String] :voice_id + # The voice for the [Amazon Polly][1] service to use. By default this is + # set to "MATTHEW". + # + # + # + # [1]: https://docs.aws.amazon.com/polly/latest/dg/what-is.html + # + # @option params [String] :configuration_set_name + # The name of the configuration set to use. This can be either the + # ConfigurationSetName or ConfigurationSetArn. + # + # @option params [String] :max_price_per_minute + # The maximum amount to spend per voice message, in US dollars. + # + # @option params [Integer] :time_to_live + # How long the voice message is valid for. By default this is 72 hours. + # + # @option params [Hash] :context + # You can specify custom data in this field. If you do, that data is + # logged to the event destination. + # + # @option params [Boolean] :dry_run + # When set to true, the message is checked and validated, but isn't + # sent to the end recipient. + # + # @return [Types::SendVoiceMessageResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::SendVoiceMessageResult#message_id #message_id} => String + # + # @example Request syntax with placeholder values + # + # resp = client.send_voice_message({ + # destination_phone_number: "PhoneNumber", # required + # origination_identity: "VoiceMessageOriginationIdentity", # required + # message_body: "VoiceMessageBody", + # message_body_text_type: "TEXT", # accepts TEXT, SSML + # voice_id: "AMY", # accepts AMY, ASTRID, BIANCA, BRIAN, CAMILA, CARLA, CARMEN, CELINE, CHANTAL, CONCHITA, CRISTIANO, DORA, EMMA, ENRIQUE, EWA, FILIZ, GERAINT, GIORGIO, GWYNETH, HANS, INES, IVY, JACEK, JAN, JOANNA, JOEY, JUSTIN, KARL, KENDRA, KIMBERLY, LEA, LIV, LOTTE, LUCIA, LUPE, MADS, MAJA, MARLENE, MATHIEU, MATTHEW, MAXIM, MIA, MIGUEL, MIZUKI, NAJA, NICOLE, PENELOPE, RAVEENA, RICARDO, RUBEN, RUSSELL, SALLI, SEOYEON, TAKUMI, TATYANA, VICKI, VITORIA, ZEINA, ZHIYU + # configuration_set_name: "ConfigurationSetNameOrArn", + # max_price_per_minute: "MaxPrice", + # time_to_live: 1, + # context: { + # "ContextKey" => "ContextValue", + # }, + # dry_run: false, + # }) + # + # @example Response structure + # + # resp.message_id #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SendVoiceMessage AWS API Documentation + # + # @overload send_voice_message(params = {}) + # @param [Hash] params ({}) + def send_voice_message(params = {}, options = {}) + req = build_request(:send_voice_message, params) + req.send_request(options) + end + + # Sets the default message type on a configuration set. + # + # Choose the category of SMS messages that you plan to send from this + # account. If you send account-related messages or time-sensitive + # messages such as one-time passcodes, choose **Transactional**. If you + # plan to send messages that contain marketing material or other + # promotional content, choose **Promotional**. This setting applies to + # your entire Amazon Web Services account. + # + # @option params [required, String] :configuration_set_name + # The configuration set to update with a new default message type. This + # field can be the ConsigurationSetName or ConfigurationSetArn. + # + # @option params [required, String] :message_type + # The type of message. Valid values are TRANSACTIONAL for messages that + # are critical or time-sensitive and PROMOTIONAL for messages that + # aren't critical or time-sensitive. + # + # @return [Types::SetDefaultMessageTypeResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::SetDefaultMessageTypeResult#configuration_set_arn #configuration_set_arn} => String + # * {Types::SetDefaultMessageTypeResult#configuration_set_name #configuration_set_name} => String + # * {Types::SetDefaultMessageTypeResult#message_type #message_type} => String + # + # @example Request syntax with placeholder values + # + # resp = client.set_default_message_type({ + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # message_type: "TRANSACTIONAL", # required, accepts TRANSACTIONAL, PROMOTIONAL + # }) + # + # @example Response structure + # + # resp.configuration_set_arn #=> String + # resp.configuration_set_name #=> String + # resp.message_type #=> String, one of "TRANSACTIONAL", "PROMOTIONAL" + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SetDefaultMessageType AWS API Documentation + # + # @overload set_default_message_type(params = {}) + # @param [Hash] params ({}) + def set_default_message_type(params = {}, options = {}) + req = build_request(:set_default_message_type, params) + req.send_request(options) + end + + # Sets default sender ID on a configuration set. + # + # When sending a text message to a destination country that supports + # sender IDs, the default sender ID on the configuration set specified + # will be used if no dedicated origination phone numbers or registered + # sender IDs are available in your account. + # + # @option params [required, String] :configuration_set_name + # The configuration set to updated with a new default SenderId. This + # field can be the ConsigurationSetName or ConfigurationSetArn. + # + # @option params [required, String] :sender_id + # The current sender ID for the configuration set. When sending a text + # message to a destination country which supports SenderIds, the default + # sender ID on the configuration set specified on SendTextMessage will + # be used if no dedicated origination phone numbers or registered + # SenderIds are available in your account, instead of a generic sender + # ID, such as 'NOTICE'. + # + # @return [Types::SetDefaultSenderIdResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::SetDefaultSenderIdResult#configuration_set_arn #configuration_set_arn} => String + # * {Types::SetDefaultSenderIdResult#configuration_set_name #configuration_set_name} => String + # * {Types::SetDefaultSenderIdResult#sender_id #sender_id} => String + # + # @example Request syntax with placeholder values + # + # resp = client.set_default_sender_id({ + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # sender_id: "SenderId", # required + # }) + # + # @example Response structure + # + # resp.configuration_set_arn #=> String + # resp.configuration_set_name #=> String + # resp.sender_id #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SetDefaultSenderId AWS API Documentation + # + # @overload set_default_sender_id(params = {}) + # @param [Hash] params ({}) + def set_default_sender_id(params = {}, options = {}) + req = build_request(:set_default_sender_id, params) + req.send_request(options) + end + + # Sets an account level monthly spend limit override for sending text + # messages. The requested spend limit must be less than or equal to the + # `MaxLimit`, which is set by Amazon Web Services. + # + # @option params [required, Integer] :monthly_limit + # The new monthly limit to enforce on text messages. + # + # @return [Types::SetTextMessageSpendLimitOverrideResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::SetTextMessageSpendLimitOverrideResult#monthly_limit #monthly_limit} => Integer + # + # @example Request syntax with placeholder values + # + # resp = client.set_text_message_spend_limit_override({ + # monthly_limit: 1, # required + # }) + # + # @example Response structure + # + # resp.monthly_limit #=> Integer + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SetTextMessageSpendLimitOverride AWS API Documentation + # + # @overload set_text_message_spend_limit_override(params = {}) + # @param [Hash] params ({}) + def set_text_message_spend_limit_override(params = {}, options = {}) + req = build_request(:set_text_message_spend_limit_override, params) + req.send_request(options) + end + + # Sets an account level monthly spend limit override for sending voice + # messages. The requested spend limit must be less than or equal to the + # `MaxLimit`, which is set by Amazon Web Services. + # + # @option params [required, Integer] :monthly_limit + # The new monthly limit to enforce on voice messages. + # + # @return [Types::SetVoiceMessageSpendLimitOverrideResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::SetVoiceMessageSpendLimitOverrideResult#monthly_limit #monthly_limit} => Integer + # + # @example Request syntax with placeholder values + # + # resp = client.set_voice_message_spend_limit_override({ + # monthly_limit: 1, # required + # }) + # + # @example Response structure + # + # resp.monthly_limit #=> Integer + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SetVoiceMessageSpendLimitOverride AWS API Documentation + # + # @overload set_voice_message_spend_limit_override(params = {}) + # @param [Hash] params ({}) + def set_voice_message_spend_limit_override(params = {}, options = {}) + req = build_request(:set_voice_message_spend_limit_override, params) + req.send_request(options) + end + + # Adds or overwrites only the specified tags for the specified Amazon + # Pinpoint SMS Voice, version 2 resource. When you specify an existing + # tag key, the value is overwritten with the new value. Each resource + # can have a maximum of 50 tags. Each tag consists of a key and an + # optional value. Tag keys must be unique per resource. For more + # information about tags, see [ Tagging Amazon Pinpoint resources][1] in + # the *Amazon Pinpoint Developer Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/developerguide/tagging-resources.html + # + # @option params [required, String] :resource_arn + # The Amazon Resource Name (ARN) of the resource. + # + # @option params [required, Array] :tags + # An array of key and value pair tags that are associated with the + # resource. + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.tag_resource({ + # resource_arn: "AmazonResourceName", # required + # tags: [ # required + # { + # key: "TagKey", # required + # value: "TagValue", # required + # }, + # ], + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/TagResource AWS API Documentation + # + # @overload tag_resource(params = {}) + # @param [Hash] params ({}) + def tag_resource(params = {}, options = {}) + req = build_request(:tag_resource, params) + req.send_request(options) + end + + # Removes the association of the specified tags from an Amazon Pinpoint + # SMS Voice V2 resource. For more information on tags see [ Tagging + # Amazon Pinpoint resources][1] in the *Amazon Pinpoint Developer + # Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/developerguide/tagging-resources.html + # + # @option params [required, String] :resource_arn + # The Amazon Resource Name (ARN) of the resource. + # + # @option params [required, Array] :tag_keys + # An array of tag key values to unassociate with the resource. + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.untag_resource({ + # resource_arn: "AmazonResourceName", # required + # tag_keys: ["TagKey"], # required + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/UntagResource AWS API Documentation + # + # @overload untag_resource(params = {}) + # @param [Hash] params ({}) + def untag_resource(params = {}, options = {}) + req = build_request(:untag_resource, params) + req.send_request(options) + end + + # Updates an existing event destination in a configuration set. You can + # update the IAM role ARN for CloudWatch Logs and Kinesis Data Firehose. + # You can also enable or disable the event destination. + # + # You may want to update an event destination to change its matching + # event types or updating the destination resource ARN. You can't + # change an event destination's type between CloudWatch Logs, Kinesis + # Data Firehose, and Amazon SNS. + # + # @option params [required, String] :configuration_set_name + # The configuration set to update with the new event destination. Valid + # values for this can be the ConfigurationSetName or + # ConfigurationSetArn. + # + # @option params [required, String] :event_destination_name + # The name to use for the event destination. + # + # @option params [Boolean] :enabled + # When set to true logging is enabled. + # + # @option params [Array] :matching_event_types + # An array of event types that determine which events to log. + # + # @option params [Types::CloudWatchLogsDestination] :cloud_watch_logs_destination + # An object that contains information about an event destination that + # sends data to CloudWatch Logs. + # + # @option params [Types::KinesisFirehoseDestination] :kinesis_firehose_destination + # An object that contains information about an event destination for + # logging to Kinesis Data Firehose. + # + # @option params [Types::SnsDestination] :sns_destination + # An object that contains information about an event destination that + # sends data to Amazon SNS. + # + # @return [Types::UpdateEventDestinationResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::UpdateEventDestinationResult#configuration_set_arn #configuration_set_arn} => String + # * {Types::UpdateEventDestinationResult#configuration_set_name #configuration_set_name} => String + # * {Types::UpdateEventDestinationResult#event_destination #event_destination} => Types::EventDestination + # + # @example Request syntax with placeholder values + # + # resp = client.update_event_destination({ + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # event_destination_name: "EventDestinationName", # required + # enabled: false, + # matching_event_types: ["ALL"], # accepts ALL, TEXT_ALL, TEXT_SENT, TEXT_PENDING, TEXT_QUEUED, TEXT_SUCCESSFUL, TEXT_DELIVERED, TEXT_INVALID, TEXT_INVALID_MESSAGE, TEXT_UNREACHABLE, TEXT_CARRIER_UNREACHABLE, TEXT_BLOCKED, TEXT_CARRIER_BLOCKED, TEXT_SPAM, TEXT_UNKNOWN, TEXT_TTL_EXPIRED, VOICE_ALL, VOICE_INITIATED, VOICE_RINGING, VOICE_ANSWERED, VOICE_COMPLETED, VOICE_BUSY, VOICE_NO_ANSWER, VOICE_FAILED, VOICE_TTL_EXPIRED + # cloud_watch_logs_destination: { + # iam_role_arn: "IamRoleArn", # required + # log_group_arn: "LogGroupArn", # required + # }, + # kinesis_firehose_destination: { + # iam_role_arn: "IamRoleArn", # required + # delivery_stream_arn: "DeliveryStreamArn", # required + # }, + # sns_destination: { + # topic_arn: "SnsTopicArn", # required + # }, + # }) + # + # @example Response structure + # + # resp.configuration_set_arn #=> String + # resp.configuration_set_name #=> String + # resp.event_destination.event_destination_name #=> String + # resp.event_destination.enabled #=> Boolean + # resp.event_destination.matching_event_types #=> Array + # resp.event_destination.matching_event_types[0] #=> String, one of "ALL", "TEXT_ALL", "TEXT_SENT", "TEXT_PENDING", "TEXT_QUEUED", "TEXT_SUCCESSFUL", "TEXT_DELIVERED", "TEXT_INVALID", "TEXT_INVALID_MESSAGE", "TEXT_UNREACHABLE", "TEXT_CARRIER_UNREACHABLE", "TEXT_BLOCKED", "TEXT_CARRIER_BLOCKED", "TEXT_SPAM", "TEXT_UNKNOWN", "TEXT_TTL_EXPIRED", "VOICE_ALL", "VOICE_INITIATED", "VOICE_RINGING", "VOICE_ANSWERED", "VOICE_COMPLETED", "VOICE_BUSY", "VOICE_NO_ANSWER", "VOICE_FAILED", "VOICE_TTL_EXPIRED" + # resp.event_destination.cloud_watch_logs_destination.iam_role_arn #=> String + # resp.event_destination.cloud_watch_logs_destination.log_group_arn #=> String + # resp.event_destination.kinesis_firehose_destination.iam_role_arn #=> String + # resp.event_destination.kinesis_firehose_destination.delivery_stream_arn #=> String + # resp.event_destination.sns_destination.topic_arn #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/UpdateEventDestination AWS API Documentation + # + # @overload update_event_destination(params = {}) + # @param [Hash] params ({}) + def update_event_destination(params = {}, options = {}) + req = build_request(:update_event_destination, params) + req.send_request(options) + end + + # Updates the configuration of an existing origination phone number. You + # can update the opt-out list, enable or disable two-way messaging, + # change the TwoWayChannelArn, enable or disable self-managed opt-outs, + # and enable or disable deletion protection. + # + # If the origination phone number is associated with a pool, an Error is + # returned. + # + # @option params [required, String] :phone_number_id + # The unique identifier of the phone number. Valid values for this field + # can be either the PhoneNumberId or PhoneNumberArn. + # + # @option params [Boolean] :two_way_enabled + # By default this is set to false. When set to true you can receive + # incoming text messages from your end recipients. + # + # @option params [String] :two_way_channel_arn + # The Amazon Resource Name (ARN) of the two way channel. + # + # @option params [Boolean] :self_managed_opt_outs_enabled + # By default this is set to false. When an end recipient sends a message + # that begins with HELP or STOP to one of your dedicated numbers, Amazon + # Pinpoint automatically replies with a customizable message and adds + # the end recipient to the OptOutList. When set to true you're + # responsible for responding to HELP and STOP requests. You're also + # responsible for tracking and honoring opt-out requests. + # + # @option params [String] :opt_out_list_name + # The OptOutList to add the phone number to. Valid values for this field + # can be either the OutOutListName or OutOutListArn. + # + # @option params [Boolean] :deletion_protection_enabled + # By default this is set to false. When set to true the phone number + # can't be deleted. + # + # @return [Types::UpdatePhoneNumberResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::UpdatePhoneNumberResult#phone_number_arn #phone_number_arn} => String + # * {Types::UpdatePhoneNumberResult#phone_number_id #phone_number_id} => String + # * {Types::UpdatePhoneNumberResult#phone_number #phone_number} => String + # * {Types::UpdatePhoneNumberResult#status #status} => String + # * {Types::UpdatePhoneNumberResult#iso_country_code #iso_country_code} => String + # * {Types::UpdatePhoneNumberResult#message_type #message_type} => String + # * {Types::UpdatePhoneNumberResult#number_capabilities #number_capabilities} => Array<String> + # * {Types::UpdatePhoneNumberResult#number_type #number_type} => String + # * {Types::UpdatePhoneNumberResult#monthly_leasing_price #monthly_leasing_price} => String + # * {Types::UpdatePhoneNumberResult#two_way_enabled #two_way_enabled} => Boolean + # * {Types::UpdatePhoneNumberResult#two_way_channel_arn #two_way_channel_arn} => String + # * {Types::UpdatePhoneNumberResult#self_managed_opt_outs_enabled #self_managed_opt_outs_enabled} => Boolean + # * {Types::UpdatePhoneNumberResult#opt_out_list_name #opt_out_list_name} => String + # * {Types::UpdatePhoneNumberResult#deletion_protection_enabled #deletion_protection_enabled} => Boolean + # * {Types::UpdatePhoneNumberResult#created_timestamp #created_timestamp} => Time + # + # @example Request syntax with placeholder values + # + # resp = client.update_phone_number({ + # phone_number_id: "PhoneNumberIdOrArn", # required + # two_way_enabled: false, + # two_way_channel_arn: "TwoWayChannelArn", + # self_managed_opt_outs_enabled: false, + # opt_out_list_name: "OptOutListNameOrArn", + # deletion_protection_enabled: false, + # }) + # + # @example Response structure + # + # resp.phone_number_arn #=> String + # resp.phone_number_id #=> String + # resp.phone_number #=> String + # resp.status #=> String, one of "PENDING", "ACTIVE", "ASSOCIATING", "DISASSOCIATING", "DELETED" + # resp.iso_country_code #=> String + # resp.message_type #=> String, one of "TRANSACTIONAL", "PROMOTIONAL" + # resp.number_capabilities #=> Array + # resp.number_capabilities[0] #=> String, one of "SMS", "VOICE" + # resp.number_type #=> String, one of "SHORT_CODE", "LONG_CODE", "TOLL_FREE", "TEN_DLC" + # resp.monthly_leasing_price #=> String + # resp.two_way_enabled #=> Boolean + # resp.two_way_channel_arn #=> String + # resp.self_managed_opt_outs_enabled #=> Boolean + # resp.opt_out_list_name #=> String + # resp.deletion_protection_enabled #=> Boolean + # resp.created_timestamp #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/UpdatePhoneNumber AWS API Documentation + # + # @overload update_phone_number(params = {}) + # @param [Hash] params ({}) + def update_phone_number(params = {}, options = {}) + req = build_request(:update_phone_number, params) + req.send_request(options) + end + + # Updates the configuration of an existing pool. You can update the + # opt-out list, enable or disable two-way messaging, change the + # `TwoWayChannelArn`, enable or disable self-managed opt-outs, enable or + # disable deletion protection, and enable or disable shared routes. + # + # @option params [required, String] :pool_id + # The unique identifier of the pool to update. Valid values are either + # the PoolId or PoolArn. + # + # @option params [Boolean] :two_way_enabled + # By default this is set to false. When set to true you can receive + # incoming text messages from your end recipients. + # + # @option params [String] :two_way_channel_arn + # The Amazon Resource Name (ARN) of the two way channel. + # + # @option params [Boolean] :self_managed_opt_outs_enabled + # By default this is set to false. When an end recipient sends a message + # that begins with HELP or STOP to one of your dedicated numbers, Amazon + # Pinpoint automatically replies with a customizable message and adds + # the end recipient to the OptOutList. When set to true you're + # responsible for responding to HELP and STOP requests. You're also + # responsible for tracking and honoring opt-out requests. + # + # @option params [String] :opt_out_list_name + # The OptOutList to associate with the pool. Valid values are either + # OptOutListName or OptOutListArn. + # + # @option params [Boolean] :shared_routes_enabled + # Indicates whether shared routes are enabled for the pool. + # + # @option params [Boolean] :deletion_protection_enabled + # When set to true the pool can't be deleted. + # + # @return [Types::UpdatePoolResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::UpdatePoolResult#pool_arn #pool_arn} => String + # * {Types::UpdatePoolResult#pool_id #pool_id} => String + # * {Types::UpdatePoolResult#status #status} => String + # * {Types::UpdatePoolResult#message_type #message_type} => String + # * {Types::UpdatePoolResult#two_way_enabled #two_way_enabled} => Boolean + # * {Types::UpdatePoolResult#two_way_channel_arn #two_way_channel_arn} => String + # * {Types::UpdatePoolResult#self_managed_opt_outs_enabled #self_managed_opt_outs_enabled} => Boolean + # * {Types::UpdatePoolResult#opt_out_list_name #opt_out_list_name} => String + # * {Types::UpdatePoolResult#shared_routes_enabled #shared_routes_enabled} => Boolean + # * {Types::UpdatePoolResult#deletion_protection_enabled #deletion_protection_enabled} => Boolean + # * {Types::UpdatePoolResult#created_timestamp #created_timestamp} => Time + # + # @example Request syntax with placeholder values + # + # resp = client.update_pool({ + # pool_id: "PoolIdOrArn", # required + # two_way_enabled: false, + # two_way_channel_arn: "TwoWayChannelArn", + # self_managed_opt_outs_enabled: false, + # opt_out_list_name: "OptOutListNameOrArn", + # shared_routes_enabled: false, + # deletion_protection_enabled: false, + # }) + # + # @example Response structure + # + # resp.pool_arn #=> String + # resp.pool_id #=> String + # resp.status #=> String, one of "CREATING", "ACTIVE", "DELETING" + # resp.message_type #=> String, one of "TRANSACTIONAL", "PROMOTIONAL" + # resp.two_way_enabled #=> Boolean + # resp.two_way_channel_arn #=> String + # resp.self_managed_opt_outs_enabled #=> Boolean + # resp.opt_out_list_name #=> String + # resp.shared_routes_enabled #=> Boolean + # resp.deletion_protection_enabled #=> Boolean + # resp.created_timestamp #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/UpdatePool AWS API Documentation + # + # @overload update_pool(params = {}) + # @param [Hash] params ({}) + def update_pool(params = {}, options = {}) + req = build_request(:update_pool, params) + req.send_request(options) + end + + # @!endgroup + + # @param params ({}) + # @api private + def build_request(operation_name, params = {}) + handlers = @handlers.for(operation_name) + context = Seahorse::Client::RequestContext.new( + operation_name: operation_name, + operation: config.api.operation(operation_name), + client: self, + params: params, + config: config) + context[:gem_name] = 'aws-sdk-pinpointsmsvoicev2' + context[:gem_version] = '1.0.0' + Seahorse::Client::Request.new(handlers, context) + end + + # @api private + # @deprecated + def waiter_names + [] + end + + class << self + + # @api private + attr_reader :identifier + + # @api private + def errors_module + Errors + end + + end + end +end diff --git a/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/client_api.rb b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/client_api.rb new file mode 100644 index 00000000000..aaa2693bec1 --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/client_api.rb @@ -0,0 +1,1652 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws::PinpointSMSVoiceV2 + # @api private + module ClientApi + + include Seahorse::Model + + AccessDeniedException = Shapes::StructureShape.new(name: 'AccessDeniedException') + AccessDeniedExceptionReason = Shapes::StringShape.new(name: 'AccessDeniedExceptionReason') + AccountAttribute = Shapes::StructureShape.new(name: 'AccountAttribute') + AccountAttributeList = Shapes::ListShape.new(name: 'AccountAttributeList') + AccountAttributeName = Shapes::StringShape.new(name: 'AccountAttributeName') + AccountLimit = Shapes::StructureShape.new(name: 'AccountLimit') + AccountLimitList = Shapes::ListShape.new(name: 'AccountLimitList') + AccountLimitName = Shapes::StringShape.new(name: 'AccountLimitName') + AmazonResourceName = Shapes::StringShape.new(name: 'AmazonResourceName') + AssociateOriginationIdentityRequest = Shapes::StructureShape.new(name: 'AssociateOriginationIdentityRequest') + AssociateOriginationIdentityResult = Shapes::StructureShape.new(name: 'AssociateOriginationIdentityResult') + Boolean = Shapes::BooleanShape.new(name: 'Boolean') + ClientToken = Shapes::StringShape.new(name: 'ClientToken') + CloudWatchLogsDestination = Shapes::StructureShape.new(name: 'CloudWatchLogsDestination') + ConfigurationSetFilter = Shapes::StructureShape.new(name: 'ConfigurationSetFilter') + ConfigurationSetFilterList = Shapes::ListShape.new(name: 'ConfigurationSetFilterList') + ConfigurationSetFilterName = Shapes::StringShape.new(name: 'ConfigurationSetFilterName') + ConfigurationSetInformation = Shapes::StructureShape.new(name: 'ConfigurationSetInformation') + ConfigurationSetInformationList = Shapes::ListShape.new(name: 'ConfigurationSetInformationList') + ConfigurationSetName = Shapes::StringShape.new(name: 'ConfigurationSetName') + ConfigurationSetNameList = Shapes::ListShape.new(name: 'ConfigurationSetNameList') + ConfigurationSetNameOrArn = Shapes::StringShape.new(name: 'ConfigurationSetNameOrArn') + ConflictException = Shapes::StructureShape.new(name: 'ConflictException') + ConflictExceptionReason = Shapes::StringShape.new(name: 'ConflictExceptionReason') + ContextKey = Shapes::StringShape.new(name: 'ContextKey') + ContextMap = Shapes::MapShape.new(name: 'ContextMap') + ContextValue = Shapes::StringShape.new(name: 'ContextValue') + CreateConfigurationSetRequest = Shapes::StructureShape.new(name: 'CreateConfigurationSetRequest') + CreateConfigurationSetResult = Shapes::StructureShape.new(name: 'CreateConfigurationSetResult') + CreateEventDestinationRequest = Shapes::StructureShape.new(name: 'CreateEventDestinationRequest') + CreateEventDestinationResult = Shapes::StructureShape.new(name: 'CreateEventDestinationResult') + CreateOptOutListRequest = Shapes::StructureShape.new(name: 'CreateOptOutListRequest') + CreateOptOutListResult = Shapes::StructureShape.new(name: 'CreateOptOutListResult') + CreatePoolRequest = Shapes::StructureShape.new(name: 'CreatePoolRequest') + CreatePoolResult = Shapes::StructureShape.new(name: 'CreatePoolResult') + DeleteConfigurationSetRequest = Shapes::StructureShape.new(name: 'DeleteConfigurationSetRequest') + DeleteConfigurationSetResult = Shapes::StructureShape.new(name: 'DeleteConfigurationSetResult') + DeleteDefaultMessageTypeRequest = Shapes::StructureShape.new(name: 'DeleteDefaultMessageTypeRequest') + DeleteDefaultMessageTypeResult = Shapes::StructureShape.new(name: 'DeleteDefaultMessageTypeResult') + DeleteDefaultSenderIdRequest = Shapes::StructureShape.new(name: 'DeleteDefaultSenderIdRequest') + DeleteDefaultSenderIdResult = Shapes::StructureShape.new(name: 'DeleteDefaultSenderIdResult') + DeleteEventDestinationRequest = Shapes::StructureShape.new(name: 'DeleteEventDestinationRequest') + DeleteEventDestinationResult = Shapes::StructureShape.new(name: 'DeleteEventDestinationResult') + DeleteKeywordRequest = Shapes::StructureShape.new(name: 'DeleteKeywordRequest') + DeleteKeywordResult = Shapes::StructureShape.new(name: 'DeleteKeywordResult') + DeleteOptOutListRequest = Shapes::StructureShape.new(name: 'DeleteOptOutListRequest') + DeleteOptOutListResult = Shapes::StructureShape.new(name: 'DeleteOptOutListResult') + DeleteOptedOutNumberRequest = Shapes::StructureShape.new(name: 'DeleteOptedOutNumberRequest') + DeleteOptedOutNumberResult = Shapes::StructureShape.new(name: 'DeleteOptedOutNumberResult') + DeletePoolRequest = Shapes::StructureShape.new(name: 'DeletePoolRequest') + DeletePoolResult = Shapes::StructureShape.new(name: 'DeletePoolResult') + DeleteTextMessageSpendLimitOverrideRequest = Shapes::StructureShape.new(name: 'DeleteTextMessageSpendLimitOverrideRequest') + DeleteTextMessageSpendLimitOverrideResult = Shapes::StructureShape.new(name: 'DeleteTextMessageSpendLimitOverrideResult') + DeleteVoiceMessageSpendLimitOverrideRequest = Shapes::StructureShape.new(name: 'DeleteVoiceMessageSpendLimitOverrideRequest') + DeleteVoiceMessageSpendLimitOverrideResult = Shapes::StructureShape.new(name: 'DeleteVoiceMessageSpendLimitOverrideResult') + DeliveryStreamArn = Shapes::StringShape.new(name: 'DeliveryStreamArn') + DescribeAccountAttributesRequest = Shapes::StructureShape.new(name: 'DescribeAccountAttributesRequest') + DescribeAccountAttributesResult = Shapes::StructureShape.new(name: 'DescribeAccountAttributesResult') + DescribeAccountLimitsRequest = Shapes::StructureShape.new(name: 'DescribeAccountLimitsRequest') + DescribeAccountLimitsResult = Shapes::StructureShape.new(name: 'DescribeAccountLimitsResult') + DescribeConfigurationSetsRequest = Shapes::StructureShape.new(name: 'DescribeConfigurationSetsRequest') + DescribeConfigurationSetsResult = Shapes::StructureShape.new(name: 'DescribeConfigurationSetsResult') + DescribeKeywordsRequest = Shapes::StructureShape.new(name: 'DescribeKeywordsRequest') + DescribeKeywordsResult = Shapes::StructureShape.new(name: 'DescribeKeywordsResult') + DescribeOptOutListsRequest = Shapes::StructureShape.new(name: 'DescribeOptOutListsRequest') + DescribeOptOutListsResult = Shapes::StructureShape.new(name: 'DescribeOptOutListsResult') + DescribeOptedOutNumbersRequest = Shapes::StructureShape.new(name: 'DescribeOptedOutNumbersRequest') + DescribeOptedOutNumbersResult = Shapes::StructureShape.new(name: 'DescribeOptedOutNumbersResult') + DescribePhoneNumbersRequest = Shapes::StructureShape.new(name: 'DescribePhoneNumbersRequest') + DescribePhoneNumbersResult = Shapes::StructureShape.new(name: 'DescribePhoneNumbersResult') + DescribePoolsRequest = Shapes::StructureShape.new(name: 'DescribePoolsRequest') + DescribePoolsResult = Shapes::StructureShape.new(name: 'DescribePoolsResult') + DescribeSenderIdsRequest = Shapes::StructureShape.new(name: 'DescribeSenderIdsRequest') + DescribeSenderIdsResult = Shapes::StructureShape.new(name: 'DescribeSenderIdsResult') + DescribeSpendLimitsRequest = Shapes::StructureShape.new(name: 'DescribeSpendLimitsRequest') + DescribeSpendLimitsResult = Shapes::StructureShape.new(name: 'DescribeSpendLimitsResult') + DestinationCountryParameterKey = Shapes::StringShape.new(name: 'DestinationCountryParameterKey') + DestinationCountryParameterValue = Shapes::StringShape.new(name: 'DestinationCountryParameterValue') + DestinationCountryParameters = Shapes::MapShape.new(name: 'DestinationCountryParameters') + DisassociateOriginationIdentityRequest = Shapes::StructureShape.new(name: 'DisassociateOriginationIdentityRequest') + DisassociateOriginationIdentityResult = Shapes::StructureShape.new(name: 'DisassociateOriginationIdentityResult') + EventDestination = Shapes::StructureShape.new(name: 'EventDestination') + EventDestinationList = Shapes::ListShape.new(name: 'EventDestinationList') + EventDestinationName = Shapes::StringShape.new(name: 'EventDestinationName') + EventType = Shapes::StringShape.new(name: 'EventType') + EventTypeList = Shapes::ListShape.new(name: 'EventTypeList') + FilterValue = Shapes::StringShape.new(name: 'FilterValue') + FilterValueList = Shapes::ListShape.new(name: 'FilterValueList') + IamRoleArn = Shapes::StringShape.new(name: 'IamRoleArn') + InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException') + IsoCountryCode = Shapes::StringShape.new(name: 'IsoCountryCode') + Keyword = Shapes::StringShape.new(name: 'Keyword') + KeywordAction = Shapes::StringShape.new(name: 'KeywordAction') + KeywordFilter = Shapes::StructureShape.new(name: 'KeywordFilter') + KeywordFilterList = Shapes::ListShape.new(name: 'KeywordFilterList') + KeywordFilterName = Shapes::StringShape.new(name: 'KeywordFilterName') + KeywordInformation = Shapes::StructureShape.new(name: 'KeywordInformation') + KeywordInformationList = Shapes::ListShape.new(name: 'KeywordInformationList') + KeywordList = Shapes::ListShape.new(name: 'KeywordList') + KeywordMessage = Shapes::StringShape.new(name: 'KeywordMessage') + KinesisFirehoseDestination = Shapes::StructureShape.new(name: 'KinesisFirehoseDestination') + ListPoolOriginationIdentitiesRequest = Shapes::StructureShape.new(name: 'ListPoolOriginationIdentitiesRequest') + ListPoolOriginationIdentitiesResult = Shapes::StructureShape.new(name: 'ListPoolOriginationIdentitiesResult') + ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest') + ListTagsForResourceResult = Shapes::StructureShape.new(name: 'ListTagsForResourceResult') + LogGroupArn = Shapes::StringShape.new(name: 'LogGroupArn') + MaxPrice = Shapes::StringShape.new(name: 'MaxPrice') + MaxResults = Shapes::IntegerShape.new(name: 'MaxResults') + MessageType = Shapes::StringShape.new(name: 'MessageType') + MessageTypeList = Shapes::ListShape.new(name: 'MessageTypeList') + MonthlyLimit = Shapes::IntegerShape.new(name: 'MonthlyLimit') + NextToken = Shapes::StringShape.new(name: 'NextToken') + NonEmptyTagList = Shapes::ListShape.new(name: 'NonEmptyTagList') + NumberCapability = Shapes::StringShape.new(name: 'NumberCapability') + NumberCapabilityList = Shapes::ListShape.new(name: 'NumberCapabilityList') + NumberStatus = Shapes::StringShape.new(name: 'NumberStatus') + NumberType = Shapes::StringShape.new(name: 'NumberType') + OptOutListInformation = Shapes::StructureShape.new(name: 'OptOutListInformation') + OptOutListInformationList = Shapes::ListShape.new(name: 'OptOutListInformationList') + OptOutListName = Shapes::StringShape.new(name: 'OptOutListName') + OptOutListNameList = Shapes::ListShape.new(name: 'OptOutListNameList') + OptOutListNameOrArn = Shapes::StringShape.new(name: 'OptOutListNameOrArn') + OptedOutFilter = Shapes::StructureShape.new(name: 'OptedOutFilter') + OptedOutFilterList = Shapes::ListShape.new(name: 'OptedOutFilterList') + OptedOutFilterName = Shapes::StringShape.new(name: 'OptedOutFilterName') + OptedOutNumberInformation = Shapes::StructureShape.new(name: 'OptedOutNumberInformation') + OptedOutNumberInformationList = Shapes::ListShape.new(name: 'OptedOutNumberInformationList') + OptedOutNumberList = Shapes::ListShape.new(name: 'OptedOutNumberList') + OriginationIdentityMetadata = Shapes::StructureShape.new(name: 'OriginationIdentityMetadata') + OriginationIdentityMetadataList = Shapes::ListShape.new(name: 'OriginationIdentityMetadataList') + PhoneNumber = Shapes::StringShape.new(name: 'PhoneNumber') + PhoneNumberFilter = Shapes::StructureShape.new(name: 'PhoneNumberFilter') + PhoneNumberFilterList = Shapes::ListShape.new(name: 'PhoneNumberFilterList') + PhoneNumberFilterName = Shapes::StringShape.new(name: 'PhoneNumberFilterName') + PhoneNumberIdList = Shapes::ListShape.new(name: 'PhoneNumberIdList') + PhoneNumberIdOrArn = Shapes::StringShape.new(name: 'PhoneNumberIdOrArn') + PhoneNumberInformation = Shapes::StructureShape.new(name: 'PhoneNumberInformation') + PhoneNumberInformationList = Shapes::ListShape.new(name: 'PhoneNumberInformationList') + PhoneOrPoolIdOrArn = Shapes::StringShape.new(name: 'PhoneOrPoolIdOrArn') + PhoneOrSenderIdOrArn = Shapes::StringShape.new(name: 'PhoneOrSenderIdOrArn') + PoolFilter = Shapes::StructureShape.new(name: 'PoolFilter') + PoolFilterList = Shapes::ListShape.new(name: 'PoolFilterList') + PoolFilterName = Shapes::StringShape.new(name: 'PoolFilterName') + PoolIdList = Shapes::ListShape.new(name: 'PoolIdList') + PoolIdOrArn = Shapes::StringShape.new(name: 'PoolIdOrArn') + PoolInformation = Shapes::StructureShape.new(name: 'PoolInformation') + PoolInformationList = Shapes::ListShape.new(name: 'PoolInformationList') + PoolOriginationIdentitiesFilter = Shapes::StructureShape.new(name: 'PoolOriginationIdentitiesFilter') + PoolOriginationIdentitiesFilterList = Shapes::ListShape.new(name: 'PoolOriginationIdentitiesFilterList') + PoolOriginationIdentitiesFilterName = Shapes::StringShape.new(name: 'PoolOriginationIdentitiesFilterName') + PoolStatus = Shapes::StringShape.new(name: 'PoolStatus') + PrimitiveBoolean = Shapes::BooleanShape.new(name: 'PrimitiveBoolean') + PrimitiveLong = Shapes::IntegerShape.new(name: 'PrimitiveLong') + PutKeywordRequest = Shapes::StructureShape.new(name: 'PutKeywordRequest') + PutKeywordResult = Shapes::StructureShape.new(name: 'PutKeywordResult') + PutOptedOutNumberRequest = Shapes::StructureShape.new(name: 'PutOptedOutNumberRequest') + PutOptedOutNumberResult = Shapes::StructureShape.new(name: 'PutOptedOutNumberResult') + RegistrationId = Shapes::StringShape.new(name: 'RegistrationId') + ReleasePhoneNumberRequest = Shapes::StructureShape.new(name: 'ReleasePhoneNumberRequest') + ReleasePhoneNumberResult = Shapes::StructureShape.new(name: 'ReleasePhoneNumberResult') + RequestPhoneNumberRequest = Shapes::StructureShape.new(name: 'RequestPhoneNumberRequest') + RequestPhoneNumberResult = Shapes::StructureShape.new(name: 'RequestPhoneNumberResult') + RequestableNumberType = Shapes::StringShape.new(name: 'RequestableNumberType') + ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException') + ResourceType = Shapes::StringShape.new(name: 'ResourceType') + SendTextMessageRequest = Shapes::StructureShape.new(name: 'SendTextMessageRequest') + SendTextMessageResult = Shapes::StructureShape.new(name: 'SendTextMessageResult') + SendVoiceMessageRequest = Shapes::StructureShape.new(name: 'SendVoiceMessageRequest') + SendVoiceMessageResult = Shapes::StructureShape.new(name: 'SendVoiceMessageResult') + SenderId = Shapes::StringShape.new(name: 'SenderId') + SenderIdAndCountry = Shapes::StructureShape.new(name: 'SenderIdAndCountry') + SenderIdFilter = Shapes::StructureShape.new(name: 'SenderIdFilter') + SenderIdFilterList = Shapes::ListShape.new(name: 'SenderIdFilterList') + SenderIdFilterName = Shapes::StringShape.new(name: 'SenderIdFilterName') + SenderIdInformation = Shapes::StructureShape.new(name: 'SenderIdInformation') + SenderIdInformationList = Shapes::ListShape.new(name: 'SenderIdInformationList') + SenderIdList = Shapes::ListShape.new(name: 'SenderIdList') + SenderIdOrArn = Shapes::StringShape.new(name: 'SenderIdOrArn') + ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException') + ServiceQuotaExceededExceptionReason = Shapes::StringShape.new(name: 'ServiceQuotaExceededExceptionReason') + SetDefaultMessageTypeRequest = Shapes::StructureShape.new(name: 'SetDefaultMessageTypeRequest') + SetDefaultMessageTypeResult = Shapes::StructureShape.new(name: 'SetDefaultMessageTypeResult') + SetDefaultSenderIdRequest = Shapes::StructureShape.new(name: 'SetDefaultSenderIdRequest') + SetDefaultSenderIdResult = Shapes::StructureShape.new(name: 'SetDefaultSenderIdResult') + SetTextMessageSpendLimitOverrideRequest = Shapes::StructureShape.new(name: 'SetTextMessageSpendLimitOverrideRequest') + SetTextMessageSpendLimitOverrideResult = Shapes::StructureShape.new(name: 'SetTextMessageSpendLimitOverrideResult') + SetVoiceMessageSpendLimitOverrideRequest = Shapes::StructureShape.new(name: 'SetVoiceMessageSpendLimitOverrideRequest') + SetVoiceMessageSpendLimitOverrideResult = Shapes::StructureShape.new(name: 'SetVoiceMessageSpendLimitOverrideResult') + SnsDestination = Shapes::StructureShape.new(name: 'SnsDestination') + SnsTopicArn = Shapes::StringShape.new(name: 'SnsTopicArn') + SpendLimit = Shapes::StructureShape.new(name: 'SpendLimit') + SpendLimitList = Shapes::ListShape.new(name: 'SpendLimitList') + SpendLimitName = Shapes::StringShape.new(name: 'SpendLimitName') + String = Shapes::StringShape.new(name: 'String') + Tag = Shapes::StructureShape.new(name: 'Tag') + TagKey = Shapes::StringShape.new(name: 'TagKey') + TagKeyList = Shapes::ListShape.new(name: 'TagKeyList') + TagList = Shapes::ListShape.new(name: 'TagList') + TagResourceRequest = Shapes::StructureShape.new(name: 'TagResourceRequest') + TagResourceResult = Shapes::StructureShape.new(name: 'TagResourceResult') + TagValue = Shapes::StringShape.new(name: 'TagValue') + TextMessageBody = Shapes::StringShape.new(name: 'TextMessageBody') + TextMessageOriginationIdentity = Shapes::StringShape.new(name: 'TextMessageOriginationIdentity') + ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException') + TimeToLive = Shapes::IntegerShape.new(name: 'TimeToLive') + Timestamp = Shapes::TimestampShape.new(name: 'Timestamp') + TwoWayChannelArn = Shapes::StringShape.new(name: 'TwoWayChannelArn') + UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest') + UntagResourceResult = Shapes::StructureShape.new(name: 'UntagResourceResult') + UpdateEventDestinationRequest = Shapes::StructureShape.new(name: 'UpdateEventDestinationRequest') + UpdateEventDestinationResult = Shapes::StructureShape.new(name: 'UpdateEventDestinationResult') + UpdatePhoneNumberRequest = Shapes::StructureShape.new(name: 'UpdatePhoneNumberRequest') + UpdatePhoneNumberResult = Shapes::StructureShape.new(name: 'UpdatePhoneNumberResult') + UpdatePoolRequest = Shapes::StructureShape.new(name: 'UpdatePoolRequest') + UpdatePoolResult = Shapes::StructureShape.new(name: 'UpdatePoolResult') + ValidationException = Shapes::StructureShape.new(name: 'ValidationException') + ValidationExceptionField = Shapes::StructureShape.new(name: 'ValidationExceptionField') + ValidationExceptionFieldList = Shapes::ListShape.new(name: 'ValidationExceptionFieldList') + ValidationExceptionReason = Shapes::StringShape.new(name: 'ValidationExceptionReason') + VoiceId = Shapes::StringShape.new(name: 'VoiceId') + VoiceMessageBody = Shapes::StringShape.new(name: 'VoiceMessageBody') + VoiceMessageBodyTextType = Shapes::StringShape.new(name: 'VoiceMessageBodyTextType') + VoiceMessageOriginationIdentity = Shapes::StringShape.new(name: 'VoiceMessageOriginationIdentity') + + AccessDeniedException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message")) + AccessDeniedException.add_member(:reason, Shapes::ShapeRef.new(shape: AccessDeniedExceptionReason, location_name: "Reason")) + AccessDeniedException.struct_class = Types::AccessDeniedException + + AccountAttribute.add_member(:name, Shapes::ShapeRef.new(shape: AccountAttributeName, required: true, location_name: "Name")) + AccountAttribute.add_member(:value, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Value")) + AccountAttribute.struct_class = Types::AccountAttribute + + AccountAttributeList.member = Shapes::ShapeRef.new(shape: AccountAttribute) + + AccountLimit.add_member(:name, Shapes::ShapeRef.new(shape: AccountLimitName, required: true, location_name: "Name")) + AccountLimit.add_member(:used, Shapes::ShapeRef.new(shape: PrimitiveLong, required: true, location_name: "Used")) + AccountLimit.add_member(:max, Shapes::ShapeRef.new(shape: PrimitiveLong, required: true, location_name: "Max")) + AccountLimit.struct_class = Types::AccountLimit + + AccountLimitList.member = Shapes::ShapeRef.new(shape: AccountLimit) + + AssociateOriginationIdentityRequest.add_member(:pool_id, Shapes::ShapeRef.new(shape: PoolIdOrArn, required: true, location_name: "PoolId")) + AssociateOriginationIdentityRequest.add_member(:origination_identity, Shapes::ShapeRef.new(shape: PhoneOrSenderIdOrArn, required: true, location_name: "OriginationIdentity")) + AssociateOriginationIdentityRequest.add_member(:iso_country_code, Shapes::ShapeRef.new(shape: IsoCountryCode, required: true, location_name: "IsoCountryCode")) + AssociateOriginationIdentityRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location_name: "ClientToken", metadata: {"idempotencyToken"=>true})) + AssociateOriginationIdentityRequest.struct_class = Types::AssociateOriginationIdentityRequest + + AssociateOriginationIdentityResult.add_member(:pool_arn, Shapes::ShapeRef.new(shape: String, location_name: "PoolArn")) + AssociateOriginationIdentityResult.add_member(:pool_id, Shapes::ShapeRef.new(shape: String, location_name: "PoolId")) + AssociateOriginationIdentityResult.add_member(:origination_identity_arn, Shapes::ShapeRef.new(shape: String, location_name: "OriginationIdentityArn")) + AssociateOriginationIdentityResult.add_member(:origination_identity, Shapes::ShapeRef.new(shape: String, location_name: "OriginationIdentity")) + AssociateOriginationIdentityResult.add_member(:iso_country_code, Shapes::ShapeRef.new(shape: IsoCountryCode, location_name: "IsoCountryCode")) + AssociateOriginationIdentityResult.struct_class = Types::AssociateOriginationIdentityResult + + CloudWatchLogsDestination.add_member(:iam_role_arn, Shapes::ShapeRef.new(shape: IamRoleArn, required: true, location_name: "IamRoleArn")) + CloudWatchLogsDestination.add_member(:log_group_arn, Shapes::ShapeRef.new(shape: LogGroupArn, required: true, location_name: "LogGroupArn")) + CloudWatchLogsDestination.struct_class = Types::CloudWatchLogsDestination + + ConfigurationSetFilter.add_member(:name, Shapes::ShapeRef.new(shape: ConfigurationSetFilterName, required: true, location_name: "Name")) + ConfigurationSetFilter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValueList, required: true, location_name: "Values")) + ConfigurationSetFilter.struct_class = Types::ConfigurationSetFilter + + ConfigurationSetFilterList.member = Shapes::ShapeRef.new(shape: ConfigurationSetFilter) + + ConfigurationSetInformation.add_member(:configuration_set_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ConfigurationSetArn")) + ConfigurationSetInformation.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetName, required: true, location_name: "ConfigurationSetName")) + ConfigurationSetInformation.add_member(:event_destinations, Shapes::ShapeRef.new(shape: EventDestinationList, required: true, location_name: "EventDestinations")) + ConfigurationSetInformation.add_member(:default_message_type, Shapes::ShapeRef.new(shape: MessageType, location_name: "DefaultMessageType")) + ConfigurationSetInformation.add_member(:default_sender_id, Shapes::ShapeRef.new(shape: SenderId, location_name: "DefaultSenderId")) + ConfigurationSetInformation.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "CreatedTimestamp")) + ConfigurationSetInformation.struct_class = Types::ConfigurationSetInformation + + ConfigurationSetInformationList.member = Shapes::ShapeRef.new(shape: ConfigurationSetInformation) + + ConfigurationSetNameList.member = Shapes::ShapeRef.new(shape: ConfigurationSetNameOrArn) + + ConflictException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message")) + ConflictException.add_member(:reason, Shapes::ShapeRef.new(shape: ConflictExceptionReason, location_name: "Reason")) + ConflictException.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "ResourceType")) + ConflictException.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "ResourceId")) + ConflictException.struct_class = Types::ConflictException + + ContextMap.key = Shapes::ShapeRef.new(shape: ContextKey) + ContextMap.value = Shapes::ShapeRef.new(shape: ContextValue) + + CreateConfigurationSetRequest.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetName, required: true, location_name: "ConfigurationSetName")) + CreateConfigurationSetRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags")) + CreateConfigurationSetRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location_name: "ClientToken", metadata: {"idempotencyToken"=>true})) + CreateConfigurationSetRequest.struct_class = Types::CreateConfigurationSetRequest + + CreateConfigurationSetResult.add_member(:configuration_set_arn, Shapes::ShapeRef.new(shape: String, location_name: "ConfigurationSetArn")) + CreateConfigurationSetResult.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetName, location_name: "ConfigurationSetName")) + CreateConfigurationSetResult.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags")) + CreateConfigurationSetResult.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreatedTimestamp")) + CreateConfigurationSetResult.struct_class = Types::CreateConfigurationSetResult + + CreateEventDestinationRequest.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetNameOrArn, required: true, location_name: "ConfigurationSetName")) + CreateEventDestinationRequest.add_member(:event_destination_name, Shapes::ShapeRef.new(shape: EventDestinationName, required: true, location_name: "EventDestinationName")) + CreateEventDestinationRequest.add_member(:matching_event_types, Shapes::ShapeRef.new(shape: EventTypeList, required: true, location_name: "MatchingEventTypes")) + CreateEventDestinationRequest.add_member(:cloud_watch_logs_destination, Shapes::ShapeRef.new(shape: CloudWatchLogsDestination, location_name: "CloudWatchLogsDestination")) + CreateEventDestinationRequest.add_member(:kinesis_firehose_destination, Shapes::ShapeRef.new(shape: KinesisFirehoseDestination, location_name: "KinesisFirehoseDestination")) + CreateEventDestinationRequest.add_member(:sns_destination, Shapes::ShapeRef.new(shape: SnsDestination, location_name: "SnsDestination")) + CreateEventDestinationRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location_name: "ClientToken", metadata: {"idempotencyToken"=>true})) + CreateEventDestinationRequest.struct_class = Types::CreateEventDestinationRequest + + CreateEventDestinationResult.add_member(:configuration_set_arn, Shapes::ShapeRef.new(shape: String, location_name: "ConfigurationSetArn")) + CreateEventDestinationResult.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetName, location_name: "ConfigurationSetName")) + CreateEventDestinationResult.add_member(:event_destination, Shapes::ShapeRef.new(shape: EventDestination, location_name: "EventDestination")) + CreateEventDestinationResult.struct_class = Types::CreateEventDestinationResult + + CreateOptOutListRequest.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, required: true, location_name: "OptOutListName")) + CreateOptOutListRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags")) + CreateOptOutListRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location_name: "ClientToken", metadata: {"idempotencyToken"=>true})) + CreateOptOutListRequest.struct_class = Types::CreateOptOutListRequest + + CreateOptOutListResult.add_member(:opt_out_list_arn, Shapes::ShapeRef.new(shape: String, location_name: "OptOutListArn")) + CreateOptOutListResult.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, location_name: "OptOutListName")) + CreateOptOutListResult.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags")) + CreateOptOutListResult.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreatedTimestamp")) + CreateOptOutListResult.struct_class = Types::CreateOptOutListResult + + CreatePoolRequest.add_member(:origination_identity, Shapes::ShapeRef.new(shape: PhoneOrSenderIdOrArn, required: true, location_name: "OriginationIdentity")) + CreatePoolRequest.add_member(:iso_country_code, Shapes::ShapeRef.new(shape: IsoCountryCode, required: true, location_name: "IsoCountryCode")) + CreatePoolRequest.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, required: true, location_name: "MessageType")) + CreatePoolRequest.add_member(:deletion_protection_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "DeletionProtectionEnabled")) + CreatePoolRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags")) + CreatePoolRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location_name: "ClientToken", metadata: {"idempotencyToken"=>true})) + CreatePoolRequest.struct_class = Types::CreatePoolRequest + + CreatePoolResult.add_member(:pool_arn, Shapes::ShapeRef.new(shape: String, location_name: "PoolArn")) + CreatePoolResult.add_member(:pool_id, Shapes::ShapeRef.new(shape: String, location_name: "PoolId")) + CreatePoolResult.add_member(:status, Shapes::ShapeRef.new(shape: PoolStatus, location_name: "Status")) + CreatePoolResult.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, location_name: "MessageType")) + CreatePoolResult.add_member(:two_way_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "TwoWayEnabled")) + CreatePoolResult.add_member(:two_way_channel_arn, Shapes::ShapeRef.new(shape: TwoWayChannelArn, location_name: "TwoWayChannelArn")) + CreatePoolResult.add_member(:self_managed_opt_outs_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "SelfManagedOptOutsEnabled")) + CreatePoolResult.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, location_name: "OptOutListName")) + CreatePoolResult.add_member(:shared_routes_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "SharedRoutesEnabled")) + CreatePoolResult.add_member(:deletion_protection_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "DeletionProtectionEnabled")) + CreatePoolResult.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags")) + CreatePoolResult.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreatedTimestamp")) + CreatePoolResult.struct_class = Types::CreatePoolResult + + DeleteConfigurationSetRequest.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetNameOrArn, required: true, location_name: "ConfigurationSetName")) + DeleteConfigurationSetRequest.struct_class = Types::DeleteConfigurationSetRequest + + DeleteConfigurationSetResult.add_member(:configuration_set_arn, Shapes::ShapeRef.new(shape: String, location_name: "ConfigurationSetArn")) + DeleteConfigurationSetResult.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetName, location_name: "ConfigurationSetName")) + DeleteConfigurationSetResult.add_member(:event_destinations, Shapes::ShapeRef.new(shape: EventDestinationList, location_name: "EventDestinations")) + DeleteConfigurationSetResult.add_member(:default_message_type, Shapes::ShapeRef.new(shape: MessageType, location_name: "DefaultMessageType")) + DeleteConfigurationSetResult.add_member(:default_sender_id, Shapes::ShapeRef.new(shape: SenderId, location_name: "DefaultSenderId")) + DeleteConfigurationSetResult.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreatedTimestamp")) + DeleteConfigurationSetResult.struct_class = Types::DeleteConfigurationSetResult + + DeleteDefaultMessageTypeRequest.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetNameOrArn, required: true, location_name: "ConfigurationSetName")) + DeleteDefaultMessageTypeRequest.struct_class = Types::DeleteDefaultMessageTypeRequest + + DeleteDefaultMessageTypeResult.add_member(:configuration_set_arn, Shapes::ShapeRef.new(shape: String, location_name: "ConfigurationSetArn")) + DeleteDefaultMessageTypeResult.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetName, location_name: "ConfigurationSetName")) + DeleteDefaultMessageTypeResult.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, location_name: "MessageType")) + DeleteDefaultMessageTypeResult.struct_class = Types::DeleteDefaultMessageTypeResult + + DeleteDefaultSenderIdRequest.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetNameOrArn, required: true, location_name: "ConfigurationSetName")) + DeleteDefaultSenderIdRequest.struct_class = Types::DeleteDefaultSenderIdRequest + + DeleteDefaultSenderIdResult.add_member(:configuration_set_arn, Shapes::ShapeRef.new(shape: String, location_name: "ConfigurationSetArn")) + DeleteDefaultSenderIdResult.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetName, location_name: "ConfigurationSetName")) + DeleteDefaultSenderIdResult.add_member(:sender_id, Shapes::ShapeRef.new(shape: SenderId, location_name: "SenderId")) + DeleteDefaultSenderIdResult.struct_class = Types::DeleteDefaultSenderIdResult + + DeleteEventDestinationRequest.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetNameOrArn, required: true, location_name: "ConfigurationSetName")) + DeleteEventDestinationRequest.add_member(:event_destination_name, Shapes::ShapeRef.new(shape: EventDestinationName, required: true, location_name: "EventDestinationName")) + DeleteEventDestinationRequest.struct_class = Types::DeleteEventDestinationRequest + + DeleteEventDestinationResult.add_member(:configuration_set_arn, Shapes::ShapeRef.new(shape: String, location_name: "ConfigurationSetArn")) + DeleteEventDestinationResult.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetName, location_name: "ConfigurationSetName")) + DeleteEventDestinationResult.add_member(:event_destination, Shapes::ShapeRef.new(shape: EventDestination, location_name: "EventDestination")) + DeleteEventDestinationResult.struct_class = Types::DeleteEventDestinationResult + + DeleteKeywordRequest.add_member(:origination_identity, Shapes::ShapeRef.new(shape: PhoneOrPoolIdOrArn, required: true, location_name: "OriginationIdentity")) + DeleteKeywordRequest.add_member(:keyword, Shapes::ShapeRef.new(shape: Keyword, required: true, location_name: "Keyword")) + DeleteKeywordRequest.struct_class = Types::DeleteKeywordRequest + + DeleteKeywordResult.add_member(:origination_identity_arn, Shapes::ShapeRef.new(shape: String, location_name: "OriginationIdentityArn")) + DeleteKeywordResult.add_member(:origination_identity, Shapes::ShapeRef.new(shape: String, location_name: "OriginationIdentity")) + DeleteKeywordResult.add_member(:keyword, Shapes::ShapeRef.new(shape: Keyword, location_name: "Keyword")) + DeleteKeywordResult.add_member(:keyword_message, Shapes::ShapeRef.new(shape: KeywordMessage, location_name: "KeywordMessage")) + DeleteKeywordResult.add_member(:keyword_action, Shapes::ShapeRef.new(shape: KeywordAction, location_name: "KeywordAction")) + DeleteKeywordResult.struct_class = Types::DeleteKeywordResult + + DeleteOptOutListRequest.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListNameOrArn, required: true, location_name: "OptOutListName")) + DeleteOptOutListRequest.struct_class = Types::DeleteOptOutListRequest + + DeleteOptOutListResult.add_member(:opt_out_list_arn, Shapes::ShapeRef.new(shape: String, location_name: "OptOutListArn")) + DeleteOptOutListResult.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, location_name: "OptOutListName")) + DeleteOptOutListResult.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreatedTimestamp")) + DeleteOptOutListResult.struct_class = Types::DeleteOptOutListResult + + DeleteOptedOutNumberRequest.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListNameOrArn, required: true, location_name: "OptOutListName")) + DeleteOptedOutNumberRequest.add_member(:opted_out_number, Shapes::ShapeRef.new(shape: PhoneNumber, required: true, location_name: "OptedOutNumber")) + DeleteOptedOutNumberRequest.struct_class = Types::DeleteOptedOutNumberRequest + + DeleteOptedOutNumberResult.add_member(:opt_out_list_arn, Shapes::ShapeRef.new(shape: String, location_name: "OptOutListArn")) + DeleteOptedOutNumberResult.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, location_name: "OptOutListName")) + DeleteOptedOutNumberResult.add_member(:opted_out_number, Shapes::ShapeRef.new(shape: PhoneNumber, location_name: "OptedOutNumber")) + DeleteOptedOutNumberResult.add_member(:opted_out_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "OptedOutTimestamp")) + DeleteOptedOutNumberResult.add_member(:end_user_opted_out, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "EndUserOptedOut")) + DeleteOptedOutNumberResult.struct_class = Types::DeleteOptedOutNumberResult + + DeletePoolRequest.add_member(:pool_id, Shapes::ShapeRef.new(shape: PoolIdOrArn, required: true, location_name: "PoolId")) + DeletePoolRequest.struct_class = Types::DeletePoolRequest + + DeletePoolResult.add_member(:pool_arn, Shapes::ShapeRef.new(shape: String, location_name: "PoolArn")) + DeletePoolResult.add_member(:pool_id, Shapes::ShapeRef.new(shape: String, location_name: "PoolId")) + DeletePoolResult.add_member(:status, Shapes::ShapeRef.new(shape: PoolStatus, location_name: "Status")) + DeletePoolResult.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, location_name: "MessageType")) + DeletePoolResult.add_member(:two_way_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "TwoWayEnabled")) + DeletePoolResult.add_member(:two_way_channel_arn, Shapes::ShapeRef.new(shape: TwoWayChannelArn, location_name: "TwoWayChannelArn")) + DeletePoolResult.add_member(:self_managed_opt_outs_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "SelfManagedOptOutsEnabled")) + DeletePoolResult.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, location_name: "OptOutListName")) + DeletePoolResult.add_member(:shared_routes_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "SharedRoutesEnabled")) + DeletePoolResult.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreatedTimestamp")) + DeletePoolResult.struct_class = Types::DeletePoolResult + + DeleteTextMessageSpendLimitOverrideRequest.struct_class = Types::DeleteTextMessageSpendLimitOverrideRequest + + DeleteTextMessageSpendLimitOverrideResult.add_member(:monthly_limit, Shapes::ShapeRef.new(shape: MonthlyLimit, location_name: "MonthlyLimit")) + DeleteTextMessageSpendLimitOverrideResult.struct_class = Types::DeleteTextMessageSpendLimitOverrideResult + + DeleteVoiceMessageSpendLimitOverrideRequest.struct_class = Types::DeleteVoiceMessageSpendLimitOverrideRequest + + DeleteVoiceMessageSpendLimitOverrideResult.add_member(:monthly_limit, Shapes::ShapeRef.new(shape: MonthlyLimit, location_name: "MonthlyLimit")) + DeleteVoiceMessageSpendLimitOverrideResult.struct_class = Types::DeleteVoiceMessageSpendLimitOverrideResult + + DescribeAccountAttributesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeAccountAttributesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults")) + DescribeAccountAttributesRequest.struct_class = Types::DescribeAccountAttributesRequest + + DescribeAccountAttributesResult.add_member(:account_attributes, Shapes::ShapeRef.new(shape: AccountAttributeList, location_name: "AccountAttributes")) + DescribeAccountAttributesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeAccountAttributesResult.struct_class = Types::DescribeAccountAttributesResult + + DescribeAccountLimitsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeAccountLimitsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults")) + DescribeAccountLimitsRequest.struct_class = Types::DescribeAccountLimitsRequest + + DescribeAccountLimitsResult.add_member(:account_limits, Shapes::ShapeRef.new(shape: AccountLimitList, location_name: "AccountLimits")) + DescribeAccountLimitsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeAccountLimitsResult.struct_class = Types::DescribeAccountLimitsResult + + DescribeConfigurationSetsRequest.add_member(:configuration_set_names, Shapes::ShapeRef.new(shape: ConfigurationSetNameList, location_name: "ConfigurationSetNames")) + DescribeConfigurationSetsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: ConfigurationSetFilterList, location_name: "Filters")) + DescribeConfigurationSetsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeConfigurationSetsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults")) + DescribeConfigurationSetsRequest.struct_class = Types::DescribeConfigurationSetsRequest + + DescribeConfigurationSetsResult.add_member(:configuration_sets, Shapes::ShapeRef.new(shape: ConfigurationSetInformationList, location_name: "ConfigurationSets")) + DescribeConfigurationSetsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeConfigurationSetsResult.struct_class = Types::DescribeConfigurationSetsResult + + DescribeKeywordsRequest.add_member(:origination_identity, Shapes::ShapeRef.new(shape: PhoneOrPoolIdOrArn, required: true, location_name: "OriginationIdentity")) + DescribeKeywordsRequest.add_member(:keywords, Shapes::ShapeRef.new(shape: KeywordList, location_name: "Keywords")) + DescribeKeywordsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: KeywordFilterList, location_name: "Filters")) + DescribeKeywordsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeKeywordsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults")) + DescribeKeywordsRequest.struct_class = Types::DescribeKeywordsRequest + + DescribeKeywordsResult.add_member(:origination_identity_arn, Shapes::ShapeRef.new(shape: String, location_name: "OriginationIdentityArn")) + DescribeKeywordsResult.add_member(:origination_identity, Shapes::ShapeRef.new(shape: String, location_name: "OriginationIdentity")) + DescribeKeywordsResult.add_member(:keywords, Shapes::ShapeRef.new(shape: KeywordInformationList, location_name: "Keywords")) + DescribeKeywordsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeKeywordsResult.struct_class = Types::DescribeKeywordsResult + + DescribeOptOutListsRequest.add_member(:opt_out_list_names, Shapes::ShapeRef.new(shape: OptOutListNameList, location_name: "OptOutListNames")) + DescribeOptOutListsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeOptOutListsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults")) + DescribeOptOutListsRequest.struct_class = Types::DescribeOptOutListsRequest + + DescribeOptOutListsResult.add_member(:opt_out_lists, Shapes::ShapeRef.new(shape: OptOutListInformationList, location_name: "OptOutLists")) + DescribeOptOutListsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeOptOutListsResult.struct_class = Types::DescribeOptOutListsResult + + DescribeOptedOutNumbersRequest.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListNameOrArn, required: true, location_name: "OptOutListName")) + DescribeOptedOutNumbersRequest.add_member(:opted_out_numbers, Shapes::ShapeRef.new(shape: OptedOutNumberList, location_name: "OptedOutNumbers")) + DescribeOptedOutNumbersRequest.add_member(:filters, Shapes::ShapeRef.new(shape: OptedOutFilterList, location_name: "Filters")) + DescribeOptedOutNumbersRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeOptedOutNumbersRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults")) + DescribeOptedOutNumbersRequest.struct_class = Types::DescribeOptedOutNumbersRequest + + DescribeOptedOutNumbersResult.add_member(:opt_out_list_arn, Shapes::ShapeRef.new(shape: String, location_name: "OptOutListArn")) + DescribeOptedOutNumbersResult.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, location_name: "OptOutListName")) + DescribeOptedOutNumbersResult.add_member(:opted_out_numbers, Shapes::ShapeRef.new(shape: OptedOutNumberInformationList, location_name: "OptedOutNumbers")) + DescribeOptedOutNumbersResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeOptedOutNumbersResult.struct_class = Types::DescribeOptedOutNumbersResult + + DescribePhoneNumbersRequest.add_member(:phone_number_ids, Shapes::ShapeRef.new(shape: PhoneNumberIdList, location_name: "PhoneNumberIds")) + DescribePhoneNumbersRequest.add_member(:filters, Shapes::ShapeRef.new(shape: PhoneNumberFilterList, location_name: "Filters")) + DescribePhoneNumbersRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribePhoneNumbersRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults")) + DescribePhoneNumbersRequest.struct_class = Types::DescribePhoneNumbersRequest + + DescribePhoneNumbersResult.add_member(:phone_numbers, Shapes::ShapeRef.new(shape: PhoneNumberInformationList, location_name: "PhoneNumbers")) + DescribePhoneNumbersResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribePhoneNumbersResult.struct_class = Types::DescribePhoneNumbersResult + + DescribePoolsRequest.add_member(:pool_ids, Shapes::ShapeRef.new(shape: PoolIdList, location_name: "PoolIds")) + DescribePoolsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: PoolFilterList, location_name: "Filters")) + DescribePoolsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribePoolsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults")) + DescribePoolsRequest.struct_class = Types::DescribePoolsRequest + + DescribePoolsResult.add_member(:pools, Shapes::ShapeRef.new(shape: PoolInformationList, location_name: "Pools")) + DescribePoolsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribePoolsResult.struct_class = Types::DescribePoolsResult + + DescribeSenderIdsRequest.add_member(:sender_ids, Shapes::ShapeRef.new(shape: SenderIdList, location_name: "SenderIds")) + DescribeSenderIdsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: SenderIdFilterList, location_name: "Filters")) + DescribeSenderIdsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeSenderIdsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults")) + DescribeSenderIdsRequest.struct_class = Types::DescribeSenderIdsRequest + + DescribeSenderIdsResult.add_member(:sender_ids, Shapes::ShapeRef.new(shape: SenderIdInformationList, location_name: "SenderIds")) + DescribeSenderIdsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeSenderIdsResult.struct_class = Types::DescribeSenderIdsResult + + DescribeSpendLimitsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeSpendLimitsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults")) + DescribeSpendLimitsRequest.struct_class = Types::DescribeSpendLimitsRequest + + DescribeSpendLimitsResult.add_member(:spend_limits, Shapes::ShapeRef.new(shape: SpendLimitList, location_name: "SpendLimits")) + DescribeSpendLimitsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + DescribeSpendLimitsResult.struct_class = Types::DescribeSpendLimitsResult + + DestinationCountryParameters.key = Shapes::ShapeRef.new(shape: DestinationCountryParameterKey) + DestinationCountryParameters.value = Shapes::ShapeRef.new(shape: DestinationCountryParameterValue) + + DisassociateOriginationIdentityRequest.add_member(:pool_id, Shapes::ShapeRef.new(shape: PoolIdOrArn, required: true, location_name: "PoolId")) + DisassociateOriginationIdentityRequest.add_member(:origination_identity, Shapes::ShapeRef.new(shape: PhoneOrSenderIdOrArn, required: true, location_name: "OriginationIdentity")) + DisassociateOriginationIdentityRequest.add_member(:iso_country_code, Shapes::ShapeRef.new(shape: IsoCountryCode, required: true, location_name: "IsoCountryCode")) + DisassociateOriginationIdentityRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location_name: "ClientToken", metadata: {"idempotencyToken"=>true})) + DisassociateOriginationIdentityRequest.struct_class = Types::DisassociateOriginationIdentityRequest + + DisassociateOriginationIdentityResult.add_member(:pool_arn, Shapes::ShapeRef.new(shape: String, location_name: "PoolArn")) + DisassociateOriginationIdentityResult.add_member(:pool_id, Shapes::ShapeRef.new(shape: String, location_name: "PoolId")) + DisassociateOriginationIdentityResult.add_member(:origination_identity_arn, Shapes::ShapeRef.new(shape: String, location_name: "OriginationIdentityArn")) + DisassociateOriginationIdentityResult.add_member(:origination_identity, Shapes::ShapeRef.new(shape: String, location_name: "OriginationIdentity")) + DisassociateOriginationIdentityResult.add_member(:iso_country_code, Shapes::ShapeRef.new(shape: IsoCountryCode, location_name: "IsoCountryCode")) + DisassociateOriginationIdentityResult.struct_class = Types::DisassociateOriginationIdentityResult + + EventDestination.add_member(:event_destination_name, Shapes::ShapeRef.new(shape: EventDestinationName, required: true, location_name: "EventDestinationName")) + EventDestination.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "Enabled")) + EventDestination.add_member(:matching_event_types, Shapes::ShapeRef.new(shape: EventTypeList, required: true, location_name: "MatchingEventTypes")) + EventDestination.add_member(:cloud_watch_logs_destination, Shapes::ShapeRef.new(shape: CloudWatchLogsDestination, location_name: "CloudWatchLogsDestination")) + EventDestination.add_member(:kinesis_firehose_destination, Shapes::ShapeRef.new(shape: KinesisFirehoseDestination, location_name: "KinesisFirehoseDestination")) + EventDestination.add_member(:sns_destination, Shapes::ShapeRef.new(shape: SnsDestination, location_name: "SnsDestination")) + EventDestination.struct_class = Types::EventDestination + + EventDestinationList.member = Shapes::ShapeRef.new(shape: EventDestination) + + EventTypeList.member = Shapes::ShapeRef.new(shape: EventType) + + FilterValueList.member = Shapes::ShapeRef.new(shape: FilterValue) + + InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message")) + InternalServerException.add_member(:request_id, Shapes::ShapeRef.new(shape: String, location_name: "RequestId")) + InternalServerException.struct_class = Types::InternalServerException + + KeywordFilter.add_member(:name, Shapes::ShapeRef.new(shape: KeywordFilterName, required: true, location_name: "Name")) + KeywordFilter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValueList, required: true, location_name: "Values")) + KeywordFilter.struct_class = Types::KeywordFilter + + KeywordFilterList.member = Shapes::ShapeRef.new(shape: KeywordFilter) + + KeywordInformation.add_member(:keyword, Shapes::ShapeRef.new(shape: Keyword, required: true, location_name: "Keyword")) + KeywordInformation.add_member(:keyword_message, Shapes::ShapeRef.new(shape: KeywordMessage, required: true, location_name: "KeywordMessage")) + KeywordInformation.add_member(:keyword_action, Shapes::ShapeRef.new(shape: KeywordAction, required: true, location_name: "KeywordAction")) + KeywordInformation.struct_class = Types::KeywordInformation + + KeywordInformationList.member = Shapes::ShapeRef.new(shape: KeywordInformation) + + KeywordList.member = Shapes::ShapeRef.new(shape: Keyword) + + KinesisFirehoseDestination.add_member(:iam_role_arn, Shapes::ShapeRef.new(shape: IamRoleArn, required: true, location_name: "IamRoleArn")) + KinesisFirehoseDestination.add_member(:delivery_stream_arn, Shapes::ShapeRef.new(shape: DeliveryStreamArn, required: true, location_name: "DeliveryStreamArn")) + KinesisFirehoseDestination.struct_class = Types::KinesisFirehoseDestination + + ListPoolOriginationIdentitiesRequest.add_member(:pool_id, Shapes::ShapeRef.new(shape: PoolIdOrArn, required: true, location_name: "PoolId")) + ListPoolOriginationIdentitiesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: PoolOriginationIdentitiesFilterList, location_name: "Filters")) + ListPoolOriginationIdentitiesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + ListPoolOriginationIdentitiesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults")) + ListPoolOriginationIdentitiesRequest.struct_class = Types::ListPoolOriginationIdentitiesRequest + + ListPoolOriginationIdentitiesResult.add_member(:pool_arn, Shapes::ShapeRef.new(shape: String, location_name: "PoolArn")) + ListPoolOriginationIdentitiesResult.add_member(:pool_id, Shapes::ShapeRef.new(shape: String, location_name: "PoolId")) + ListPoolOriginationIdentitiesResult.add_member(:origination_identities, Shapes::ShapeRef.new(shape: OriginationIdentityMetadataList, location_name: "OriginationIdentities")) + ListPoolOriginationIdentitiesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken")) + ListPoolOriginationIdentitiesResult.struct_class = Types::ListPoolOriginationIdentitiesResult + + ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, required: true, location_name: "ResourceArn")) + ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest + + ListTagsForResourceResult.add_member(:resource_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, location_name: "ResourceArn")) + ListTagsForResourceResult.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags")) + ListTagsForResourceResult.struct_class = Types::ListTagsForResourceResult + + MessageTypeList.member = Shapes::ShapeRef.new(shape: MessageType) + + NonEmptyTagList.member = Shapes::ShapeRef.new(shape: Tag) + + NumberCapabilityList.member = Shapes::ShapeRef.new(shape: NumberCapability) + + OptOutListInformation.add_member(:opt_out_list_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "OptOutListArn")) + OptOutListInformation.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, required: true, location_name: "OptOutListName")) + OptOutListInformation.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "CreatedTimestamp")) + OptOutListInformation.struct_class = Types::OptOutListInformation + + OptOutListInformationList.member = Shapes::ShapeRef.new(shape: OptOutListInformation) + + OptOutListNameList.member = Shapes::ShapeRef.new(shape: OptOutListNameOrArn) + + OptedOutFilter.add_member(:name, Shapes::ShapeRef.new(shape: OptedOutFilterName, required: true, location_name: "Name")) + OptedOutFilter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValueList, required: true, location_name: "Values")) + OptedOutFilter.struct_class = Types::OptedOutFilter + + OptedOutFilterList.member = Shapes::ShapeRef.new(shape: OptedOutFilter) + + OptedOutNumberInformation.add_member(:opted_out_number, Shapes::ShapeRef.new(shape: PhoneNumber, required: true, location_name: "OptedOutNumber")) + OptedOutNumberInformation.add_member(:opted_out_timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "OptedOutTimestamp")) + OptedOutNumberInformation.add_member(:end_user_opted_out, Shapes::ShapeRef.new(shape: PrimitiveBoolean, required: true, location_name: "EndUserOptedOut")) + OptedOutNumberInformation.struct_class = Types::OptedOutNumberInformation + + OptedOutNumberInformationList.member = Shapes::ShapeRef.new(shape: OptedOutNumberInformation) + + OptedOutNumberList.member = Shapes::ShapeRef.new(shape: PhoneNumber) + + OriginationIdentityMetadata.add_member(:origination_identity_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "OriginationIdentityArn")) + OriginationIdentityMetadata.add_member(:origination_identity, Shapes::ShapeRef.new(shape: String, required: true, location_name: "OriginationIdentity")) + OriginationIdentityMetadata.add_member(:iso_country_code, Shapes::ShapeRef.new(shape: IsoCountryCode, required: true, location_name: "IsoCountryCode")) + OriginationIdentityMetadata.add_member(:number_capabilities, Shapes::ShapeRef.new(shape: NumberCapabilityList, required: true, location_name: "NumberCapabilities")) + OriginationIdentityMetadata.struct_class = Types::OriginationIdentityMetadata + + OriginationIdentityMetadataList.member = Shapes::ShapeRef.new(shape: OriginationIdentityMetadata) + + PhoneNumberFilter.add_member(:name, Shapes::ShapeRef.new(shape: PhoneNumberFilterName, required: true, location_name: "Name")) + PhoneNumberFilter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValueList, required: true, location_name: "Values")) + PhoneNumberFilter.struct_class = Types::PhoneNumberFilter + + PhoneNumberFilterList.member = Shapes::ShapeRef.new(shape: PhoneNumberFilter) + + PhoneNumberIdList.member = Shapes::ShapeRef.new(shape: PhoneNumberIdOrArn) + + PhoneNumberInformation.add_member(:phone_number_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "PhoneNumberArn")) + PhoneNumberInformation.add_member(:phone_number_id, Shapes::ShapeRef.new(shape: String, location_name: "PhoneNumberId")) + PhoneNumberInformation.add_member(:phone_number, Shapes::ShapeRef.new(shape: PhoneNumber, required: true, location_name: "PhoneNumber")) + PhoneNumberInformation.add_member(:status, Shapes::ShapeRef.new(shape: NumberStatus, required: true, location_name: "Status")) + PhoneNumberInformation.add_member(:iso_country_code, Shapes::ShapeRef.new(shape: IsoCountryCode, required: true, location_name: "IsoCountryCode")) + PhoneNumberInformation.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, required: true, location_name: "MessageType")) + PhoneNumberInformation.add_member(:number_capabilities, Shapes::ShapeRef.new(shape: NumberCapabilityList, required: true, location_name: "NumberCapabilities")) + PhoneNumberInformation.add_member(:number_type, Shapes::ShapeRef.new(shape: NumberType, required: true, location_name: "NumberType")) + PhoneNumberInformation.add_member(:monthly_leasing_price, Shapes::ShapeRef.new(shape: String, required: true, location_name: "MonthlyLeasingPrice")) + PhoneNumberInformation.add_member(:two_way_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, required: true, location_name: "TwoWayEnabled")) + PhoneNumberInformation.add_member(:two_way_channel_arn, Shapes::ShapeRef.new(shape: TwoWayChannelArn, location_name: "TwoWayChannelArn")) + PhoneNumberInformation.add_member(:self_managed_opt_outs_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, required: true, location_name: "SelfManagedOptOutsEnabled")) + PhoneNumberInformation.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, required: true, location_name: "OptOutListName")) + PhoneNumberInformation.add_member(:deletion_protection_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, required: true, location_name: "DeletionProtectionEnabled")) + PhoneNumberInformation.add_member(:pool_id, Shapes::ShapeRef.new(shape: String, location_name: "PoolId")) + PhoneNumberInformation.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "CreatedTimestamp")) + PhoneNumberInformation.struct_class = Types::PhoneNumberInformation + + PhoneNumberInformationList.member = Shapes::ShapeRef.new(shape: PhoneNumberInformation) + + PoolFilter.add_member(:name, Shapes::ShapeRef.new(shape: PoolFilterName, required: true, location_name: "Name")) + PoolFilter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValueList, required: true, location_name: "Values")) + PoolFilter.struct_class = Types::PoolFilter + + PoolFilterList.member = Shapes::ShapeRef.new(shape: PoolFilter) + + PoolIdList.member = Shapes::ShapeRef.new(shape: PoolIdOrArn) + + PoolInformation.add_member(:pool_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "PoolArn")) + PoolInformation.add_member(:pool_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "PoolId")) + PoolInformation.add_member(:status, Shapes::ShapeRef.new(shape: PoolStatus, required: true, location_name: "Status")) + PoolInformation.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, required: true, location_name: "MessageType")) + PoolInformation.add_member(:two_way_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, required: true, location_name: "TwoWayEnabled")) + PoolInformation.add_member(:two_way_channel_arn, Shapes::ShapeRef.new(shape: TwoWayChannelArn, location_name: "TwoWayChannelArn")) + PoolInformation.add_member(:self_managed_opt_outs_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, required: true, location_name: "SelfManagedOptOutsEnabled")) + PoolInformation.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, required: true, location_name: "OptOutListName")) + PoolInformation.add_member(:shared_routes_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, required: true, location_name: "SharedRoutesEnabled")) + PoolInformation.add_member(:deletion_protection_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, required: true, location_name: "DeletionProtectionEnabled")) + PoolInformation.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "CreatedTimestamp")) + PoolInformation.struct_class = Types::PoolInformation + + PoolInformationList.member = Shapes::ShapeRef.new(shape: PoolInformation) + + PoolOriginationIdentitiesFilter.add_member(:name, Shapes::ShapeRef.new(shape: PoolOriginationIdentitiesFilterName, required: true, location_name: "Name")) + PoolOriginationIdentitiesFilter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValueList, required: true, location_name: "Values")) + PoolOriginationIdentitiesFilter.struct_class = Types::PoolOriginationIdentitiesFilter + + PoolOriginationIdentitiesFilterList.member = Shapes::ShapeRef.new(shape: PoolOriginationIdentitiesFilter) + + PutKeywordRequest.add_member(:origination_identity, Shapes::ShapeRef.new(shape: PhoneOrPoolIdOrArn, required: true, location_name: "OriginationIdentity")) + PutKeywordRequest.add_member(:keyword, Shapes::ShapeRef.new(shape: Keyword, required: true, location_name: "Keyword")) + PutKeywordRequest.add_member(:keyword_message, Shapes::ShapeRef.new(shape: KeywordMessage, required: true, location_name: "KeywordMessage")) + PutKeywordRequest.add_member(:keyword_action, Shapes::ShapeRef.new(shape: KeywordAction, location_name: "KeywordAction")) + PutKeywordRequest.struct_class = Types::PutKeywordRequest + + PutKeywordResult.add_member(:origination_identity_arn, Shapes::ShapeRef.new(shape: String, location_name: "OriginationIdentityArn")) + PutKeywordResult.add_member(:origination_identity, Shapes::ShapeRef.new(shape: String, location_name: "OriginationIdentity")) + PutKeywordResult.add_member(:keyword, Shapes::ShapeRef.new(shape: Keyword, location_name: "Keyword")) + PutKeywordResult.add_member(:keyword_message, Shapes::ShapeRef.new(shape: KeywordMessage, location_name: "KeywordMessage")) + PutKeywordResult.add_member(:keyword_action, Shapes::ShapeRef.new(shape: KeywordAction, location_name: "KeywordAction")) + PutKeywordResult.struct_class = Types::PutKeywordResult + + PutOptedOutNumberRequest.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListNameOrArn, required: true, location_name: "OptOutListName")) + PutOptedOutNumberRequest.add_member(:opted_out_number, Shapes::ShapeRef.new(shape: PhoneNumber, required: true, location_name: "OptedOutNumber")) + PutOptedOutNumberRequest.struct_class = Types::PutOptedOutNumberRequest + + PutOptedOutNumberResult.add_member(:opt_out_list_arn, Shapes::ShapeRef.new(shape: String, location_name: "OptOutListArn")) + PutOptedOutNumberResult.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, location_name: "OptOutListName")) + PutOptedOutNumberResult.add_member(:opted_out_number, Shapes::ShapeRef.new(shape: PhoneNumber, location_name: "OptedOutNumber")) + PutOptedOutNumberResult.add_member(:opted_out_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "OptedOutTimestamp")) + PutOptedOutNumberResult.add_member(:end_user_opted_out, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "EndUserOptedOut")) + PutOptedOutNumberResult.struct_class = Types::PutOptedOutNumberResult + + ReleasePhoneNumberRequest.add_member(:phone_number_id, Shapes::ShapeRef.new(shape: PhoneNumberIdOrArn, required: true, location_name: "PhoneNumberId")) + ReleasePhoneNumberRequest.struct_class = Types::ReleasePhoneNumberRequest + + ReleasePhoneNumberResult.add_member(:phone_number_arn, Shapes::ShapeRef.new(shape: String, location_name: "PhoneNumberArn")) + ReleasePhoneNumberResult.add_member(:phone_number_id, Shapes::ShapeRef.new(shape: String, location_name: "PhoneNumberId")) + ReleasePhoneNumberResult.add_member(:phone_number, Shapes::ShapeRef.new(shape: PhoneNumber, location_name: "PhoneNumber")) + ReleasePhoneNumberResult.add_member(:status, Shapes::ShapeRef.new(shape: NumberStatus, location_name: "Status")) + ReleasePhoneNumberResult.add_member(:iso_country_code, Shapes::ShapeRef.new(shape: IsoCountryCode, location_name: "IsoCountryCode")) + ReleasePhoneNumberResult.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, location_name: "MessageType")) + ReleasePhoneNumberResult.add_member(:number_capabilities, Shapes::ShapeRef.new(shape: NumberCapabilityList, location_name: "NumberCapabilities")) + ReleasePhoneNumberResult.add_member(:number_type, Shapes::ShapeRef.new(shape: NumberType, location_name: "NumberType")) + ReleasePhoneNumberResult.add_member(:monthly_leasing_price, Shapes::ShapeRef.new(shape: String, location_name: "MonthlyLeasingPrice")) + ReleasePhoneNumberResult.add_member(:two_way_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "TwoWayEnabled")) + ReleasePhoneNumberResult.add_member(:two_way_channel_arn, Shapes::ShapeRef.new(shape: TwoWayChannelArn, location_name: "TwoWayChannelArn")) + ReleasePhoneNumberResult.add_member(:self_managed_opt_outs_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "SelfManagedOptOutsEnabled")) + ReleasePhoneNumberResult.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, location_name: "OptOutListName")) + ReleasePhoneNumberResult.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreatedTimestamp")) + ReleasePhoneNumberResult.struct_class = Types::ReleasePhoneNumberResult + + RequestPhoneNumberRequest.add_member(:iso_country_code, Shapes::ShapeRef.new(shape: IsoCountryCode, required: true, location_name: "IsoCountryCode")) + RequestPhoneNumberRequest.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, required: true, location_name: "MessageType")) + RequestPhoneNumberRequest.add_member(:number_capabilities, Shapes::ShapeRef.new(shape: NumberCapabilityList, required: true, location_name: "NumberCapabilities")) + RequestPhoneNumberRequest.add_member(:number_type, Shapes::ShapeRef.new(shape: RequestableNumberType, required: true, location_name: "NumberType")) + RequestPhoneNumberRequest.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListNameOrArn, location_name: "OptOutListName")) + RequestPhoneNumberRequest.add_member(:pool_id, Shapes::ShapeRef.new(shape: PoolIdOrArn, location_name: "PoolId")) + RequestPhoneNumberRequest.add_member(:registration_id, Shapes::ShapeRef.new(shape: RegistrationId, location_name: "RegistrationId")) + RequestPhoneNumberRequest.add_member(:deletion_protection_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "DeletionProtectionEnabled")) + RequestPhoneNumberRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags")) + RequestPhoneNumberRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location_name: "ClientToken", metadata: {"idempotencyToken"=>true})) + RequestPhoneNumberRequest.struct_class = Types::RequestPhoneNumberRequest + + RequestPhoneNumberResult.add_member(:phone_number_arn, Shapes::ShapeRef.new(shape: String, location_name: "PhoneNumberArn")) + RequestPhoneNumberResult.add_member(:phone_number_id, Shapes::ShapeRef.new(shape: String, location_name: "PhoneNumberId")) + RequestPhoneNumberResult.add_member(:phone_number, Shapes::ShapeRef.new(shape: PhoneNumber, location_name: "PhoneNumber")) + RequestPhoneNumberResult.add_member(:status, Shapes::ShapeRef.new(shape: NumberStatus, location_name: "Status")) + RequestPhoneNumberResult.add_member(:iso_country_code, Shapes::ShapeRef.new(shape: IsoCountryCode, location_name: "IsoCountryCode")) + RequestPhoneNumberResult.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, location_name: "MessageType")) + RequestPhoneNumberResult.add_member(:number_capabilities, Shapes::ShapeRef.new(shape: NumberCapabilityList, location_name: "NumberCapabilities")) + RequestPhoneNumberResult.add_member(:number_type, Shapes::ShapeRef.new(shape: RequestableNumberType, location_name: "NumberType")) + RequestPhoneNumberResult.add_member(:monthly_leasing_price, Shapes::ShapeRef.new(shape: String, location_name: "MonthlyLeasingPrice")) + RequestPhoneNumberResult.add_member(:two_way_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "TwoWayEnabled")) + RequestPhoneNumberResult.add_member(:two_way_channel_arn, Shapes::ShapeRef.new(shape: TwoWayChannelArn, location_name: "TwoWayChannelArn")) + RequestPhoneNumberResult.add_member(:self_managed_opt_outs_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "SelfManagedOptOutsEnabled")) + RequestPhoneNumberResult.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, location_name: "OptOutListName")) + RequestPhoneNumberResult.add_member(:deletion_protection_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "DeletionProtectionEnabled")) + RequestPhoneNumberResult.add_member(:pool_id, Shapes::ShapeRef.new(shape: String, location_name: "PoolId")) + RequestPhoneNumberResult.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags")) + RequestPhoneNumberResult.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreatedTimestamp")) + RequestPhoneNumberResult.struct_class = Types::RequestPhoneNumberResult + + ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message")) + ResourceNotFoundException.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "ResourceType")) + ResourceNotFoundException.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "ResourceId")) + ResourceNotFoundException.struct_class = Types::ResourceNotFoundException + + SendTextMessageRequest.add_member(:destination_phone_number, Shapes::ShapeRef.new(shape: PhoneNumber, required: true, location_name: "DestinationPhoneNumber")) + SendTextMessageRequest.add_member(:origination_identity, Shapes::ShapeRef.new(shape: TextMessageOriginationIdentity, location_name: "OriginationIdentity")) + SendTextMessageRequest.add_member(:message_body, Shapes::ShapeRef.new(shape: TextMessageBody, location_name: "MessageBody")) + SendTextMessageRequest.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, location_name: "MessageType")) + SendTextMessageRequest.add_member(:keyword, Shapes::ShapeRef.new(shape: Keyword, location_name: "Keyword")) + SendTextMessageRequest.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetNameOrArn, location_name: "ConfigurationSetName")) + SendTextMessageRequest.add_member(:max_price, Shapes::ShapeRef.new(shape: MaxPrice, location_name: "MaxPrice")) + SendTextMessageRequest.add_member(:time_to_live, Shapes::ShapeRef.new(shape: TimeToLive, location_name: "TimeToLive")) + SendTextMessageRequest.add_member(:context, Shapes::ShapeRef.new(shape: ContextMap, location_name: "Context")) + SendTextMessageRequest.add_member(:destination_country_parameters, Shapes::ShapeRef.new(shape: DestinationCountryParameters, location_name: "DestinationCountryParameters")) + SendTextMessageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "DryRun")) + SendTextMessageRequest.struct_class = Types::SendTextMessageRequest + + SendTextMessageResult.add_member(:message_id, Shapes::ShapeRef.new(shape: String, location_name: "MessageId")) + SendTextMessageResult.struct_class = Types::SendTextMessageResult + + SendVoiceMessageRequest.add_member(:destination_phone_number, Shapes::ShapeRef.new(shape: PhoneNumber, required: true, location_name: "DestinationPhoneNumber")) + SendVoiceMessageRequest.add_member(:origination_identity, Shapes::ShapeRef.new(shape: VoiceMessageOriginationIdentity, required: true, location_name: "OriginationIdentity")) + SendVoiceMessageRequest.add_member(:message_body, Shapes::ShapeRef.new(shape: VoiceMessageBody, location_name: "MessageBody")) + SendVoiceMessageRequest.add_member(:message_body_text_type, Shapes::ShapeRef.new(shape: VoiceMessageBodyTextType, location_name: "MessageBodyTextType")) + SendVoiceMessageRequest.add_member(:voice_id, Shapes::ShapeRef.new(shape: VoiceId, location_name: "VoiceId")) + SendVoiceMessageRequest.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetNameOrArn, location_name: "ConfigurationSetName")) + SendVoiceMessageRequest.add_member(:max_price_per_minute, Shapes::ShapeRef.new(shape: MaxPrice, location_name: "MaxPricePerMinute")) + SendVoiceMessageRequest.add_member(:time_to_live, Shapes::ShapeRef.new(shape: TimeToLive, location_name: "TimeToLive")) + SendVoiceMessageRequest.add_member(:context, Shapes::ShapeRef.new(shape: ContextMap, location_name: "Context")) + SendVoiceMessageRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "DryRun")) + SendVoiceMessageRequest.struct_class = Types::SendVoiceMessageRequest + + SendVoiceMessageResult.add_member(:message_id, Shapes::ShapeRef.new(shape: String, location_name: "MessageId")) + SendVoiceMessageResult.struct_class = Types::SendVoiceMessageResult + + SenderIdAndCountry.add_member(:sender_id, Shapes::ShapeRef.new(shape: SenderIdOrArn, required: true, location_name: "SenderId")) + SenderIdAndCountry.add_member(:iso_country_code, Shapes::ShapeRef.new(shape: IsoCountryCode, required: true, location_name: "IsoCountryCode")) + SenderIdAndCountry.struct_class = Types::SenderIdAndCountry + + SenderIdFilter.add_member(:name, Shapes::ShapeRef.new(shape: SenderIdFilterName, required: true, location_name: "Name")) + SenderIdFilter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValueList, required: true, location_name: "Values")) + SenderIdFilter.struct_class = Types::SenderIdFilter + + SenderIdFilterList.member = Shapes::ShapeRef.new(shape: SenderIdFilter) + + SenderIdInformation.add_member(:sender_id_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "SenderIdArn")) + SenderIdInformation.add_member(:sender_id, Shapes::ShapeRef.new(shape: SenderId, required: true, location_name: "SenderId")) + SenderIdInformation.add_member(:iso_country_code, Shapes::ShapeRef.new(shape: IsoCountryCode, required: true, location_name: "IsoCountryCode")) + SenderIdInformation.add_member(:message_types, Shapes::ShapeRef.new(shape: MessageTypeList, required: true, location_name: "MessageTypes")) + SenderIdInformation.add_member(:monthly_leasing_price, Shapes::ShapeRef.new(shape: String, required: true, location_name: "MonthlyLeasingPrice")) + SenderIdInformation.struct_class = Types::SenderIdInformation + + SenderIdInformationList.member = Shapes::ShapeRef.new(shape: SenderIdInformation) + + SenderIdList.member = Shapes::ShapeRef.new(shape: SenderIdAndCountry) + + ServiceQuotaExceededException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message")) + ServiceQuotaExceededException.add_member(:reason, Shapes::ShapeRef.new(shape: ServiceQuotaExceededExceptionReason, location_name: "Reason")) + ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException + + SetDefaultMessageTypeRequest.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetNameOrArn, required: true, location_name: "ConfigurationSetName")) + SetDefaultMessageTypeRequest.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, required: true, location_name: "MessageType")) + SetDefaultMessageTypeRequest.struct_class = Types::SetDefaultMessageTypeRequest + + SetDefaultMessageTypeResult.add_member(:configuration_set_arn, Shapes::ShapeRef.new(shape: String, location_name: "ConfigurationSetArn")) + SetDefaultMessageTypeResult.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetName, location_name: "ConfigurationSetName")) + SetDefaultMessageTypeResult.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, location_name: "MessageType")) + SetDefaultMessageTypeResult.struct_class = Types::SetDefaultMessageTypeResult + + SetDefaultSenderIdRequest.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetNameOrArn, required: true, location_name: "ConfigurationSetName")) + SetDefaultSenderIdRequest.add_member(:sender_id, Shapes::ShapeRef.new(shape: SenderId, required: true, location_name: "SenderId")) + SetDefaultSenderIdRequest.struct_class = Types::SetDefaultSenderIdRequest + + SetDefaultSenderIdResult.add_member(:configuration_set_arn, Shapes::ShapeRef.new(shape: String, location_name: "ConfigurationSetArn")) + SetDefaultSenderIdResult.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetName, location_name: "ConfigurationSetName")) + SetDefaultSenderIdResult.add_member(:sender_id, Shapes::ShapeRef.new(shape: SenderId, location_name: "SenderId")) + SetDefaultSenderIdResult.struct_class = Types::SetDefaultSenderIdResult + + SetTextMessageSpendLimitOverrideRequest.add_member(:monthly_limit, Shapes::ShapeRef.new(shape: MonthlyLimit, required: true, location_name: "MonthlyLimit")) + SetTextMessageSpendLimitOverrideRequest.struct_class = Types::SetTextMessageSpendLimitOverrideRequest + + SetTextMessageSpendLimitOverrideResult.add_member(:monthly_limit, Shapes::ShapeRef.new(shape: MonthlyLimit, location_name: "MonthlyLimit")) + SetTextMessageSpendLimitOverrideResult.struct_class = Types::SetTextMessageSpendLimitOverrideResult + + SetVoiceMessageSpendLimitOverrideRequest.add_member(:monthly_limit, Shapes::ShapeRef.new(shape: MonthlyLimit, required: true, location_name: "MonthlyLimit")) + SetVoiceMessageSpendLimitOverrideRequest.struct_class = Types::SetVoiceMessageSpendLimitOverrideRequest + + SetVoiceMessageSpendLimitOverrideResult.add_member(:monthly_limit, Shapes::ShapeRef.new(shape: MonthlyLimit, location_name: "MonthlyLimit")) + SetVoiceMessageSpendLimitOverrideResult.struct_class = Types::SetVoiceMessageSpendLimitOverrideResult + + SnsDestination.add_member(:topic_arn, Shapes::ShapeRef.new(shape: SnsTopicArn, required: true, location_name: "TopicArn")) + SnsDestination.struct_class = Types::SnsDestination + + SpendLimit.add_member(:name, Shapes::ShapeRef.new(shape: SpendLimitName, required: true, location_name: "Name")) + SpendLimit.add_member(:enforced_limit, Shapes::ShapeRef.new(shape: PrimitiveLong, required: true, location_name: "EnforcedLimit")) + SpendLimit.add_member(:max_limit, Shapes::ShapeRef.new(shape: PrimitiveLong, required: true, location_name: "MaxLimit")) + SpendLimit.add_member(:overridden, Shapes::ShapeRef.new(shape: PrimitiveBoolean, required: true, location_name: "Overridden")) + SpendLimit.struct_class = Types::SpendLimit + + SpendLimitList.member = Shapes::ShapeRef.new(shape: SpendLimit) + + Tag.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "Key")) + Tag.add_member(:value, Shapes::ShapeRef.new(shape: TagValue, required: true, location_name: "Value")) + Tag.struct_class = Types::Tag + + TagKeyList.member = Shapes::ShapeRef.new(shape: TagKey) + + TagList.member = Shapes::ShapeRef.new(shape: Tag) + + TagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, required: true, location_name: "ResourceArn")) + TagResourceRequest.add_member(:tags, Shapes::ShapeRef.new(shape: NonEmptyTagList, required: true, location_name: "Tags")) + TagResourceRequest.struct_class = Types::TagResourceRequest + + TagResourceResult.struct_class = Types::TagResourceResult + + ThrottlingException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message")) + ThrottlingException.struct_class = Types::ThrottlingException + + UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, required: true, location_name: "ResourceArn")) + UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location_name: "TagKeys")) + UntagResourceRequest.struct_class = Types::UntagResourceRequest + + UntagResourceResult.struct_class = Types::UntagResourceResult + + UpdateEventDestinationRequest.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetNameOrArn, required: true, location_name: "ConfigurationSetName")) + UpdateEventDestinationRequest.add_member(:event_destination_name, Shapes::ShapeRef.new(shape: EventDestinationName, required: true, location_name: "EventDestinationName")) + UpdateEventDestinationRequest.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "Enabled")) + UpdateEventDestinationRequest.add_member(:matching_event_types, Shapes::ShapeRef.new(shape: EventTypeList, location_name: "MatchingEventTypes")) + UpdateEventDestinationRequest.add_member(:cloud_watch_logs_destination, Shapes::ShapeRef.new(shape: CloudWatchLogsDestination, location_name: "CloudWatchLogsDestination")) + UpdateEventDestinationRequest.add_member(:kinesis_firehose_destination, Shapes::ShapeRef.new(shape: KinesisFirehoseDestination, location_name: "KinesisFirehoseDestination")) + UpdateEventDestinationRequest.add_member(:sns_destination, Shapes::ShapeRef.new(shape: SnsDestination, location_name: "SnsDestination")) + UpdateEventDestinationRequest.struct_class = Types::UpdateEventDestinationRequest + + UpdateEventDestinationResult.add_member(:configuration_set_arn, Shapes::ShapeRef.new(shape: String, location_name: "ConfigurationSetArn")) + UpdateEventDestinationResult.add_member(:configuration_set_name, Shapes::ShapeRef.new(shape: ConfigurationSetName, location_name: "ConfigurationSetName")) + UpdateEventDestinationResult.add_member(:event_destination, Shapes::ShapeRef.new(shape: EventDestination, location_name: "EventDestination")) + UpdateEventDestinationResult.struct_class = Types::UpdateEventDestinationResult + + UpdatePhoneNumberRequest.add_member(:phone_number_id, Shapes::ShapeRef.new(shape: PhoneNumberIdOrArn, required: true, location_name: "PhoneNumberId")) + UpdatePhoneNumberRequest.add_member(:two_way_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "TwoWayEnabled")) + UpdatePhoneNumberRequest.add_member(:two_way_channel_arn, Shapes::ShapeRef.new(shape: TwoWayChannelArn, location_name: "TwoWayChannelArn")) + UpdatePhoneNumberRequest.add_member(:self_managed_opt_outs_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "SelfManagedOptOutsEnabled")) + UpdatePhoneNumberRequest.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListNameOrArn, location_name: "OptOutListName")) + UpdatePhoneNumberRequest.add_member(:deletion_protection_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "DeletionProtectionEnabled")) + UpdatePhoneNumberRequest.struct_class = Types::UpdatePhoneNumberRequest + + UpdatePhoneNumberResult.add_member(:phone_number_arn, Shapes::ShapeRef.new(shape: String, location_name: "PhoneNumberArn")) + UpdatePhoneNumberResult.add_member(:phone_number_id, Shapes::ShapeRef.new(shape: String, location_name: "PhoneNumberId")) + UpdatePhoneNumberResult.add_member(:phone_number, Shapes::ShapeRef.new(shape: PhoneNumber, location_name: "PhoneNumber")) + UpdatePhoneNumberResult.add_member(:status, Shapes::ShapeRef.new(shape: NumberStatus, location_name: "Status")) + UpdatePhoneNumberResult.add_member(:iso_country_code, Shapes::ShapeRef.new(shape: IsoCountryCode, location_name: "IsoCountryCode")) + UpdatePhoneNumberResult.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, location_name: "MessageType")) + UpdatePhoneNumberResult.add_member(:number_capabilities, Shapes::ShapeRef.new(shape: NumberCapabilityList, location_name: "NumberCapabilities")) + UpdatePhoneNumberResult.add_member(:number_type, Shapes::ShapeRef.new(shape: NumberType, location_name: "NumberType")) + UpdatePhoneNumberResult.add_member(:monthly_leasing_price, Shapes::ShapeRef.new(shape: String, location_name: "MonthlyLeasingPrice")) + UpdatePhoneNumberResult.add_member(:two_way_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "TwoWayEnabled")) + UpdatePhoneNumberResult.add_member(:two_way_channel_arn, Shapes::ShapeRef.new(shape: TwoWayChannelArn, location_name: "TwoWayChannelArn")) + UpdatePhoneNumberResult.add_member(:self_managed_opt_outs_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "SelfManagedOptOutsEnabled")) + UpdatePhoneNumberResult.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, location_name: "OptOutListName")) + UpdatePhoneNumberResult.add_member(:deletion_protection_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "DeletionProtectionEnabled")) + UpdatePhoneNumberResult.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreatedTimestamp")) + UpdatePhoneNumberResult.struct_class = Types::UpdatePhoneNumberResult + + UpdatePoolRequest.add_member(:pool_id, Shapes::ShapeRef.new(shape: PoolIdOrArn, required: true, location_name: "PoolId")) + UpdatePoolRequest.add_member(:two_way_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "TwoWayEnabled")) + UpdatePoolRequest.add_member(:two_way_channel_arn, Shapes::ShapeRef.new(shape: TwoWayChannelArn, location_name: "TwoWayChannelArn")) + UpdatePoolRequest.add_member(:self_managed_opt_outs_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "SelfManagedOptOutsEnabled")) + UpdatePoolRequest.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListNameOrArn, location_name: "OptOutListName")) + UpdatePoolRequest.add_member(:shared_routes_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "SharedRoutesEnabled")) + UpdatePoolRequest.add_member(:deletion_protection_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "DeletionProtectionEnabled")) + UpdatePoolRequest.struct_class = Types::UpdatePoolRequest + + UpdatePoolResult.add_member(:pool_arn, Shapes::ShapeRef.new(shape: String, location_name: "PoolArn")) + UpdatePoolResult.add_member(:pool_id, Shapes::ShapeRef.new(shape: String, location_name: "PoolId")) + UpdatePoolResult.add_member(:status, Shapes::ShapeRef.new(shape: PoolStatus, location_name: "Status")) + UpdatePoolResult.add_member(:message_type, Shapes::ShapeRef.new(shape: MessageType, location_name: "MessageType")) + UpdatePoolResult.add_member(:two_way_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "TwoWayEnabled")) + UpdatePoolResult.add_member(:two_way_channel_arn, Shapes::ShapeRef.new(shape: TwoWayChannelArn, location_name: "TwoWayChannelArn")) + UpdatePoolResult.add_member(:self_managed_opt_outs_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "SelfManagedOptOutsEnabled")) + UpdatePoolResult.add_member(:opt_out_list_name, Shapes::ShapeRef.new(shape: OptOutListName, location_name: "OptOutListName")) + UpdatePoolResult.add_member(:shared_routes_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "SharedRoutesEnabled")) + UpdatePoolResult.add_member(:deletion_protection_enabled, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "DeletionProtectionEnabled")) + UpdatePoolResult.add_member(:created_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreatedTimestamp")) + UpdatePoolResult.struct_class = Types::UpdatePoolResult + + ValidationException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message")) + ValidationException.add_member(:reason, Shapes::ShapeRef.new(shape: ValidationExceptionReason, location_name: "Reason")) + ValidationException.add_member(:fields, Shapes::ShapeRef.new(shape: ValidationExceptionFieldList, location_name: "Fields")) + ValidationException.struct_class = Types::ValidationException + + ValidationExceptionField.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Name")) + ValidationExceptionField.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Message")) + ValidationExceptionField.struct_class = Types::ValidationExceptionField + + ValidationExceptionFieldList.member = Shapes::ShapeRef.new(shape: ValidationExceptionField) + + + # @api private + API = Seahorse::Model::Api.new.tap do |api| + + api.version = "2022-03-31" + + api.metadata = { + "apiVersion" => "2022-03-31", + "endpointPrefix" => "sms-voice", + "jsonVersion" => "1.0", + "protocol" => "json", + "serviceFullName" => "Amazon Pinpoint SMS Voice V2", + "serviceId" => "Pinpoint SMS Voice V2", + "signatureVersion" => "v4", + "signingName" => "sms-voice", + "targetPrefix" => "PinpointSMSVoiceV2", + "uid" => "pinpoint-sms-voice-v2-2022-03-31", + } + + api.add_operation(:associate_origination_identity, Seahorse::Model::Operation.new.tap do |o| + o.name = "AssociateOriginationIdentity" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: AssociateOriginationIdentityRequest) + o.output = Shapes::ShapeRef.new(shape: AssociateOriginationIdentityResult) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:create_configuration_set, Seahorse::Model::Operation.new.tap do |o| + o.name = "CreateConfigurationSet" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: CreateConfigurationSetRequest) + o.output = Shapes::ShapeRef.new(shape: CreateConfigurationSetResult) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:create_event_destination, Seahorse::Model::Operation.new.tap do |o| + o.name = "CreateEventDestination" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: CreateEventDestinationRequest) + o.output = Shapes::ShapeRef.new(shape: CreateEventDestinationResult) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:create_opt_out_list, Seahorse::Model::Operation.new.tap do |o| + o.name = "CreateOptOutList" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: CreateOptOutListRequest) + o.output = Shapes::ShapeRef.new(shape: CreateOptOutListResult) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:create_pool, Seahorse::Model::Operation.new.tap do |o| + o.name = "CreatePool" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: CreatePoolRequest) + o.output = Shapes::ShapeRef.new(shape: CreatePoolResult) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:delete_configuration_set, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteConfigurationSet" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeleteConfigurationSetRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteConfigurationSetResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:delete_default_message_type, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteDefaultMessageType" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeleteDefaultMessageTypeRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteDefaultMessageTypeResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:delete_default_sender_id, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteDefaultSenderId" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeleteDefaultSenderIdRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteDefaultSenderIdResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:delete_event_destination, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteEventDestination" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeleteEventDestinationRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteEventDestinationResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:delete_keyword, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteKeyword" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeleteKeywordRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteKeywordResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:delete_opt_out_list, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteOptOutList" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeleteOptOutListRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteOptOutListResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:delete_opted_out_number, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteOptedOutNumber" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeleteOptedOutNumberRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteOptedOutNumberResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:delete_pool, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeletePool" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeletePoolRequest) + o.output = Shapes::ShapeRef.new(shape: DeletePoolResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:delete_text_message_spend_limit_override, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteTextMessageSpendLimitOverride" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeleteTextMessageSpendLimitOverrideRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteTextMessageSpendLimitOverrideResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:delete_voice_message_spend_limit_override, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteVoiceMessageSpendLimitOverride" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeleteVoiceMessageSpendLimitOverrideRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteVoiceMessageSpendLimitOverrideResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:describe_account_attributes, Seahorse::Model::Operation.new.tap do |o| + o.name = "DescribeAccountAttributes" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DescribeAccountAttributesRequest) + o.output = Shapes::ShapeRef.new(shape: DescribeAccountAttributesResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:describe_account_limits, Seahorse::Model::Operation.new.tap do |o| + o.name = "DescribeAccountLimits" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DescribeAccountLimitsRequest) + o.output = Shapes::ShapeRef.new(shape: DescribeAccountLimitsResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:describe_configuration_sets, Seahorse::Model::Operation.new.tap do |o| + o.name = "DescribeConfigurationSets" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DescribeConfigurationSetsRequest) + o.output = Shapes::ShapeRef.new(shape: DescribeConfigurationSetsResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:describe_keywords, Seahorse::Model::Operation.new.tap do |o| + o.name = "DescribeKeywords" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DescribeKeywordsRequest) + o.output = Shapes::ShapeRef.new(shape: DescribeKeywordsResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:describe_opt_out_lists, Seahorse::Model::Operation.new.tap do |o| + o.name = "DescribeOptOutLists" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DescribeOptOutListsRequest) + o.output = Shapes::ShapeRef.new(shape: DescribeOptOutListsResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:describe_opted_out_numbers, Seahorse::Model::Operation.new.tap do |o| + o.name = "DescribeOptedOutNumbers" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DescribeOptedOutNumbersRequest) + o.output = Shapes::ShapeRef.new(shape: DescribeOptedOutNumbersResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:describe_phone_numbers, Seahorse::Model::Operation.new.tap do |o| + o.name = "DescribePhoneNumbers" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DescribePhoneNumbersRequest) + o.output = Shapes::ShapeRef.new(shape: DescribePhoneNumbersResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:describe_pools, Seahorse::Model::Operation.new.tap do |o| + o.name = "DescribePools" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DescribePoolsRequest) + o.output = Shapes::ShapeRef.new(shape: DescribePoolsResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:describe_sender_ids, Seahorse::Model::Operation.new.tap do |o| + o.name = "DescribeSenderIds" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DescribeSenderIdsRequest) + o.output = Shapes::ShapeRef.new(shape: DescribeSenderIdsResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:describe_spend_limits, Seahorse::Model::Operation.new.tap do |o| + o.name = "DescribeSpendLimits" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DescribeSpendLimitsRequest) + o.output = Shapes::ShapeRef.new(shape: DescribeSpendLimitsResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:disassociate_origination_identity, Seahorse::Model::Operation.new.tap do |o| + o.name = "DisassociateOriginationIdentity" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DisassociateOriginationIdentityRequest) + o.output = Shapes::ShapeRef.new(shape: DisassociateOriginationIdentityResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:list_pool_origination_identities, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListPoolOriginationIdentities" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: ListPoolOriginationIdentitiesRequest) + o.output = Shapes::ShapeRef.new(shape: ListPoolOriginationIdentitiesResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListTagsForResource" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: ListTagsForResourceRequest) + o.output = Shapes::ShapeRef.new(shape: ListTagsForResourceResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:put_keyword, Seahorse::Model::Operation.new.tap do |o| + o.name = "PutKeyword" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: PutKeywordRequest) + o.output = Shapes::ShapeRef.new(shape: PutKeywordResult) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:put_opted_out_number, Seahorse::Model::Operation.new.tap do |o| + o.name = "PutOptedOutNumber" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: PutOptedOutNumberRequest) + o.output = Shapes::ShapeRef.new(shape: PutOptedOutNumberResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:release_phone_number, Seahorse::Model::Operation.new.tap do |o| + o.name = "ReleasePhoneNumber" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: ReleasePhoneNumberRequest) + o.output = Shapes::ShapeRef.new(shape: ReleasePhoneNumberResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:request_phone_number, Seahorse::Model::Operation.new.tap do |o| + o.name = "RequestPhoneNumber" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: RequestPhoneNumberRequest) + o.output = Shapes::ShapeRef.new(shape: RequestPhoneNumberResult) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:send_text_message, Seahorse::Model::Operation.new.tap do |o| + o.name = "SendTextMessage" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: SendTextMessageRequest) + o.output = Shapes::ShapeRef.new(shape: SendTextMessageResult) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:send_voice_message, Seahorse::Model::Operation.new.tap do |o| + o.name = "SendVoiceMessage" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: SendVoiceMessageRequest) + o.output = Shapes::ShapeRef.new(shape: SendVoiceMessageResult) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:set_default_message_type, Seahorse::Model::Operation.new.tap do |o| + o.name = "SetDefaultMessageType" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: SetDefaultMessageTypeRequest) + o.output = Shapes::ShapeRef.new(shape: SetDefaultMessageTypeResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:set_default_sender_id, Seahorse::Model::Operation.new.tap do |o| + o.name = "SetDefaultSenderId" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: SetDefaultSenderIdRequest) + o.output = Shapes::ShapeRef.new(shape: SetDefaultSenderIdResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:set_text_message_spend_limit_override, Seahorse::Model::Operation.new.tap do |o| + o.name = "SetTextMessageSpendLimitOverride" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: SetTextMessageSpendLimitOverrideRequest) + o.output = Shapes::ShapeRef.new(shape: SetTextMessageSpendLimitOverrideResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:set_voice_message_spend_limit_override, Seahorse::Model::Operation.new.tap do |o| + o.name = "SetVoiceMessageSpendLimitOverride" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: SetVoiceMessageSpendLimitOverrideRequest) + o.output = Shapes::ShapeRef.new(shape: SetVoiceMessageSpendLimitOverrideResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o| + o.name = "TagResource" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: TagResourceRequest) + o.output = Shapes::ShapeRef.new(shape: TagResourceResult) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o| + o.name = "UntagResource" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: UntagResourceRequest) + o.output = Shapes::ShapeRef.new(shape: UntagResourceResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:update_event_destination, Seahorse::Model::Operation.new.tap do |o| + o.name = "UpdateEventDestination" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: UpdateEventDestinationRequest) + o.output = Shapes::ShapeRef.new(shape: UpdateEventDestinationResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:update_phone_number, Seahorse::Model::Operation.new.tap do |o| + o.name = "UpdatePhoneNumber" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: UpdatePhoneNumberRequest) + o.output = Shapes::ShapeRef.new(shape: UpdatePhoneNumberResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + + api.add_operation(:update_pool, Seahorse::Model::Operation.new.tap do |o| + o.name = "UpdatePool" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: UpdatePoolRequest) + o.output = Shapes::ShapeRef.new(shape: UpdatePoolResult) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + end) + end + + end +end diff --git a/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/customizations.rb b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/customizations.rb new file mode 100644 index 00000000000..e69de29bb2d diff --git a/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/errors.rb b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/errors.rb new file mode 100644 index 00000000000..529328c7e07 --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/errors.rb @@ -0,0 +1,212 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws::PinpointSMSVoiceV2 + + # When PinpointSMSVoiceV2 returns an error response, the Ruby SDK constructs and raises an error. + # These errors all extend Aws::PinpointSMSVoiceV2::Errors::ServiceError < {Aws::Errors::ServiceError} + # + # You can rescue all PinpointSMSVoiceV2 errors using ServiceError: + # + # begin + # # do stuff + # rescue Aws::PinpointSMSVoiceV2::Errors::ServiceError + # # rescues all PinpointSMSVoiceV2 API errors + # end + # + # + # ## Request Context + # ServiceError objects have a {Aws::Errors::ServiceError#context #context} method that returns + # information about the request that generated the error. + # See {Seahorse::Client::RequestContext} for more information. + # + # ## Error Classes + # * {AccessDeniedException} + # * {ConflictException} + # * {InternalServerException} + # * {ResourceNotFoundException} + # * {ServiceQuotaExceededException} + # * {ThrottlingException} + # * {ValidationException} + # + # Additionally, error classes are dynamically generated for service errors based on the error code + # if they are not defined above. + module Errors + + extend Aws::Errors::DynamicErrors + + class AccessDeniedException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PinpointSMSVoiceV2::Types::AccessDeniedException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + # @return [String] + def reason + @data[:reason] + end + end + + class ConflictException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PinpointSMSVoiceV2::Types::ConflictException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + # @return [String] + def reason + @data[:reason] + end + + # @return [String] + def resource_type + @data[:resource_type] + end + + # @return [String] + def resource_id + @data[:resource_id] + end + end + + class InternalServerException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PinpointSMSVoiceV2::Types::InternalServerException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + # @return [String] + def request_id + @data[:request_id] + end + + def retryable? + true + end + end + + class ResourceNotFoundException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PinpointSMSVoiceV2::Types::ResourceNotFoundException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + # @return [String] + def resource_type + @data[:resource_type] + end + + # @return [String] + def resource_id + @data[:resource_id] + end + end + + class ServiceQuotaExceededException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PinpointSMSVoiceV2::Types::ServiceQuotaExceededException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + # @return [String] + def reason + @data[:reason] + end + end + + class ThrottlingException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PinpointSMSVoiceV2::Types::ThrottlingException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + def retryable? + true + end + + def throttling? + true + end + end + + class ValidationException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::PinpointSMSVoiceV2::Types::ValidationException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + # @return [String] + def reason + @data[:reason] + end + + # @return [String] + def fields + @data[:fields] + end + end + + end +end diff --git a/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/resource.rb b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/resource.rb new file mode 100644 index 00000000000..a6a64ab3b0b --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/resource.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws::PinpointSMSVoiceV2 + + class Resource + + # @param options ({}) + # @option options [Client] :client + def initialize(options = {}) + @client = options[:client] || Client.new(options) + end + + # @return [Client] + def client + @client + end + + end +end diff --git a/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/types.rb b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/types.rb new file mode 100644 index 00000000000..f4c9517f896 --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/types.rb @@ -0,0 +1,4130 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +module Aws::PinpointSMSVoiceV2 + module Types + + # The request was denied because you don't have sufficient permissions + # to access the resource. + # + # @!attribute [rw] message + # @return [String] + # + # @!attribute [rw] reason + # The reason for the exception. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/AccessDeniedException AWS API Documentation + # + class AccessDeniedException < Struct.new( + :message, + :reason) + SENSITIVE = [] + include Aws::Structure + end + + # Displays the attributes associated with a single Amazon Web Services + # account. + # + # @!attribute [rw] name + # The name of the account attribute. + # @return [String] + # + # @!attribute [rw] value + # The value associated with the account attribute name. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/AccountAttribute AWS API Documentation + # + class AccountAttribute < Struct.new( + :name, + :value) + SENSITIVE = [] + include Aws::Structure + end + + # The current resource quotas associated with an Amazon Web Services + # account. + # + # @!attribute [rw] name + # The name of the attribute to apply the account limit to. + # @return [String] + # + # @!attribute [rw] used + # The current amount that has been spent, in US dollars. + # @return [Integer] + # + # @!attribute [rw] max + # The Amazon Web Services set limit for that resource type, in US + # dollars. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/AccountLimit AWS API Documentation + # + class AccountLimit < Struct.new( + :name, + :used, + :max) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass AssociateOriginationIdentityRequest + # data as a hash: + # + # { + # pool_id: "PoolIdOrArn", # required + # origination_identity: "PhoneOrSenderIdOrArn", # required + # iso_country_code: "IsoCountryCode", # required + # client_token: "ClientToken", + # } + # + # @!attribute [rw] pool_id + # The pool to update with the new Identity. This value can be either + # the PoolId or PoolArn, and you can find these values using + # DescribePools. + # @return [String] + # + # @!attribute [rw] origination_identity + # The origination identity to use, such as PhoneNumberId, + # PhoneNumberArn, SenderId, or SenderIdArn. You can use + # DescribePhoneNumbers to find the values for PhoneNumberId and + # PhoneNumberArn, while DescribeSenderIds can be used to get the + # values for SenderId and SenderIdArn. + # @return [String] + # + # @!attribute [rw] iso_country_code + # The new two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region of the origination identity. + # @return [String] + # + # @!attribute [rw] client_token + # Unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/AssociateOriginationIdentityRequest AWS API Documentation + # + class AssociateOriginationIdentityRequest < Struct.new( + :pool_id, + :origination_identity, + :iso_country_code, + :client_token) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] pool_arn + # The Amazon Resource Name (ARN) of the pool that is now associated + # with the origination identity. + # @return [String] + # + # @!attribute [rw] pool_id + # The PoolId of the pool that is now associated with the origination + # identity. + # @return [String] + # + # @!attribute [rw] origination_identity_arn + # The PhoneNumberArn or SenderIdArn of the origination identity. + # @return [String] + # + # @!attribute [rw] origination_identity + # The PhoneNumberId or SenderId of the origination identity. + # @return [String] + # + # @!attribute [rw] iso_country_code + # The two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/AssociateOriginationIdentityResult AWS API Documentation + # + class AssociateOriginationIdentityResult < Struct.new( + :pool_arn, + :pool_id, + :origination_identity_arn, + :origination_identity, + :iso_country_code) + SENSITIVE = [] + include Aws::Structure + end + + # Contains the destination configuration to use when publishing message + # sending events. + # + # @note When making an API call, you may pass CloudWatchLogsDestination + # data as a hash: + # + # { + # iam_role_arn: "IamRoleArn", # required + # log_group_arn: "LogGroupArn", # required + # } + # + # @!attribute [rw] iam_role_arn + # The Amazon Resource Name (ARN) of an Amazon Identity and Access + # Management (IAM) role that is able to write event data to an Amazon + # CloudWatch destination. + # @return [String] + # + # @!attribute [rw] log_group_arn + # The name of the Amazon CloudWatch log group that you want to record + # events in. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/CloudWatchLogsDestination AWS API Documentation + # + class CloudWatchLogsDestination < Struct.new( + :iam_role_arn, + :log_group_arn) + SENSITIVE = [] + include Aws::Structure + end + + # The information for configuration sets that meet a specified criteria. + # + # @note When making an API call, you may pass ConfigurationSetFilter + # data as a hash: + # + # { + # name: "event-destination-name", # required, accepts event-destination-name, matching-event-types, default-message-type, default-sender-id + # values: ["FilterValue"], # required + # } + # + # @!attribute [rw] name + # The name of the attribute to filter on. + # @return [String] + # + # @!attribute [rw] values + # An array values to filter for. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ConfigurationSetFilter AWS API Documentation + # + class ConfigurationSetFilter < Struct.new( + :name, + :values) + SENSITIVE = [] + include Aws::Structure + end + + # Information related to a given configuration set in your Amazon Web + # Services account. + # + # @!attribute [rw] configuration_set_arn + # The Resource Name (ARN) of the ConfigurationSet. + # @return [String] + # + # @!attribute [rw] configuration_set_name + # The name of the ConfigurationSet. + # @return [String] + # + # @!attribute [rw] event_destinations + # An array of EventDestination objects that describe any events to log + # and where to log them. + # @return [Array] + # + # @!attribute [rw] default_message_type + # The type of message. Valid values are TRANSACTIONAL for messages + # that are critical or time-sensitive and PROMOTIONAL for messages + # that aren't critical or time-sensitive. + # @return [String] + # + # @!attribute [rw] default_sender_id + # The default sender ID used by the ConfigurationSet. + # @return [String] + # + # @!attribute [rw] created_timestamp + # The time when the ConfigurationSet was created, in [UNIX epoch + # time][1] format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ConfigurationSetInformation AWS API Documentation + # + class ConfigurationSetInformation < Struct.new( + :configuration_set_arn, + :configuration_set_name, + :event_destinations, + :default_message_type, + :default_sender_id, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # Your request has conflicting operations. This can occur if you're + # trying to perform more than one operation on the same resource at the + # same time or it could be that the requested action isn't valid for + # the current state or configuration of the resource. + # + # @!attribute [rw] message + # @return [String] + # + # @!attribute [rw] reason + # The reason for the exception. + # @return [String] + # + # @!attribute [rw] resource_type + # The type of resource that caused the exception. + # @return [String] + # + # @!attribute [rw] resource_id + # The unique identifier of the request. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ConflictException AWS API Documentation + # + class ConflictException < Struct.new( + :message, + :reason, + :resource_type, + :resource_id) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass CreateConfigurationSetRequest + # data as a hash: + # + # { + # configuration_set_name: "ConfigurationSetName", # required + # tags: [ + # { + # key: "TagKey", # required + # value: "TagValue", # required + # }, + # ], + # client_token: "ClientToken", + # } + # + # @!attribute [rw] configuration_set_name + # The name to use for the new configuration set. + # @return [String] + # + # @!attribute [rw] tags + # An array of key and value pair tags that's associated with the new + # configuration set. + # @return [Array] + # + # @!attribute [rw] client_token + # Unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/CreateConfigurationSetRequest AWS API Documentation + # + class CreateConfigurationSetRequest < Struct.new( + :configuration_set_name, + :tags, + :client_token) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] configuration_set_arn + # The Amazon Resource Name (ARN) of the newly created configuration + # set. + # @return [String] + # + # @!attribute [rw] configuration_set_name + # The name of the new configuration set. + # @return [String] + # + # @!attribute [rw] tags + # An array of key and value pair tags that's associated with the + # configuration set. + # @return [Array] + # + # @!attribute [rw] created_timestamp + # The time when the configuration set was created, in [UNIX epoch + # time][1] format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/CreateConfigurationSetResult AWS API Documentation + # + class CreateConfigurationSetResult < Struct.new( + :configuration_set_arn, + :configuration_set_name, + :tags, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass CreateEventDestinationRequest + # data as a hash: + # + # { + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # event_destination_name: "EventDestinationName", # required + # matching_event_types: ["ALL"], # required, accepts ALL, TEXT_ALL, TEXT_SENT, TEXT_PENDING, TEXT_QUEUED, TEXT_SUCCESSFUL, TEXT_DELIVERED, TEXT_INVALID, TEXT_INVALID_MESSAGE, TEXT_UNREACHABLE, TEXT_CARRIER_UNREACHABLE, TEXT_BLOCKED, TEXT_CARRIER_BLOCKED, TEXT_SPAM, TEXT_UNKNOWN, TEXT_TTL_EXPIRED, VOICE_ALL, VOICE_INITIATED, VOICE_RINGING, VOICE_ANSWERED, VOICE_COMPLETED, VOICE_BUSY, VOICE_NO_ANSWER, VOICE_FAILED, VOICE_TTL_EXPIRED + # cloud_watch_logs_destination: { + # iam_role_arn: "IamRoleArn", # required + # log_group_arn: "LogGroupArn", # required + # }, + # kinesis_firehose_destination: { + # iam_role_arn: "IamRoleArn", # required + # delivery_stream_arn: "DeliveryStreamArn", # required + # }, + # sns_destination: { + # topic_arn: "SnsTopicArn", # required + # }, + # client_token: "ClientToken", + # } + # + # @!attribute [rw] configuration_set_name + # Either the name of the configuration set or the configuration set + # ARN to apply event logging to. The ConfigurateSetName and + # ConfigurationSetArn can be found using the DescribeConfigurationSets + # action. + # @return [String] + # + # @!attribute [rw] event_destination_name + # The name that identifies the event destination. + # @return [String] + # + # @!attribute [rw] matching_event_types + # An array of event types that determine which events to log. If + # "ALL" is used, then Amazon Pinpoint logs every event type. + # @return [Array] + # + # @!attribute [rw] cloud_watch_logs_destination + # An object that contains information about an event destination for + # logging to Amazon CloudWatch logs. + # @return [Types::CloudWatchLogsDestination] + # + # @!attribute [rw] kinesis_firehose_destination + # An object that contains information about an event destination for + # logging to Amazon Kinesis Data Firehose. + # @return [Types::KinesisFirehoseDestination] + # + # @!attribute [rw] sns_destination + # An object that contains information about an event destination for + # logging to Amazon SNS. + # @return [Types::SnsDestination] + # + # @!attribute [rw] client_token + # Unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/CreateEventDestinationRequest AWS API Documentation + # + class CreateEventDestinationRequest < Struct.new( + :configuration_set_name, + :event_destination_name, + :matching_event_types, + :cloud_watch_logs_destination, + :kinesis_firehose_destination, + :sns_destination, + :client_token) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] configuration_set_arn + # The ARN of the configuration set. + # @return [String] + # + # @!attribute [rw] configuration_set_name + # The name of the configuration set. + # @return [String] + # + # @!attribute [rw] event_destination + # The details of the destination where events are logged. + # @return [Types::EventDestination] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/CreateEventDestinationResult AWS API Documentation + # + class CreateEventDestinationResult < Struct.new( + :configuration_set_arn, + :configuration_set_name, + :event_destination) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass CreateOptOutListRequest + # data as a hash: + # + # { + # opt_out_list_name: "OptOutListName", # required + # tags: [ + # { + # key: "TagKey", # required + # value: "TagValue", # required + # }, + # ], + # client_token: "ClientToken", + # } + # + # @!attribute [rw] opt_out_list_name + # The name of the new OptOutList. + # @return [String] + # + # @!attribute [rw] tags + # An array of tags (key and value pairs) to associate with the new + # OptOutList. + # @return [Array] + # + # @!attribute [rw] client_token + # Unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/CreateOptOutListRequest AWS API Documentation + # + class CreateOptOutListRequest < Struct.new( + :opt_out_list_name, + :tags, + :client_token) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] opt_out_list_arn + # The Amazon Resource Name (ARN) for the OptOutList. + # @return [String] + # + # @!attribute [rw] opt_out_list_name + # The name of the new OptOutList. + # @return [String] + # + # @!attribute [rw] tags + # An array of tags (key and value pairs) associated with the new + # OptOutList. + # @return [Array] + # + # @!attribute [rw] created_timestamp + # The time when the pool was created, in [UNIX epoch time][1] format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/CreateOptOutListResult AWS API Documentation + # + class CreateOptOutListResult < Struct.new( + :opt_out_list_arn, + :opt_out_list_name, + :tags, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass CreatePoolRequest + # data as a hash: + # + # { + # origination_identity: "PhoneOrSenderIdOrArn", # required + # iso_country_code: "IsoCountryCode", # required + # message_type: "TRANSACTIONAL", # required, accepts TRANSACTIONAL, PROMOTIONAL + # deletion_protection_enabled: false, + # tags: [ + # { + # key: "TagKey", # required + # value: "TagValue", # required + # }, + # ], + # client_token: "ClientToken", + # } + # + # @!attribute [rw] origination_identity + # The origination identity to use such as a PhoneNumberId, + # PhoneNumberArn, SenderId or SenderIdArn. You can use + # DescribePhoneNumbers to find the values for PhoneNumberId and + # PhoneNumberArn while DescribeSenderIds can be used to get the values + # for SenderId and SenderIdArn. + # @return [String] + # + # @!attribute [rw] iso_country_code + # The new two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region of the new pool. + # @return [String] + # + # @!attribute [rw] message_type + # The type of message. Valid values are TRANSACTIONAL for messages + # that are critical or time-sensitive and PROMOTIONAL for messages + # that aren't critical or time-sensitive. + # @return [String] + # + # @!attribute [rw] deletion_protection_enabled + # By default this is set to false. When set to true the pool can't be + # deleted. You can change this value using the UpdatePool action. + # @return [Boolean] + # + # @!attribute [rw] tags + # An array of tags (key and value pairs) associated with the pool. + # @return [Array] + # + # @!attribute [rw] client_token + # Unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/CreatePoolRequest AWS API Documentation + # + class CreatePoolRequest < Struct.new( + :origination_identity, + :iso_country_code, + :message_type, + :deletion_protection_enabled, + :tags, + :client_token) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] pool_arn + # The Amazon Resource Name (ARN) for the pool. + # @return [String] + # + # @!attribute [rw] pool_id + # The unique identifier for the pool. + # @return [String] + # + # @!attribute [rw] status + # The current status of the pool. + # + # * CREATING: The pool is currently being created and isn't yet + # available for use. + # + # * ACTIVE: The pool is active and available for use. + # + # * DELETING: The pool is being deleted. + # @return [String] + # + # @!attribute [rw] message_type + # The type of message for the pool to use. + # @return [String] + # + # @!attribute [rw] two_way_enabled + # By default this is set to false. When set to true you can receive + # incoming text messages from your end recipients. + # @return [Boolean] + # + # @!attribute [rw] two_way_channel_arn + # The Amazon Resource Name (ARN) of the two way channel. + # @return [String] + # + # @!attribute [rw] self_managed_opt_outs_enabled + # By default this is set to false. When an end recipient sends a + # message that begins with HELP or STOP to one of your dedicated + # numbers, Amazon Pinpoint automatically replies with a customizable + # message and adds the end recipient to the OptOutList. When set to + # true you're responsible for responding to HELP and STOP requests. + # You're also responsible for tracking and honoring opt-out requests. + # @return [Boolean] + # + # @!attribute [rw] opt_out_list_name + # The name of the OptOutList associated with the pool. + # @return [String] + # + # @!attribute [rw] shared_routes_enabled + # Indicates whether shared routes are enabled for the pool. + # @return [Boolean] + # + # @!attribute [rw] deletion_protection_enabled + # When set to true deletion protection is enabled. By default this is + # set to false. + # @return [Boolean] + # + # @!attribute [rw] tags + # An array of tags (key and value pairs) associated with the pool. + # @return [Array] + # + # @!attribute [rw] created_timestamp + # The time when the pool was created, in [UNIX epoch time][1] format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/CreatePoolResult AWS API Documentation + # + class CreatePoolResult < Struct.new( + :pool_arn, + :pool_id, + :status, + :message_type, + :two_way_enabled, + :two_way_channel_arn, + :self_managed_opt_outs_enabled, + :opt_out_list_name, + :shared_routes_enabled, + :deletion_protection_enabled, + :tags, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DeleteConfigurationSetRequest + # data as a hash: + # + # { + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # } + # + # @!attribute [rw] configuration_set_name + # The name of the configuration set or the configuration set ARN that + # you want to delete. The ConfigurationSetName and ConfigurationSetArn + # can be found using the DescribeConfigurationSets action. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteConfigurationSetRequest AWS API Documentation + # + class DeleteConfigurationSetRequest < Struct.new( + :configuration_set_name) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] configuration_set_arn + # The Amazon Resource Name (ARN) of the deleted configuration set. + # @return [String] + # + # @!attribute [rw] configuration_set_name + # The name of the deleted configuration set. + # @return [String] + # + # @!attribute [rw] event_destinations + # An array of any EventDestination objects that were associated with + # the deleted configuration set. + # @return [Array] + # + # @!attribute [rw] default_message_type + # The default message type of the configuration set that was deleted. + # @return [String] + # + # @!attribute [rw] default_sender_id + # The default Sender ID of the configuration set that was deleted. + # @return [String] + # + # @!attribute [rw] created_timestamp + # The time that the deleted configuration set was created in [UNIX + # epoch time][1] format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteConfigurationSetResult AWS API Documentation + # + class DeleteConfigurationSetResult < Struct.new( + :configuration_set_arn, + :configuration_set_name, + :event_destinations, + :default_message_type, + :default_sender_id, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DeleteDefaultMessageTypeRequest + # data as a hash: + # + # { + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # } + # + # @!attribute [rw] configuration_set_name + # The name of the configuration set or the configuration set Amazon + # Resource Name (ARN) to delete the default message type from. The + # ConfigurationSetName and ConfigurationSetArn can be found using the + # DescribeConfigurationSets action. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteDefaultMessageTypeRequest AWS API Documentation + # + class DeleteDefaultMessageTypeRequest < Struct.new( + :configuration_set_name) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] configuration_set_arn + # The Amazon Resource Name (ARN) of the configuration set. + # @return [String] + # + # @!attribute [rw] configuration_set_name + # The name of the configuration set. + # @return [String] + # + # @!attribute [rw] message_type + # The current message type for the configuration set. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteDefaultMessageTypeResult AWS API Documentation + # + class DeleteDefaultMessageTypeResult < Struct.new( + :configuration_set_arn, + :configuration_set_name, + :message_type) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DeleteDefaultSenderIdRequest + # data as a hash: + # + # { + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # } + # + # @!attribute [rw] configuration_set_name + # The name of the configuration set or the configuration set Amazon + # Resource Name (ARN) to delete the default sender ID from. The + # ConfigurationSetName and ConfigurationSetArn can be found using the + # DescribeConfigurationSets action. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteDefaultSenderIdRequest AWS API Documentation + # + class DeleteDefaultSenderIdRequest < Struct.new( + :configuration_set_name) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] configuration_set_arn + # The Amazon Resource Name (ARN) of the configuration set. + # @return [String] + # + # @!attribute [rw] configuration_set_name + # The name of the configuration set. + # @return [String] + # + # @!attribute [rw] sender_id + # The current sender ID for the configuration set. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteDefaultSenderIdResult AWS API Documentation + # + class DeleteDefaultSenderIdResult < Struct.new( + :configuration_set_arn, + :configuration_set_name, + :sender_id) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DeleteEventDestinationRequest + # data as a hash: + # + # { + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # event_destination_name: "EventDestinationName", # required + # } + # + # @!attribute [rw] configuration_set_name + # The name of the configuration set or the configuration set's Amazon + # Resource Name (ARN) to remove the event destination from. The + # ConfigurateSetName and ConfigurationSetArn can be found using the + # DescribeConfigurationSets action. + # @return [String] + # + # @!attribute [rw] event_destination_name + # The name of the event destination to delete. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteEventDestinationRequest AWS API Documentation + # + class DeleteEventDestinationRequest < Struct.new( + :configuration_set_name, + :event_destination_name) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] configuration_set_arn + # The Amazon Resource Name (ARN) of the configuration set. + # @return [String] + # + # @!attribute [rw] configuration_set_name + # The name of the configuration set the event destination was deleted + # from. + # @return [String] + # + # @!attribute [rw] event_destination + # The event destination object that was deleted. + # @return [Types::EventDestination] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteEventDestinationResult AWS API Documentation + # + class DeleteEventDestinationResult < Struct.new( + :configuration_set_arn, + :configuration_set_name, + :event_destination) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DeleteKeywordRequest + # data as a hash: + # + # { + # origination_identity: "PhoneOrPoolIdOrArn", # required + # keyword: "Keyword", # required + # } + # + # @!attribute [rw] origination_identity + # The origination identity to use such as a PhoneNumberId, + # PhoneNumberArn, PoolId or PoolArn. You can use DescribePhoneNumbers + # to find the values for PhoneNumberId and PhoneNumberArn and + # DescribePools to find the values of PoolId and PoolArn. + # @return [String] + # + # @!attribute [rw] keyword + # The keyword to delete. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteKeywordRequest AWS API Documentation + # + class DeleteKeywordRequest < Struct.new( + :origination_identity, + :keyword) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] origination_identity_arn + # The PhoneNumberArn or PoolArn that the keyword was associated with. + # @return [String] + # + # @!attribute [rw] origination_identity + # The PhoneNumberId or PoolId that the keyword was associated with. + # @return [String] + # + # @!attribute [rw] keyword + # The keyword that was deleted. + # @return [String] + # + # @!attribute [rw] keyword_message + # The message that was associated with the deleted keyword. + # @return [String] + # + # @!attribute [rw] keyword_action + # The action that was associated with the deleted keyword. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteKeywordResult AWS API Documentation + # + class DeleteKeywordResult < Struct.new( + :origination_identity_arn, + :origination_identity, + :keyword, + :keyword_message, + :keyword_action) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DeleteOptOutListRequest + # data as a hash: + # + # { + # opt_out_list_name: "OptOutListNameOrArn", # required + # } + # + # @!attribute [rw] opt_out_list_name + # The OptOutListName or OptOutListArn of the OptOutList to delete. You + # can use DescribeOptOutLists to find the values for OptOutListName + # and OptOutListArn. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteOptOutListRequest AWS API Documentation + # + class DeleteOptOutListRequest < Struct.new( + :opt_out_list_name) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] opt_out_list_arn + # The Amazon Resource Name (ARN) of the OptOutList that was removed. + # @return [String] + # + # @!attribute [rw] opt_out_list_name + # The name of the OptOutList that was removed. + # @return [String] + # + # @!attribute [rw] created_timestamp + # The time when the OptOutList was created, in [UNIX epoch time][1] + # format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteOptOutListResult AWS API Documentation + # + class DeleteOptOutListResult < Struct.new( + :opt_out_list_arn, + :opt_out_list_name, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DeleteOptedOutNumberRequest + # data as a hash: + # + # { + # opt_out_list_name: "OptOutListNameOrArn", # required + # opted_out_number: "PhoneNumber", # required + # } + # + # @!attribute [rw] opt_out_list_name + # The OptOutListName or OptOutListArn to remove the phone number from. + # @return [String] + # + # @!attribute [rw] opted_out_number + # The phone number, in E.164 format, to remove from the OptOutList. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteOptedOutNumberRequest AWS API Documentation + # + class DeleteOptedOutNumberRequest < Struct.new( + :opt_out_list_name, + :opted_out_number) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] opt_out_list_arn + # The OptOutListArn that the phone number was removed from. + # @return [String] + # + # @!attribute [rw] opt_out_list_name + # The OptOutListName that the phone number was removed from. + # @return [String] + # + # @!attribute [rw] opted_out_number + # The phone number that was removed from the OptOutList. + # @return [String] + # + # @!attribute [rw] opted_out_timestamp + # The time that the number was removed at, in [UNIX epoch time][1] + # format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @!attribute [rw] end_user_opted_out + # This is true if it was the end user who requested their phone number + # be removed. + # @return [Boolean] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteOptedOutNumberResult AWS API Documentation + # + class DeleteOptedOutNumberResult < Struct.new( + :opt_out_list_arn, + :opt_out_list_name, + :opted_out_number, + :opted_out_timestamp, + :end_user_opted_out) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DeletePoolRequest + # data as a hash: + # + # { + # pool_id: "PoolIdOrArn", # required + # } + # + # @!attribute [rw] pool_id + # The PoolId or PoolArn of the pool to delete. You can use + # DescribePools to find the values for PoolId and PoolArn . + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeletePoolRequest AWS API Documentation + # + class DeletePoolRequest < Struct.new( + :pool_id) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] pool_arn + # The Amazon Resource Name (ARN) of the pool that was deleted. + # @return [String] + # + # @!attribute [rw] pool_id + # The PoolId of the pool that was deleted. + # @return [String] + # + # @!attribute [rw] status + # The current status of the pool. + # + # * CREATING: The pool is currently being created and isn't yet + # available for use. + # + # * ACTIVE: The pool is active and available for use. + # + # * DELETING: The pool is being deleted. + # @return [String] + # + # @!attribute [rw] message_type + # The message type that was associated with the deleted pool. + # @return [String] + # + # @!attribute [rw] two_way_enabled + # By default this is set to false. When set to true you can receive + # incoming text messages from your end recipients. + # @return [Boolean] + # + # @!attribute [rw] two_way_channel_arn + # The Amazon Resource Name (ARN) of the TwoWayChannel. + # @return [String] + # + # @!attribute [rw] self_managed_opt_outs_enabled + # By default this is set to false. When an end recipient sends a + # message that begins with HELP or STOP to one of your dedicated + # numbers, Amazon Pinpoint automatically replies with a customizable + # message and adds the end recipient to the OptOutList. When set to + # true you're responsible for responding to HELP and STOP requests. + # You're also responsible for tracking and honoring opt-out requests. + # @return [Boolean] + # + # @!attribute [rw] opt_out_list_name + # The name of the OptOutList that was associated with the deleted + # pool. + # @return [String] + # + # @!attribute [rw] shared_routes_enabled + # Indicates whether shared routes are enabled for the pool. + # @return [Boolean] + # + # @!attribute [rw] created_timestamp + # The time when the pool was created, in [UNIX epoch time][1] format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeletePoolResult AWS API Documentation + # + class DeletePoolResult < Struct.new( + :pool_arn, + :pool_id, + :status, + :message_type, + :two_way_enabled, + :two_way_channel_arn, + :self_managed_opt_outs_enabled, + :opt_out_list_name, + :shared_routes_enabled, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # @api private + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteTextMessageSpendLimitOverrideRequest AWS API Documentation + # + class DeleteTextMessageSpendLimitOverrideRequest < Aws::EmptyStructure; end + + # @!attribute [rw] monthly_limit + # The current monthly limit, in US dollars. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteTextMessageSpendLimitOverrideResult AWS API Documentation + # + class DeleteTextMessageSpendLimitOverrideResult < Struct.new( + :monthly_limit) + SENSITIVE = [] + include Aws::Structure + end + + # @api private + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteVoiceMessageSpendLimitOverrideRequest AWS API Documentation + # + class DeleteVoiceMessageSpendLimitOverrideRequest < Aws::EmptyStructure; end + + # @!attribute [rw] monthly_limit + # The current monthly limit, in US dollars. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DeleteVoiceMessageSpendLimitOverrideResult AWS API Documentation + # + class DeleteVoiceMessageSpendLimitOverrideResult < Struct.new( + :monthly_limit) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DescribeAccountAttributesRequest + # data as a hash: + # + # { + # next_token: "NextToken", + # max_results: 1, + # } + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. You + # don't need to supply a value for this field in the initial request. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results to return per each request. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeAccountAttributesRequest AWS API Documentation + # + class DescribeAccountAttributesRequest < Struct.new( + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] account_attributes + # An array of AccountAttributes objects. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. If this + # field is empty then there are no more results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeAccountAttributesResult AWS API Documentation + # + class DescribeAccountAttributesResult < Struct.new( + :account_attributes, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DescribeAccountLimitsRequest + # data as a hash: + # + # { + # next_token: "NextToken", + # max_results: 1, + # } + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. You + # don't need to supply a value for this field in the initial request. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results to return per each request. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeAccountLimitsRequest AWS API Documentation + # + class DescribeAccountLimitsRequest < Struct.new( + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] account_limits + # An array of AccountLimit objects that show the current spend limits. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. If this + # field is empty then there are no more results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeAccountLimitsResult AWS API Documentation + # + class DescribeAccountLimitsResult < Struct.new( + :account_limits, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DescribeConfigurationSetsRequest + # data as a hash: + # + # { + # configuration_set_names: ["ConfigurationSetNameOrArn"], + # filters: [ + # { + # name: "event-destination-name", # required, accepts event-destination-name, matching-event-types, default-message-type, default-sender-id + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # } + # + # @!attribute [rw] configuration_set_names + # An array of strings. Each element can be either a + # ConfigurationSetName or ConfigurationSetArn. + # @return [Array] + # + # @!attribute [rw] filters + # An array of filters to apply to the results that are returned. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. You + # don't need to supply a value for this field in the initial request. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results to return per each request. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeConfigurationSetsRequest AWS API Documentation + # + class DescribeConfigurationSetsRequest < Struct.new( + :configuration_set_names, + :filters, + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] configuration_sets + # An array of ConfigurationSets objects. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. If this + # field is empty then there are no more results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeConfigurationSetsResult AWS API Documentation + # + class DescribeConfigurationSetsResult < Struct.new( + :configuration_sets, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DescribeKeywordsRequest + # data as a hash: + # + # { + # origination_identity: "PhoneOrPoolIdOrArn", # required + # keywords: ["Keyword"], + # filters: [ + # { + # name: "keyword-action", # required, accepts keyword-action + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # } + # + # @!attribute [rw] origination_identity + # The origination identity to use such as a PhoneNumberId, + # PhoneNumberArn, SenderId or SenderIdArn. You can use + # DescribePhoneNumbers to find the values for PhoneNumberId and + # PhoneNumberArn while DescribeSenderIds can be used to get the values + # for SenderId and SenderIdArn. + # @return [String] + # + # @!attribute [rw] keywords + # An array of keywords to search for. + # @return [Array] + # + # @!attribute [rw] filters + # An array of keyword filters to filter the results. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. You + # don't need to supply a value for this field in the initial request. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results to return per each request. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeKeywordsRequest AWS API Documentation + # + class DescribeKeywordsRequest < Struct.new( + :origination_identity, + :keywords, + :filters, + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] origination_identity_arn + # The PhoneNumberArn or PoolArn that is associated with the + # OriginationIdentity. + # @return [String] + # + # @!attribute [rw] origination_identity + # The PhoneNumberId or PoolId that is associated with the + # OriginationIdentity. + # @return [String] + # + # @!attribute [rw] keywords + # An array of KeywordInformation objects that contain the results. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. If this + # field is empty then there are no more results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeKeywordsResult AWS API Documentation + # + class DescribeKeywordsResult < Struct.new( + :origination_identity_arn, + :origination_identity, + :keywords, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DescribeOptOutListsRequest + # data as a hash: + # + # { + # opt_out_list_names: ["OptOutListNameOrArn"], + # next_token: "NextToken", + # max_results: 1, + # } + # + # @!attribute [rw] opt_out_list_names + # The OptOutLists to show the details of. This is an array of strings + # that can be either the OptOutListName or OptOutListArn. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. You + # don't need to supply a value for this field in the initial request. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results to return per each request. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeOptOutListsRequest AWS API Documentation + # + class DescribeOptOutListsRequest < Struct.new( + :opt_out_list_names, + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] opt_out_lists + # An array of OptOutListInformation objects that contain the details + # for the requested OptOutLists. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. If this + # field is empty then there are no more results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeOptOutListsResult AWS API Documentation + # + class DescribeOptOutListsResult < Struct.new( + :opt_out_lists, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DescribeOptedOutNumbersRequest + # data as a hash: + # + # { + # opt_out_list_name: "OptOutListNameOrArn", # required + # opted_out_numbers: ["PhoneNumber"], + # filters: [ + # { + # name: "end-user-opted-out", # required, accepts end-user-opted-out + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # } + # + # @!attribute [rw] opt_out_list_name + # The OptOutListName or OptOutListArn of the OptOutList. You can use + # DescribeOptOutLists to find the values for OptOutListName and + # OptOutListArn. + # @return [String] + # + # @!attribute [rw] opted_out_numbers + # An array of phone numbers to search for in the OptOutList. + # @return [Array] + # + # @!attribute [rw] filters + # An array of OptedOutFilter objects to filter the results on. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. You + # don't need to supply a value for this field in the initial request. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results to return per each request. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeOptedOutNumbersRequest AWS API Documentation + # + class DescribeOptedOutNumbersRequest < Struct.new( + :opt_out_list_name, + :opted_out_numbers, + :filters, + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] opt_out_list_arn + # The Amazon Resource Name (ARN) of the OptOutList. + # @return [String] + # + # @!attribute [rw] opt_out_list_name + # The name of the OptOutList. + # @return [String] + # + # @!attribute [rw] opted_out_numbers + # An array of OptedOutNumbersInformation objects that provide + # information about the requested OptedOutNumbers. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. If this + # field is empty then there are no more results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeOptedOutNumbersResult AWS API Documentation + # + class DescribeOptedOutNumbersResult < Struct.new( + :opt_out_list_arn, + :opt_out_list_name, + :opted_out_numbers, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DescribePhoneNumbersRequest + # data as a hash: + # + # { + # phone_number_ids: ["PhoneNumberIdOrArn"], + # filters: [ + # { + # name: "status", # required, accepts status, iso-country-code, message-type, number-capability, number-type, two-way-enabled, self-managed-opt-outs-enabled, opt-out-list-name, deletion-protection-enabled + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # } + # + # @!attribute [rw] phone_number_ids + # The unique identifier of phone numbers to find information about. + # This is an array of strings that can be either the PhoneNumberId or + # PhoneNumberArn. + # @return [Array] + # + # @!attribute [rw] filters + # An array of PhoneNumberFilter objects to filter the results. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. You + # don't need to supply a value for this field in the initial request. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results to return per each request. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribePhoneNumbersRequest AWS API Documentation + # + class DescribePhoneNumbersRequest < Struct.new( + :phone_number_ids, + :filters, + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] phone_numbers + # An array of PhoneNumberInformation objects that contain the details + # for the requested phone numbers. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. If this + # field is empty then there are no more results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribePhoneNumbersResult AWS API Documentation + # + class DescribePhoneNumbersResult < Struct.new( + :phone_numbers, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DescribePoolsRequest + # data as a hash: + # + # { + # pool_ids: ["PoolIdOrArn"], + # filters: [ + # { + # name: "status", # required, accepts status, message-type, two-way-enabled, self-managed-opt-outs-enabled, opt-out-list-name, shared-routes-enabled, deletion-protection-enabled + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # } + # + # @!attribute [rw] pool_ids + # The unique identifier of pools to find. This is an array of strings + # that can be either the PoolId or PoolArn. + # @return [Array] + # + # @!attribute [rw] filters + # An array of PoolFilter objects to filter the results. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. You + # don't need to supply a value for this field in the initial request. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results to return per each request. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribePoolsRequest AWS API Documentation + # + class DescribePoolsRequest < Struct.new( + :pool_ids, + :filters, + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] pools + # An array of PoolInformation objects that contain the details for the + # requested pools. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. If this + # field is empty then there are no more results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribePoolsResult AWS API Documentation + # + class DescribePoolsResult < Struct.new( + :pools, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DescribeSenderIdsRequest + # data as a hash: + # + # { + # sender_ids: [ + # { + # sender_id: "SenderIdOrArn", # required + # iso_country_code: "IsoCountryCode", # required + # }, + # ], + # filters: [ + # { + # name: "sender-id", # required, accepts sender-id, iso-country-code, message-type + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # } + # + # @!attribute [rw] sender_ids + # An array of SenderIdAndCountry objects to search for. + # @return [Array] + # + # @!attribute [rw] filters + # An array of SenderIdFilter objects to filter the results. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. You + # don't need to supply a value for this field in the initial request. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results to return per each request. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeSenderIdsRequest AWS API Documentation + # + class DescribeSenderIdsRequest < Struct.new( + :sender_ids, + :filters, + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] sender_ids + # An array of SernderIdInformation objects that contain the details + # for the requested SenderIds. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. If this + # field is empty then there are no more results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeSenderIdsResult AWS API Documentation + # + class DescribeSenderIdsResult < Struct.new( + :sender_ids, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DescribeSpendLimitsRequest + # data as a hash: + # + # { + # next_token: "NextToken", + # max_results: 1, + # } + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. You + # don't need to supply a value for this field in the initial request. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results to return per each request. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeSpendLimitsRequest AWS API Documentation + # + class DescribeSpendLimitsRequest < Struct.new( + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] spend_limits + # An array of SpendLimit objects that contain the details for the + # requested spend limits. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. If this + # field is empty then there are no more results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DescribeSpendLimitsResult AWS API Documentation + # + class DescribeSpendLimitsResult < Struct.new( + :spend_limits, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass DisassociateOriginationIdentityRequest + # data as a hash: + # + # { + # pool_id: "PoolIdOrArn", # required + # origination_identity: "PhoneOrSenderIdOrArn", # required + # iso_country_code: "IsoCountryCode", # required + # client_token: "ClientToken", + # } + # + # @!attribute [rw] pool_id + # The unique identifier for the pool to disassociate with the + # origination identity. This value can be either the PoolId or + # PoolArn. + # @return [String] + # + # @!attribute [rw] origination_identity + # The origination identity to use such as a PhoneNumberId, + # PhoneNumberArn, SenderId or SenderIdArn. You can use + # DescribePhoneNumbers find the values for PhoneNumberId and + # PhoneNumberArn, or use DescribeSenderIds to get the values for + # SenderId and SenderIdArn. + # @return [String] + # + # @!attribute [rw] iso_country_code + # The two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region. + # @return [String] + # + # @!attribute [rw] client_token + # Unique, case-sensitive identifier you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DisassociateOriginationIdentityRequest AWS API Documentation + # + class DisassociateOriginationIdentityRequest < Struct.new( + :pool_id, + :origination_identity, + :iso_country_code, + :client_token) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] pool_arn + # The Amazon Resource Name (ARN) of the pool. + # @return [String] + # + # @!attribute [rw] pool_id + # The PoolId of the pool no longer associated with the origination + # identity. + # @return [String] + # + # @!attribute [rw] origination_identity_arn + # The PhoneNumberArn or SenderIdArn of the origination identity. + # @return [String] + # + # @!attribute [rw] origination_identity + # The PhoneNumberId or SenderId of the origination identity. + # @return [String] + # + # @!attribute [rw] iso_country_code + # The two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/DisassociateOriginationIdentityResult AWS API Documentation + # + class DisassociateOriginationIdentityResult < Struct.new( + :pool_arn, + :pool_id, + :origination_identity_arn, + :origination_identity, + :iso_country_code) + SENSITIVE = [] + include Aws::Structure + end + + # Contains information about an event destination. + # + # Event destinations are associated with configuration sets, which + # enable you to publish message sending events to Amazon CloudWatch, + # Amazon Kinesis Data Firehose, or Amazon SNS. + # + # @!attribute [rw] event_destination_name + # The name of the EventDestination. + # @return [String] + # + # @!attribute [rw] enabled + # When set to true events will be logged. + # @return [Boolean] + # + # @!attribute [rw] matching_event_types + # An array of event types that determine which events to log. + # @return [Array] + # + # @!attribute [rw] cloud_watch_logs_destination + # An object that contains information about an event destination that + # sends logging events to Amazon CloudWatch logs. + # @return [Types::CloudWatchLogsDestination] + # + # @!attribute [rw] kinesis_firehose_destination + # An object that contains information about an event destination for + # logging to Amazon Kinesis Data Firehose. + # @return [Types::KinesisFirehoseDestination] + # + # @!attribute [rw] sns_destination + # An object that contains information about an event destination that + # sends logging events to Amazon SNS. + # @return [Types::SnsDestination] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/EventDestination AWS API Documentation + # + class EventDestination < Struct.new( + :event_destination_name, + :enabled, + :matching_event_types, + :cloud_watch_logs_destination, + :kinesis_firehose_destination, + :sns_destination) + SENSITIVE = [] + include Aws::Structure + end + + # The API encountered an unexpected error and couldn't complete the + # request. You might be able to successfully issue the request again in + # the future. + # + # @!attribute [rw] message + # @return [String] + # + # @!attribute [rw] request_id + # The unique identifier of the request. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/InternalServerException AWS API Documentation + # + class InternalServerException < Struct.new( + :message, + :request_id) + SENSITIVE = [] + include Aws::Structure + end + + # The information for keywords that meet a specified criteria. + # + # @note When making an API call, you may pass KeywordFilter + # data as a hash: + # + # { + # name: "keyword-action", # required, accepts keyword-action + # values: ["FilterValue"], # required + # } + # + # @!attribute [rw] name + # The name of the attribute to filter on. + # @return [String] + # + # @!attribute [rw] values + # An array values to filter for. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/KeywordFilter AWS API Documentation + # + class KeywordFilter < Struct.new( + :name, + :values) + SENSITIVE = [] + include Aws::Structure + end + + # The information for all keywords in a pool. + # + # @!attribute [rw] keyword + # The keyword as a string. + # @return [String] + # + # @!attribute [rw] keyword_message + # A custom message that can be used with the keyword. + # @return [String] + # + # @!attribute [rw] keyword_action + # The action to perform for the keyword. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/KeywordInformation AWS API Documentation + # + class KeywordInformation < Struct.new( + :keyword, + :keyword_message, + :keyword_action) + SENSITIVE = [] + include Aws::Structure + end + + # Contains the delivery stream Amazon Resource Name (ARN), and the ARN + # of the Identity and Access Management (IAM) role associated with an + # Kinesis Data Firehose event destination. + # + # Event destinations, such as Kinesis Data Firehose, are associated with + # configuration sets, which enable you to publish message sending + # events. + # + # @note When making an API call, you may pass KinesisFirehoseDestination + # data as a hash: + # + # { + # iam_role_arn: "IamRoleArn", # required + # delivery_stream_arn: "DeliveryStreamArn", # required + # } + # + # @!attribute [rw] iam_role_arn + # The ARN of an Amazon Identity and Access Management (IAM) role that + # is able to write event data to an Amazon Firehose destination. + # @return [String] + # + # @!attribute [rw] delivery_stream_arn + # The Amazon Resource Name (ARN) of the delivery stream. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/KinesisFirehoseDestination AWS API Documentation + # + class KinesisFirehoseDestination < Struct.new( + :iam_role_arn, + :delivery_stream_arn) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass ListPoolOriginationIdentitiesRequest + # data as a hash: + # + # { + # pool_id: "PoolIdOrArn", # required + # filters: [ + # { + # name: "iso-country-code", # required, accepts iso-country-code, number-capability + # values: ["FilterValue"], # required + # }, + # ], + # next_token: "NextToken", + # max_results: 1, + # } + # + # @!attribute [rw] pool_id + # The unique identifier for the pool. This value can be either the + # PoolId or PoolArn. + # @return [String] + # + # @!attribute [rw] filters + # An array of PoolOriginationIdentitiesFilter objects to filter the + # results.. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. You + # don't need to supply a value for this field in the initial request. + # @return [String] + # + # @!attribute [rw] max_results + # The maximum number of results to return per each request. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ListPoolOriginationIdentitiesRequest AWS API Documentation + # + class ListPoolOriginationIdentitiesRequest < Struct.new( + :pool_id, + :filters, + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] pool_arn + # The Amazon Resource Name (ARN) for the pool. + # @return [String] + # + # @!attribute [rw] pool_id + # The unique PoolId of the pool. + # @return [String] + # + # @!attribute [rw] origination_identities + # An array of any OriginationIdentityMetadata objects. + # @return [Array] + # + # @!attribute [rw] next_token + # The token to be used for the next set of paginated results. If this + # field is empty then there are no more results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ListPoolOriginationIdentitiesResult AWS API Documentation + # + class ListPoolOriginationIdentitiesResult < Struct.new( + :pool_arn, + :pool_id, + :origination_identities, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass ListTagsForResourceRequest + # data as a hash: + # + # { + # resource_arn: "AmazonResourceName", # required + # } + # + # @!attribute [rw] resource_arn + # The Amazon Resource Name (ARN) of the resource to query for. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ListTagsForResourceRequest AWS API Documentation + # + class ListTagsForResourceRequest < Struct.new( + :resource_arn) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] resource_arn + # The ARN of the resource. + # @return [String] + # + # @!attribute [rw] tags + # An array of key and value pair tags that are associated with the + # resource. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ListTagsForResourceResult AWS API Documentation + # + class ListTagsForResourceResult < Struct.new( + :resource_arn, + :tags) + SENSITIVE = [] + include Aws::Structure + end + + # The information for all OptOutList in an Amazon Web Services account. + # + # @!attribute [rw] opt_out_list_arn + # The Amazon Resource Name (ARN) of the OptOutList. + # @return [String] + # + # @!attribute [rw] opt_out_list_name + # The name of the OptOutList. + # @return [String] + # + # @!attribute [rw] created_timestamp + # The time when the OutOutList was created, in [UNIX epoch time][1] + # format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/OptOutListInformation AWS API Documentation + # + class OptOutListInformation < Struct.new( + :opt_out_list_arn, + :opt_out_list_name, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # The information for opted out numbers that meet a specified criteria. + # + # @note When making an API call, you may pass OptedOutFilter + # data as a hash: + # + # { + # name: "end-user-opted-out", # required, accepts end-user-opted-out + # values: ["FilterValue"], # required + # } + # + # @!attribute [rw] name + # The name of the attribute to filter on. + # @return [String] + # + # @!attribute [rw] values + # An array of values to filter for. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/OptedOutFilter AWS API Documentation + # + class OptedOutFilter < Struct.new( + :name, + :values) + SENSITIVE = [] + include Aws::Structure + end + + # The information for an opted out number in an Amazon Web Services + # account. + # + # @!attribute [rw] opted_out_number + # The phone number that is opted out. + # @return [String] + # + # @!attribute [rw] opted_out_timestamp + # The time that the op tout occurred, in [UNIX epoch time][1] format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @!attribute [rw] end_user_opted_out + # This is set to true if it was the end recipient that opted out. + # @return [Boolean] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/OptedOutNumberInformation AWS API Documentation + # + class OptedOutNumberInformation < Struct.new( + :opted_out_number, + :opted_out_timestamp, + :end_user_opted_out) + SENSITIVE = [] + include Aws::Structure + end + + # The metadata for an origination identity associated with a pool. + # + # @!attribute [rw] origination_identity_arn + # The Amazon Resource Name (ARN) associated with the origination + # identity. + # @return [String] + # + # @!attribute [rw] origination_identity + # The unique identifier of the origination identity. + # @return [String] + # + # @!attribute [rw] iso_country_code + # The two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region. + # @return [String] + # + # @!attribute [rw] number_capabilities + # Describes if the origination identity can be used for text messages, + # voice calls or both. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/OriginationIdentityMetadata AWS API Documentation + # + class OriginationIdentityMetadata < Struct.new( + :origination_identity_arn, + :origination_identity, + :iso_country_code, + :number_capabilities) + SENSITIVE = [] + include Aws::Structure + end + + # The information for a phone number that meets a specified criteria. + # + # @note When making an API call, you may pass PhoneNumberFilter + # data as a hash: + # + # { + # name: "status", # required, accepts status, iso-country-code, message-type, number-capability, number-type, two-way-enabled, self-managed-opt-outs-enabled, opt-out-list-name, deletion-protection-enabled + # values: ["FilterValue"], # required + # } + # + # @!attribute [rw] name + # The name of the attribute to filter on. + # @return [String] + # + # @!attribute [rw] values + # An array values to filter for. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/PhoneNumberFilter AWS API Documentation + # + class PhoneNumberFilter < Struct.new( + :name, + :values) + SENSITIVE = [] + include Aws::Structure + end + + # The information for a phone number in an Amazon Web Services account. + # + # @!attribute [rw] phone_number_arn + # The Amazon Resource Name (ARN) associated with the phone number. + # @return [String] + # + # @!attribute [rw] phone_number_id + # The unique identifier for the phone number. + # @return [String] + # + # @!attribute [rw] phone_number + # The phone number in E.164 format. + # @return [String] + # + # @!attribute [rw] status + # The current status of the phone number. + # @return [String] + # + # @!attribute [rw] iso_country_code + # The two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region. + # @return [String] + # + # @!attribute [rw] message_type + # The type of message. Valid values are TRANSACTIONAL for messages + # that are critical or time-sensitive and PROMOTIONAL for messages + # that aren't critical or time-sensitive. + # @return [String] + # + # @!attribute [rw] number_capabilities + # Describes if the origination identity can be used for text messages, + # voice calls or both. + # @return [Array] + # + # @!attribute [rw] number_type + # The type of phone number. + # @return [String] + # + # @!attribute [rw] monthly_leasing_price + # The price, in US dollars, to lease the phone number. + # @return [String] + # + # @!attribute [rw] two_way_enabled + # By default this is set to false. When set to true you can receive + # incoming text messages from your end recipients using the + # TwoWayChannelArn. + # @return [Boolean] + # + # @!attribute [rw] two_way_channel_arn + # The Amazon Resource Name (ARN) of the two way channel. + # @return [String] + # + # @!attribute [rw] self_managed_opt_outs_enabled + # When set to false an end recipient sends a message that begins with + # HELP or STOP to one of your dedicated numbers, Amazon Pinpoint + # automatically replies with a customizable message and adds the end + # recipient to the OptOutList. When set to true you're responsible + # for responding to HELP and STOP requests. You're also responsible + # for tracking and honoring opt-out request. For more information see + # [Self-managed opt-outs][1] + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-sms-managing.html#settings-account-sms-self-managed-opt-out + # @return [Boolean] + # + # @!attribute [rw] opt_out_list_name + # The name of the OptOutList associated with the phone number. + # @return [String] + # + # @!attribute [rw] deletion_protection_enabled + # When set to true the phone number can't be deleted. + # @return [Boolean] + # + # @!attribute [rw] pool_id + # The unique identifier of the pool associated with the phone number. + # @return [String] + # + # @!attribute [rw] created_timestamp + # The time when the phone number was created, in [UNIX epoch time][1] + # format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/PhoneNumberInformation AWS API Documentation + # + class PhoneNumberInformation < Struct.new( + :phone_number_arn, + :phone_number_id, + :phone_number, + :status, + :iso_country_code, + :message_type, + :number_capabilities, + :number_type, + :monthly_leasing_price, + :two_way_enabled, + :two_way_channel_arn, + :self_managed_opt_outs_enabled, + :opt_out_list_name, + :deletion_protection_enabled, + :pool_id, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # The information for a pool that meets a specified criteria. + # + # @note When making an API call, you may pass PoolFilter + # data as a hash: + # + # { + # name: "status", # required, accepts status, message-type, two-way-enabled, self-managed-opt-outs-enabled, opt-out-list-name, shared-routes-enabled, deletion-protection-enabled + # values: ["FilterValue"], # required + # } + # + # @!attribute [rw] name + # The name of the attribute to filter on. + # @return [String] + # + # @!attribute [rw] values + # An array values to filter for. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/PoolFilter AWS API Documentation + # + class PoolFilter < Struct.new( + :name, + :values) + SENSITIVE = [] + include Aws::Structure + end + + # The information for a pool in an Amazon Web Services account. + # + # @!attribute [rw] pool_arn + # The Amazon Resource Name (ARN) for the pool. + # @return [String] + # + # @!attribute [rw] pool_id + # The unique identifier for the pool. + # @return [String] + # + # @!attribute [rw] status + # The current status of the pool. + # @return [String] + # + # @!attribute [rw] message_type + # The type of message. Valid values are TRANSACTIONAL for messages + # that are critical or time-sensitive and PROMOTIONAL for messages + # that aren't critical or time-sensitive. + # @return [String] + # + # @!attribute [rw] two_way_enabled + # When set to true you can receive incoming text messages from your + # end recipients using the TwoWayChannelArn. + # @return [Boolean] + # + # @!attribute [rw] two_way_channel_arn + # The Amazon Resource Name (ARN) of the two way channel. + # @return [String] + # + # @!attribute [rw] self_managed_opt_outs_enabled + # When set to false, an end recipient sends a message that begins with + # HELP or STOP to one of your dedicated numbers, Amazon Pinpoint + # automatically replies with a customizable message and adds the end + # recipient to the OptOutList. When set to true you're responsible + # for responding to HELP and STOP requests. You're also responsible + # for tracking and honoring opt-out requests. For more information see + # [Self-managed opt-outs][1] + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-sms-managing.html#settings-account-sms-self-managed-opt-out + # @return [Boolean] + # + # @!attribute [rw] opt_out_list_name + # The name of the OptOutList associated with the pool. + # @return [String] + # + # @!attribute [rw] shared_routes_enabled + # Allows you to enable shared routes on your pool. + # + # By default, this is set to `False`. If you set this value to `True`, + # your messages are sent using phone numbers or sender IDs (depending + # on the country) that are shared with other Amazon Pinpoint users. In + # some countries, such as the United States, senders aren't allowed + # to use shared routes and must use a dedicated phone number or short + # code. + # @return [Boolean] + # + # @!attribute [rw] deletion_protection_enabled + # When set to true the pool can't be deleted. + # @return [Boolean] + # + # @!attribute [rw] created_timestamp + # The time when the pool was created, in [UNIX epoch time][1] format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/PoolInformation AWS API Documentation + # + class PoolInformation < Struct.new( + :pool_arn, + :pool_id, + :status, + :message_type, + :two_way_enabled, + :two_way_channel_arn, + :self_managed_opt_outs_enabled, + :opt_out_list_name, + :shared_routes_enabled, + :deletion_protection_enabled, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # Information about origination identities associated with a pool that + # meets a specified criteria. + # + # @note When making an API call, you may pass PoolOriginationIdentitiesFilter + # data as a hash: + # + # { + # name: "iso-country-code", # required, accepts iso-country-code, number-capability + # values: ["FilterValue"], # required + # } + # + # @!attribute [rw] name + # The name of the attribute to filter on. + # @return [String] + # + # @!attribute [rw] values + # An array values to filter for. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/PoolOriginationIdentitiesFilter AWS API Documentation + # + class PoolOriginationIdentitiesFilter < Struct.new( + :name, + :values) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass PutKeywordRequest + # data as a hash: + # + # { + # origination_identity: "PhoneOrPoolIdOrArn", # required + # keyword: "Keyword", # required + # keyword_message: "KeywordMessage", # required + # keyword_action: "AUTOMATIC_RESPONSE", # accepts AUTOMATIC_RESPONSE, OPT_OUT, OPT_IN + # } + # + # @!attribute [rw] origination_identity + # The origination identity to use such as a PhoneNumberId, + # PhoneNumberArn, SenderId or SenderIdArn. You can use + # DescribePhoneNumbers get the values for PhoneNumberId and + # PhoneNumberArn while DescribeSenderIds can be used to get the values + # for SenderId and SenderIdArn. + # @return [String] + # + # @!attribute [rw] keyword + # The new keyword to add. + # @return [String] + # + # @!attribute [rw] keyword_message + # The message associated with the keyword. + # + # * AUTOMATIC\_RESPONSE: A message is sent to the recipient. + # + # * OPT\_OUT: Keeps the recipient from receiving future messages. + # + # * OPT\_IN: The recipient wants to receive future messages. + # @return [String] + # + # @!attribute [rw] keyword_action + # The action to perform for the new keyword when it is received. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/PutKeywordRequest AWS API Documentation + # + class PutKeywordRequest < Struct.new( + :origination_identity, + :keyword, + :keyword_message, + :keyword_action) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] origination_identity_arn + # The PhoneNumberArn or PoolArn that the keyword was associated with. + # @return [String] + # + # @!attribute [rw] origination_identity + # The PhoneNumberId or PoolId that the keyword was associated with. + # @return [String] + # + # @!attribute [rw] keyword + # The keyword that was added. + # @return [String] + # + # @!attribute [rw] keyword_message + # The message associated with the keyword. + # @return [String] + # + # @!attribute [rw] keyword_action + # The action to perform when the keyword is used. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/PutKeywordResult AWS API Documentation + # + class PutKeywordResult < Struct.new( + :origination_identity_arn, + :origination_identity, + :keyword, + :keyword_message, + :keyword_action) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass PutOptedOutNumberRequest + # data as a hash: + # + # { + # opt_out_list_name: "OptOutListNameOrArn", # required + # opted_out_number: "PhoneNumber", # required + # } + # + # @!attribute [rw] opt_out_list_name + # The OptOutListName or OptOutListArn to add the phone number to. + # @return [String] + # + # @!attribute [rw] opted_out_number + # The phone number to add to the OptOutList in E.164 format. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/PutOptedOutNumberRequest AWS API Documentation + # + class PutOptedOutNumberRequest < Struct.new( + :opt_out_list_name, + :opted_out_number) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] opt_out_list_arn + # The OptOutListArn that the phone number was removed from. + # @return [String] + # + # @!attribute [rw] opt_out_list_name + # The OptOutListName that the phone number was removed from. + # @return [String] + # + # @!attribute [rw] opted_out_number + # The phone number that was added to the OptOutList. + # @return [String] + # + # @!attribute [rw] opted_out_timestamp + # The time that the phone number was added to the OptOutList, in [UNIX + # epoch time][1] format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @!attribute [rw] end_user_opted_out + # This is true if it was the end user who requested their phone number + # be removed. + # @return [Boolean] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/PutOptedOutNumberResult AWS API Documentation + # + class PutOptedOutNumberResult < Struct.new( + :opt_out_list_arn, + :opt_out_list_name, + :opted_out_number, + :opted_out_timestamp, + :end_user_opted_out) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass ReleasePhoneNumberRequest + # data as a hash: + # + # { + # phone_number_id: "PhoneNumberIdOrArn", # required + # } + # + # @!attribute [rw] phone_number_id + # The PhoneNumberId or PhoneNumberArn of the phone number to release. + # You can use DescribePhoneNumbers to get the values for PhoneNumberId + # and PhoneNumberArn. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ReleasePhoneNumberRequest AWS API Documentation + # + class ReleasePhoneNumberRequest < Struct.new( + :phone_number_id) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] phone_number_arn + # The PhoneNumberArn of the phone number that was released. + # @return [String] + # + # @!attribute [rw] phone_number_id + # The PhoneNumberId of the phone number that was released. + # @return [String] + # + # @!attribute [rw] phone_number + # The phone number that was released. + # @return [String] + # + # @!attribute [rw] status + # The current status of the request. + # @return [String] + # + # @!attribute [rw] iso_country_code + # The two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region. + # @return [String] + # + # @!attribute [rw] message_type + # The message type that was associated with the phone number. + # @return [String] + # + # @!attribute [rw] number_capabilities + # Specifies if the number could be used for text messages, voice, or + # both. + # @return [Array] + # + # @!attribute [rw] number_type + # The type of number that was released. + # @return [String] + # + # @!attribute [rw] monthly_leasing_price + # The monthly price of the phone number, in US dollars. + # @return [String] + # + # @!attribute [rw] two_way_enabled + # By default this is set to false. When set to true you can receive + # incoming text messages from your end recipients. + # @return [Boolean] + # + # @!attribute [rw] two_way_channel_arn + # The Amazon Resource Name (ARN) of the TwoWayChannel. + # @return [String] + # + # @!attribute [rw] self_managed_opt_outs_enabled + # By default this is set to false. When an end recipient sends a + # message that begins with HELP or STOP to one of your dedicated + # numbers, Amazon Pinpoint automatically replies with a customizable + # message and adds the end recipient to the OptOutList. When set to + # true you're responsible for responding to HELP and STOP requests. + # You're also responsible for tracking and honoring opt-out requests. + # @return [Boolean] + # + # @!attribute [rw] opt_out_list_name + # The name of the OptOutList that was associated with the phone + # number. + # @return [String] + # + # @!attribute [rw] created_timestamp + # The time when the phone number was created, in [UNIX epoch time][1] + # format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ReleasePhoneNumberResult AWS API Documentation + # + class ReleasePhoneNumberResult < Struct.new( + :phone_number_arn, + :phone_number_id, + :phone_number, + :status, + :iso_country_code, + :message_type, + :number_capabilities, + :number_type, + :monthly_leasing_price, + :two_way_enabled, + :two_way_channel_arn, + :self_managed_opt_outs_enabled, + :opt_out_list_name, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass RequestPhoneNumberRequest + # data as a hash: + # + # { + # iso_country_code: "IsoCountryCode", # required + # message_type: "TRANSACTIONAL", # required, accepts TRANSACTIONAL, PROMOTIONAL + # number_capabilities: ["SMS"], # required, accepts SMS, VOICE + # number_type: "LONG_CODE", # required, accepts LONG_CODE, TOLL_FREE, TEN_DLC + # opt_out_list_name: "OptOutListNameOrArn", + # pool_id: "PoolIdOrArn", + # registration_id: "RegistrationId", + # deletion_protection_enabled: false, + # tags: [ + # { + # key: "TagKey", # required + # value: "TagValue", # required + # }, + # ], + # client_token: "ClientToken", + # } + # + # @!attribute [rw] iso_country_code + # The two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region. + # @return [String] + # + # @!attribute [rw] message_type + # The type of message. Valid values are TRANSACTIONAL for messages + # that are critical or time-sensitive and PROMOTIONAL for messages + # that aren't critical or time-sensitive. + # @return [String] + # + # @!attribute [rw] number_capabilities + # Indicates if the phone number will be used for text messages, voice + # messages, or both. + # @return [Array] + # + # @!attribute [rw] number_type + # The type of phone number to request. + # @return [String] + # + # @!attribute [rw] opt_out_list_name + # The name of the OptOutList to associate with the phone number. You + # can use the OutOutListName or OptPutListArn. + # @return [String] + # + # @!attribute [rw] pool_id + # The pool to associated with the phone number. You can use the PoolId + # or PoolArn. + # @return [String] + # + # @!attribute [rw] registration_id + # Use this field to attach your phone number for an external + # registration process. + # @return [String] + # + # @!attribute [rw] deletion_protection_enabled + # By default this is set to false. When set to true the phone number + # can't be deleted. + # @return [Boolean] + # + # @!attribute [rw] tags + # An array of tags (key and value pairs) associate with the requested + # phone number. + # @return [Array] + # + # @!attribute [rw] client_token + # Unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. If you don't specify a client token, a + # randomly generated token is used for the request to ensure + # idempotency. + # + # **A suitable default value is auto-generated.** You should normally + # not need to pass this option. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/RequestPhoneNumberRequest AWS API Documentation + # + class RequestPhoneNumberRequest < Struct.new( + :iso_country_code, + :message_type, + :number_capabilities, + :number_type, + :opt_out_list_name, + :pool_id, + :registration_id, + :deletion_protection_enabled, + :tags, + :client_token) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] phone_number_arn + # The Amazon Resource Name (ARN) of the requested phone number. + # @return [String] + # + # @!attribute [rw] phone_number_id + # The unique identifier of the new phone number. + # @return [String] + # + # @!attribute [rw] phone_number + # The new phone number that was requested. + # @return [String] + # + # @!attribute [rw] status + # The current status of the request. + # @return [String] + # + # @!attribute [rw] iso_country_code + # The two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region. + # @return [String] + # + # @!attribute [rw] message_type + # The type of message. Valid values are TRANSACTIONAL for messages + # that are critical or time-sensitive and PROMOTIONAL for messages + # that aren't critical or time-sensitive. + # @return [String] + # + # @!attribute [rw] number_capabilities + # Indicates if the phone number will be used for text messages, voice + # messages or both. + # @return [Array] + # + # @!attribute [rw] number_type + # The type of number that was released. + # @return [String] + # + # @!attribute [rw] monthly_leasing_price + # The monthly price, in US dollars, to lease the phone number. + # @return [String] + # + # @!attribute [rw] two_way_enabled + # By default this is set to false. When set to true you can receive + # incoming text messages from your end recipients. + # @return [Boolean] + # + # @!attribute [rw] two_way_channel_arn + # The ARN used to identify the two way channel. + # @return [String] + # + # @!attribute [rw] self_managed_opt_outs_enabled + # By default this is set to false. When an end recipient sends a + # message that begins with HELP or STOP to one of your dedicated + # numbers, Amazon Pinpoint automatically replies with a customizable + # message and adds the end recipient to the OptOutList. When set to + # true you're responsible for responding to HELP and STOP requests. + # You're also responsible for tracking and honoring opt-out requests. + # @return [Boolean] + # + # @!attribute [rw] opt_out_list_name + # The name of the OptOutList that is associated with the requested + # phone number. + # @return [String] + # + # @!attribute [rw] deletion_protection_enabled + # By default this is set to false. When set to true the phone number + # can't be deleted. + # @return [Boolean] + # + # @!attribute [rw] pool_id + # The unique identifier of the pool associated with the phone number + # @return [String] + # + # @!attribute [rw] tags + # An array of key and value pair tags that are associated with the + # phone number. + # @return [Array] + # + # @!attribute [rw] created_timestamp + # The time when the phone number was created, in [UNIX epoch time][1] + # format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/RequestPhoneNumberResult AWS API Documentation + # + class RequestPhoneNumberResult < Struct.new( + :phone_number_arn, + :phone_number_id, + :phone_number, + :status, + :iso_country_code, + :message_type, + :number_capabilities, + :number_type, + :monthly_leasing_price, + :two_way_enabled, + :two_way_channel_arn, + :self_managed_opt_outs_enabled, + :opt_out_list_name, + :deletion_protection_enabled, + :pool_id, + :tags, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # A requested resource couldn't be found. + # + # @!attribute [rw] message + # @return [String] + # + # @!attribute [rw] resource_type + # The type of resource that caused the exception. + # @return [String] + # + # @!attribute [rw] resource_id + # The unique identifier of the resource. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ResourceNotFoundException AWS API Documentation + # + class ResourceNotFoundException < Struct.new( + :message, + :resource_type, + :resource_id) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass SendTextMessageRequest + # data as a hash: + # + # { + # destination_phone_number: "PhoneNumber", # required + # origination_identity: "TextMessageOriginationIdentity", + # message_body: "TextMessageBody", + # message_type: "TRANSACTIONAL", # accepts TRANSACTIONAL, PROMOTIONAL + # keyword: "Keyword", + # configuration_set_name: "ConfigurationSetNameOrArn", + # max_price: "MaxPrice", + # time_to_live: 1, + # context: { + # "ContextKey" => "ContextValue", + # }, + # destination_country_parameters: { + # "IN_TEMPLATE_ID" => "DestinationCountryParameterValue", + # }, + # dry_run: false, + # } + # + # @!attribute [rw] destination_phone_number + # The destination phone number in E.164 format. + # @return [String] + # + # @!attribute [rw] origination_identity + # The origination identity of the message. This can be either the + # PhoneNumber, PhoneNumberId, PhoneNumberArn, SenderId, SenderIdArn, + # PoolId, or PoolArn. + # @return [String] + # + # @!attribute [rw] message_body + # The body of the text message. + # @return [String] + # + # @!attribute [rw] message_type + # The type of message. Valid values are TRANSACTIONAL for messages + # that are critical or time-sensitive and PROMOTIONAL for messages + # that aren't critical or time-sensitive. + # @return [String] + # + # @!attribute [rw] keyword + # When you register a short code in the US, you must specify a program + # name. If you don’t have a US short code, omit this attribute. + # @return [String] + # + # @!attribute [rw] configuration_set_name + # The name of the configuration set to use. This can be either the + # ConfigurationSetName or ConfigurationSetArn. + # @return [String] + # + # @!attribute [rw] max_price + # The maximum amount that you want to spend, in US dollars, per each + # text message part. A text message can contain multiple parts. + # @return [String] + # + # @!attribute [rw] time_to_live + # How long the text message is valid for. By default this is 72 hours. + # @return [Integer] + # + # @!attribute [rw] context + # You can specify custom data in this field. If you do, that data is + # logged to the event destination. + # @return [Hash] + # + # @!attribute [rw] destination_country_parameters + # This field is used for any country-specific registration + # requirements. Currently, this setting is only used when you send + # messages to recipients in India using a sender ID. For more + # information see [Special requirements for sending SMS messages to + # recipients in India][1]. + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-senderid-india.html + # @return [Hash] + # + # @!attribute [rw] dry_run + # When set to true, the message is checked and validated, but isn't + # sent to the end recipient. + # @return [Boolean] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SendTextMessageRequest AWS API Documentation + # + class SendTextMessageRequest < Struct.new( + :destination_phone_number, + :origination_identity, + :message_body, + :message_type, + :keyword, + :configuration_set_name, + :max_price, + :time_to_live, + :context, + :destination_country_parameters, + :dry_run) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] message_id + # The unique identifier for the message. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SendTextMessageResult AWS API Documentation + # + class SendTextMessageResult < Struct.new( + :message_id) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass SendVoiceMessageRequest + # data as a hash: + # + # { + # destination_phone_number: "PhoneNumber", # required + # origination_identity: "VoiceMessageOriginationIdentity", # required + # message_body: "VoiceMessageBody", + # message_body_text_type: "TEXT", # accepts TEXT, SSML + # voice_id: "AMY", # accepts AMY, ASTRID, BIANCA, BRIAN, CAMILA, CARLA, CARMEN, CELINE, CHANTAL, CONCHITA, CRISTIANO, DORA, EMMA, ENRIQUE, EWA, FILIZ, GERAINT, GIORGIO, GWYNETH, HANS, INES, IVY, JACEK, JAN, JOANNA, JOEY, JUSTIN, KARL, KENDRA, KIMBERLY, LEA, LIV, LOTTE, LUCIA, LUPE, MADS, MAJA, MARLENE, MATHIEU, MATTHEW, MAXIM, MIA, MIGUEL, MIZUKI, NAJA, NICOLE, PENELOPE, RAVEENA, RICARDO, RUBEN, RUSSELL, SALLI, SEOYEON, TAKUMI, TATYANA, VICKI, VITORIA, ZEINA, ZHIYU + # configuration_set_name: "ConfigurationSetNameOrArn", + # max_price_per_minute: "MaxPrice", + # time_to_live: 1, + # context: { + # "ContextKey" => "ContextValue", + # }, + # dry_run: false, + # } + # + # @!attribute [rw] destination_phone_number + # The destination phone number in E.164 format. + # @return [String] + # + # @!attribute [rw] origination_identity + # The origination identity to use for the voice call. This can be the + # PhoneNumber, PhoneNumberId, PhoneNumberArn, PoolId, or PoolArn. + # @return [String] + # + # @!attribute [rw] message_body + # The text to convert to a voice message. + # @return [String] + # + # @!attribute [rw] message_body_text_type + # Specifies if the MessageBody field contains text or [speech + # synthesis markup language (SSML)][1]. + # + # * TEXT: This is the default value. When used the maximum character + # limit is 3000. + # + # * SSML: When used the maximum character limit is 6000 including SSML + # tagging. + # + # + # + # [1]: https://docs.aws.amazon.com/polly/latest/dg/what-is.html + # @return [String] + # + # @!attribute [rw] voice_id + # The voice for the [Amazon Polly][1] service to use. By default this + # is set to "MATTHEW". + # + # + # + # [1]: https://docs.aws.amazon.com/polly/latest/dg/what-is.html + # @return [String] + # + # @!attribute [rw] configuration_set_name + # The name of the configuration set to use. This can be either the + # ConfigurationSetName or ConfigurationSetArn. + # @return [String] + # + # @!attribute [rw] max_price_per_minute + # The maximum amount to spend per voice message, in US dollars. + # @return [String] + # + # @!attribute [rw] time_to_live + # How long the voice message is valid for. By default this is 72 + # hours. + # @return [Integer] + # + # @!attribute [rw] context + # You can specify custom data in this field. If you do, that data is + # logged to the event destination. + # @return [Hash] + # + # @!attribute [rw] dry_run + # When set to true, the message is checked and validated, but isn't + # sent to the end recipient. + # @return [Boolean] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SendVoiceMessageRequest AWS API Documentation + # + class SendVoiceMessageRequest < Struct.new( + :destination_phone_number, + :origination_identity, + :message_body, + :message_body_text_type, + :voice_id, + :configuration_set_name, + :max_price_per_minute, + :time_to_live, + :context, + :dry_run) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] message_id + # The unique identifier for the message. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SendVoiceMessageResult AWS API Documentation + # + class SendVoiceMessageResult < Struct.new( + :message_id) + SENSITIVE = [] + include Aws::Structure + end + + # The alphanumeric sender ID in a specific country that you want to + # describe. For more information on sender IDs see [Requesting sender + # IDs for SMS messaging with Amazon Pinpoint ][1] in the *Amazon + # Pinpoint User Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-awssupport-sender-id.html + # + # @note When making an API call, you may pass SenderIdAndCountry + # data as a hash: + # + # { + # sender_id: "SenderIdOrArn", # required + # iso_country_code: "IsoCountryCode", # required + # } + # + # @!attribute [rw] sender_id + # The unique identifier of the sender. + # @return [String] + # + # @!attribute [rw] iso_country_code + # The two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SenderIdAndCountry AWS API Documentation + # + class SenderIdAndCountry < Struct.new( + :sender_id, + :iso_country_code) + SENSITIVE = [] + include Aws::Structure + end + + # The information for a sender ID that meets a specified criteria. + # + # @note When making an API call, you may pass SenderIdFilter + # data as a hash: + # + # { + # name: "sender-id", # required, accepts sender-id, iso-country-code, message-type + # values: ["FilterValue"], # required + # } + # + # @!attribute [rw] name + # The name of the attribute to filter on. + # @return [String] + # + # @!attribute [rw] values + # An array of values to filter for. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SenderIdFilter AWS API Documentation + # + class SenderIdFilter < Struct.new( + :name, + :values) + SENSITIVE = [] + include Aws::Structure + end + + # The information for all SenderIds in an Amazon Web Services account. + # + # @!attribute [rw] sender_id_arn + # The Amazon Resource Name (ARN) associated with the SenderId. + # @return [String] + # + # @!attribute [rw] sender_id + # The alphanumeric sender ID in a specific country that you'd like to + # describe. + # @return [String] + # + # @!attribute [rw] iso_country_code + # The two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region. + # @return [String] + # + # @!attribute [rw] message_types + # The type of message. Valid values are TRANSACTIONAL for messages + # that are critical or time-sensitive and PROMOTIONAL for messages + # that aren't critical or time-sensitive. + # @return [Array] + # + # @!attribute [rw] monthly_leasing_price + # The monthly leasing price, in US dollars. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SenderIdInformation AWS API Documentation + # + class SenderIdInformation < Struct.new( + :sender_id_arn, + :sender_id, + :iso_country_code, + :message_types, + :monthly_leasing_price) + SENSITIVE = [] + include Aws::Structure + end + + # The request would cause a service quota to be exceeded. + # + # @!attribute [rw] message + # @return [String] + # + # @!attribute [rw] reason + # The reason for the exception. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ServiceQuotaExceededException AWS API Documentation + # + class ServiceQuotaExceededException < Struct.new( + :message, + :reason) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass SetDefaultMessageTypeRequest + # data as a hash: + # + # { + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # message_type: "TRANSACTIONAL", # required, accepts TRANSACTIONAL, PROMOTIONAL + # } + # + # @!attribute [rw] configuration_set_name + # The configuration set to update with a new default message type. + # This field can be the ConsigurationSetName or ConfigurationSetArn. + # @return [String] + # + # @!attribute [rw] message_type + # The type of message. Valid values are TRANSACTIONAL for messages + # that are critical or time-sensitive and PROMOTIONAL for messages + # that aren't critical or time-sensitive. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SetDefaultMessageTypeRequest AWS API Documentation + # + class SetDefaultMessageTypeRequest < Struct.new( + :configuration_set_name, + :message_type) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] configuration_set_arn + # The Amazon Resource Name (ARN) of the updated configuration set. + # @return [String] + # + # @!attribute [rw] configuration_set_name + # The name of the configuration set that was updated. + # @return [String] + # + # @!attribute [rw] message_type + # The new default message type of the configuration set. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SetDefaultMessageTypeResult AWS API Documentation + # + class SetDefaultMessageTypeResult < Struct.new( + :configuration_set_arn, + :configuration_set_name, + :message_type) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass SetDefaultSenderIdRequest + # data as a hash: + # + # { + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # sender_id: "SenderId", # required + # } + # + # @!attribute [rw] configuration_set_name + # The configuration set to updated with a new default SenderId. This + # field can be the ConsigurationSetName or ConfigurationSetArn. + # @return [String] + # + # @!attribute [rw] sender_id + # The current sender ID for the configuration set. When sending a text + # message to a destination country which supports SenderIds, the + # default sender ID on the configuration set specified on + # SendTextMessage will be used if no dedicated origination phone + # numbers or registered SenderIds are available in your account, + # instead of a generic sender ID, such as 'NOTICE'. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SetDefaultSenderIdRequest AWS API Documentation + # + class SetDefaultSenderIdRequest < Struct.new( + :configuration_set_name, + :sender_id) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] configuration_set_arn + # The Amazon Resource Name (ARN) of the updated configuration set. + # @return [String] + # + # @!attribute [rw] configuration_set_name + # The name of the configuration set that was updated. + # @return [String] + # + # @!attribute [rw] sender_id + # The default sender ID to set for the ConfigurationSet. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SetDefaultSenderIdResult AWS API Documentation + # + class SetDefaultSenderIdResult < Struct.new( + :configuration_set_arn, + :configuration_set_name, + :sender_id) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass SetTextMessageSpendLimitOverrideRequest + # data as a hash: + # + # { + # monthly_limit: 1, # required + # } + # + # @!attribute [rw] monthly_limit + # The new monthly limit to enforce on text messages. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SetTextMessageSpendLimitOverrideRequest AWS API Documentation + # + class SetTextMessageSpendLimitOverrideRequest < Struct.new( + :monthly_limit) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] monthly_limit + # The current monthly limit to enforce on sending text messages. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SetTextMessageSpendLimitOverrideResult AWS API Documentation + # + class SetTextMessageSpendLimitOverrideResult < Struct.new( + :monthly_limit) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass SetVoiceMessageSpendLimitOverrideRequest + # data as a hash: + # + # { + # monthly_limit: 1, # required + # } + # + # @!attribute [rw] monthly_limit + # The new monthly limit to enforce on voice messages. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SetVoiceMessageSpendLimitOverrideRequest AWS API Documentation + # + class SetVoiceMessageSpendLimitOverrideRequest < Struct.new( + :monthly_limit) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] monthly_limit + # The current monthly limit to enforce on sending voice messages. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SetVoiceMessageSpendLimitOverrideResult AWS API Documentation + # + class SetVoiceMessageSpendLimitOverrideResult < Struct.new( + :monthly_limit) + SENSITIVE = [] + include Aws::Structure + end + + # An object that defines an Amazon SNS destination for events. You can + # use Amazon SNS to send notification when certain events occur. + # + # @note When making an API call, you may pass SnsDestination + # data as a hash: + # + # { + # topic_arn: "SnsTopicArn", # required + # } + # + # @!attribute [rw] topic_arn + # The Amazon Resource Name (ARN) of the Amazon SNS topic that you want + # to publish events to. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SnsDestination AWS API Documentation + # + class SnsDestination < Struct.new( + :topic_arn) + SENSITIVE = [] + include Aws::Structure + end + + # Describes the current Amazon Pinpoint monthly spend limits for sending + # voice and text messages. For more information on increasing your + # monthly spend limit, see [ Requesting increases to your monthly SMS + # spending quota for Amazon Pinpoint ][1] in the *Amazon Pinpoint User + # Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-awssupport-spend-threshold.html + # + # @!attribute [rw] name + # The name for the SpendLimit. + # @return [String] + # + # @!attribute [rw] enforced_limit + # The maximum amount of money, in US dollars, that you want to be able + # to spend sending messages each month. This value has to be less than + # or equal to the amount in `MaxLimit`. To use this custom limit, + # `Overridden` must be set to true. + # @return [Integer] + # + # @!attribute [rw] max_limit + # The maximum amount of money that you are able to spend to send + # messages each month, in US dollars. + # @return [Integer] + # + # @!attribute [rw] overridden + # When set to `True`, the value that has been specified in the + # `EnforcedLimit` is used to determine the maximum amount in US + # dollars that can be spent to send messages each month, in US + # dollars. + # @return [Boolean] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/SpendLimit AWS API Documentation + # + class SpendLimit < Struct.new( + :name, + :enforced_limit, + :max_limit, + :overridden) + SENSITIVE = [] + include Aws::Structure + end + + # The list of tags to be added to the specified topic. + # + # @note When making an API call, you may pass Tag + # data as a hash: + # + # { + # key: "TagKey", # required + # value: "TagValue", # required + # } + # + # @!attribute [rw] key + # The key identifier, or name, of the tag. + # @return [String] + # + # @!attribute [rw] value + # The string value associated with the key of the tag. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/Tag AWS API Documentation + # + class Tag < Struct.new( + :key, + :value) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass TagResourceRequest + # data as a hash: + # + # { + # resource_arn: "AmazonResourceName", # required + # tags: [ # required + # { + # key: "TagKey", # required + # value: "TagValue", # required + # }, + # ], + # } + # + # @!attribute [rw] resource_arn + # The Amazon Resource Name (ARN) of the resource. + # @return [String] + # + # @!attribute [rw] tags + # An array of key and value pair tags that are associated with the + # resource. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/TagResourceRequest AWS API Documentation + # + class TagResourceRequest < Struct.new( + :resource_arn, + :tags) + SENSITIVE = [] + include Aws::Structure + end + + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/TagResourceResult AWS API Documentation + # + class TagResourceResult < Aws::EmptyStructure; end + + # An error that occurred because too many requests were sent during a + # certain amount of time. + # + # @!attribute [rw] message + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ThrottlingException AWS API Documentation + # + class ThrottlingException < Struct.new( + :message) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass UntagResourceRequest + # data as a hash: + # + # { + # resource_arn: "AmazonResourceName", # required + # tag_keys: ["TagKey"], # required + # } + # + # @!attribute [rw] resource_arn + # The Amazon Resource Name (ARN) of the resource. + # @return [String] + # + # @!attribute [rw] tag_keys + # An array of tag key values to unassociate with the resource. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/UntagResourceRequest AWS API Documentation + # + class UntagResourceRequest < Struct.new( + :resource_arn, + :tag_keys) + SENSITIVE = [] + include Aws::Structure + end + + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/UntagResourceResult AWS API Documentation + # + class UntagResourceResult < Aws::EmptyStructure; end + + # @note When making an API call, you may pass UpdateEventDestinationRequest + # data as a hash: + # + # { + # configuration_set_name: "ConfigurationSetNameOrArn", # required + # event_destination_name: "EventDestinationName", # required + # enabled: false, + # matching_event_types: ["ALL"], # accepts ALL, TEXT_ALL, TEXT_SENT, TEXT_PENDING, TEXT_QUEUED, TEXT_SUCCESSFUL, TEXT_DELIVERED, TEXT_INVALID, TEXT_INVALID_MESSAGE, TEXT_UNREACHABLE, TEXT_CARRIER_UNREACHABLE, TEXT_BLOCKED, TEXT_CARRIER_BLOCKED, TEXT_SPAM, TEXT_UNKNOWN, TEXT_TTL_EXPIRED, VOICE_ALL, VOICE_INITIATED, VOICE_RINGING, VOICE_ANSWERED, VOICE_COMPLETED, VOICE_BUSY, VOICE_NO_ANSWER, VOICE_FAILED, VOICE_TTL_EXPIRED + # cloud_watch_logs_destination: { + # iam_role_arn: "IamRoleArn", # required + # log_group_arn: "LogGroupArn", # required + # }, + # kinesis_firehose_destination: { + # iam_role_arn: "IamRoleArn", # required + # delivery_stream_arn: "DeliveryStreamArn", # required + # }, + # sns_destination: { + # topic_arn: "SnsTopicArn", # required + # }, + # } + # + # @!attribute [rw] configuration_set_name + # The configuration set to update with the new event destination. + # Valid values for this can be the ConfigurationSetName or + # ConfigurationSetArn. + # @return [String] + # + # @!attribute [rw] event_destination_name + # The name to use for the event destination. + # @return [String] + # + # @!attribute [rw] enabled + # When set to true logging is enabled. + # @return [Boolean] + # + # @!attribute [rw] matching_event_types + # An array of event types that determine which events to log. + # @return [Array] + # + # @!attribute [rw] cloud_watch_logs_destination + # An object that contains information about an event destination that + # sends data to CloudWatch Logs. + # @return [Types::CloudWatchLogsDestination] + # + # @!attribute [rw] kinesis_firehose_destination + # An object that contains information about an event destination for + # logging to Kinesis Data Firehose. + # @return [Types::KinesisFirehoseDestination] + # + # @!attribute [rw] sns_destination + # An object that contains information about an event destination that + # sends data to Amazon SNS. + # @return [Types::SnsDestination] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/UpdateEventDestinationRequest AWS API Documentation + # + class UpdateEventDestinationRequest < Struct.new( + :configuration_set_name, + :event_destination_name, + :enabled, + :matching_event_types, + :cloud_watch_logs_destination, + :kinesis_firehose_destination, + :sns_destination) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] configuration_set_arn + # The Amazon Resource Name (ARN) for the ConfigurationSet that was + # updated. + # @return [String] + # + # @!attribute [rw] configuration_set_name + # The name of the configuration set. + # @return [String] + # + # @!attribute [rw] event_destination + # An EventDestination object containing the details of where events + # will be logged. + # @return [Types::EventDestination] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/UpdateEventDestinationResult AWS API Documentation + # + class UpdateEventDestinationResult < Struct.new( + :configuration_set_arn, + :configuration_set_name, + :event_destination) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass UpdatePhoneNumberRequest + # data as a hash: + # + # { + # phone_number_id: "PhoneNumberIdOrArn", # required + # two_way_enabled: false, + # two_way_channel_arn: "TwoWayChannelArn", + # self_managed_opt_outs_enabled: false, + # opt_out_list_name: "OptOutListNameOrArn", + # deletion_protection_enabled: false, + # } + # + # @!attribute [rw] phone_number_id + # The unique identifier of the phone number. Valid values for this + # field can be either the PhoneNumberId or PhoneNumberArn. + # @return [String] + # + # @!attribute [rw] two_way_enabled + # By default this is set to false. When set to true you can receive + # incoming text messages from your end recipients. + # @return [Boolean] + # + # @!attribute [rw] two_way_channel_arn + # The Amazon Resource Name (ARN) of the two way channel. + # @return [String] + # + # @!attribute [rw] self_managed_opt_outs_enabled + # By default this is set to false. When an end recipient sends a + # message that begins with HELP or STOP to one of your dedicated + # numbers, Amazon Pinpoint automatically replies with a customizable + # message and adds the end recipient to the OptOutList. When set to + # true you're responsible for responding to HELP and STOP requests. + # You're also responsible for tracking and honoring opt-out requests. + # @return [Boolean] + # + # @!attribute [rw] opt_out_list_name + # The OptOutList to add the phone number to. Valid values for this + # field can be either the OutOutListName or OutOutListArn. + # @return [String] + # + # @!attribute [rw] deletion_protection_enabled + # By default this is set to false. When set to true the phone number + # can't be deleted. + # @return [Boolean] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/UpdatePhoneNumberRequest AWS API Documentation + # + class UpdatePhoneNumberRequest < Struct.new( + :phone_number_id, + :two_way_enabled, + :two_way_channel_arn, + :self_managed_opt_outs_enabled, + :opt_out_list_name, + :deletion_protection_enabled) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] phone_number_arn + # The Amazon Resource Name (ARN) of the updated phone number. + # @return [String] + # + # @!attribute [rw] phone_number_id + # The unique identifier of the phone number. + # @return [String] + # + # @!attribute [rw] phone_number + # The phone number that was updated. + # @return [String] + # + # @!attribute [rw] status + # The current status of the request. + # @return [String] + # + # @!attribute [rw] iso_country_code + # The two-character code, in ISO 3166-1 alpha-2 format, for the + # country or region. + # @return [String] + # + # @!attribute [rw] message_type + # The type of message. Valid values are TRANSACTIONAL for messages + # that are critical or time-sensitive and PROMOTIONAL for messages + # that aren't critical or time-sensitive. + # @return [String] + # + # @!attribute [rw] number_capabilities + # Specifies if the number could be used for text messages, voice or + # both. + # @return [Array] + # + # @!attribute [rw] number_type + # The type of number that was requested. + # @return [String] + # + # @!attribute [rw] monthly_leasing_price + # The monthly leasing price of the phone number, in US dollars. + # @return [String] + # + # @!attribute [rw] two_way_enabled + # By default this is set to false. When set to true you can receive + # incoming text messages from your end recipients. + # @return [Boolean] + # + # @!attribute [rw] two_way_channel_arn + # The Amazon Resource Name (ARN) of the two way channel. + # @return [String] + # + # @!attribute [rw] self_managed_opt_outs_enabled + # This is true if self managed opt-out are enabled. + # @return [Boolean] + # + # @!attribute [rw] opt_out_list_name + # The name of the OptOutList associated with the phone number. + # @return [String] + # + # @!attribute [rw] deletion_protection_enabled + # When set to true the phone number can't be deleted. + # @return [Boolean] + # + # @!attribute [rw] created_timestamp + # The time when the phone number was created, in [UNIX epoch time][1] + # format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/UpdatePhoneNumberResult AWS API Documentation + # + class UpdatePhoneNumberResult < Struct.new( + :phone_number_arn, + :phone_number_id, + :phone_number, + :status, + :iso_country_code, + :message_type, + :number_capabilities, + :number_type, + :monthly_leasing_price, + :two_way_enabled, + :two_way_channel_arn, + :self_managed_opt_outs_enabled, + :opt_out_list_name, + :deletion_protection_enabled, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass UpdatePoolRequest + # data as a hash: + # + # { + # pool_id: "PoolIdOrArn", # required + # two_way_enabled: false, + # two_way_channel_arn: "TwoWayChannelArn", + # self_managed_opt_outs_enabled: false, + # opt_out_list_name: "OptOutListNameOrArn", + # shared_routes_enabled: false, + # deletion_protection_enabled: false, + # } + # + # @!attribute [rw] pool_id + # The unique identifier of the pool to update. Valid values are either + # the PoolId or PoolArn. + # @return [String] + # + # @!attribute [rw] two_way_enabled + # By default this is set to false. When set to true you can receive + # incoming text messages from your end recipients. + # @return [Boolean] + # + # @!attribute [rw] two_way_channel_arn + # The Amazon Resource Name (ARN) of the two way channel. + # @return [String] + # + # @!attribute [rw] self_managed_opt_outs_enabled + # By default this is set to false. When an end recipient sends a + # message that begins with HELP or STOP to one of your dedicated + # numbers, Amazon Pinpoint automatically replies with a customizable + # message and adds the end recipient to the OptOutList. When set to + # true you're responsible for responding to HELP and STOP requests. + # You're also responsible for tracking and honoring opt-out requests. + # @return [Boolean] + # + # @!attribute [rw] opt_out_list_name + # The OptOutList to associate with the pool. Valid values are either + # OptOutListName or OptOutListArn. + # @return [String] + # + # @!attribute [rw] shared_routes_enabled + # Indicates whether shared routes are enabled for the pool. + # @return [Boolean] + # + # @!attribute [rw] deletion_protection_enabled + # When set to true the pool can't be deleted. + # @return [Boolean] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/UpdatePoolRequest AWS API Documentation + # + class UpdatePoolRequest < Struct.new( + :pool_id, + :two_way_enabled, + :two_way_channel_arn, + :self_managed_opt_outs_enabled, + :opt_out_list_name, + :shared_routes_enabled, + :deletion_protection_enabled) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] pool_arn + # The ARN of the pool. + # @return [String] + # + # @!attribute [rw] pool_id + # The unique identifier of the pool. + # @return [String] + # + # @!attribute [rw] status + # The current status of the pool update request. + # @return [String] + # + # @!attribute [rw] message_type + # The type of message for the pool to use. + # @return [String] + # + # @!attribute [rw] two_way_enabled + # By default this is set to false. When set to true you can receive + # incoming text messages from your end recipients. + # @return [Boolean] + # + # @!attribute [rw] two_way_channel_arn + # The Amazon Resource Name (ARN) of the two way channel. + # @return [String] + # + # @!attribute [rw] self_managed_opt_outs_enabled + # When an end recipient sends a message that begins with HELP or STOP + # to one of your dedicated numbers, Amazon Pinpoint automatically + # replies with a customizable message and adds the end recipient to + # the OptOutList. When set to true you're responsible for responding + # to HELP and STOP requests. You're also responsible for tracking and + # honoring opt-out requests. + # @return [Boolean] + # + # @!attribute [rw] opt_out_list_name + # The name of the OptOutList associated with the pool. + # @return [String] + # + # @!attribute [rw] shared_routes_enabled + # Indicates whether shared routes are enabled for the pool. + # @return [Boolean] + # + # @!attribute [rw] deletion_protection_enabled + # When set to true the pool can't be deleted. + # @return [Boolean] + # + # @!attribute [rw] created_timestamp + # The time when the pool was created, in [UNIX epoch time][1] format. + # + # + # + # [1]: https://www.epochconverter.com/ + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/UpdatePoolResult AWS API Documentation + # + class UpdatePoolResult < Struct.new( + :pool_arn, + :pool_id, + :status, + :message_type, + :two_way_enabled, + :two_way_channel_arn, + :self_managed_opt_outs_enabled, + :opt_out_list_name, + :shared_routes_enabled, + :deletion_protection_enabled, + :created_timestamp) + SENSITIVE = [] + include Aws::Structure + end + + # A validation exception for a field. + # + # @!attribute [rw] message + # @return [String] + # + # @!attribute [rw] reason + # The reason for the exception. + # @return [String] + # + # @!attribute [rw] fields + # The field that failed validation. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ValidationException AWS API Documentation + # + class ValidationException < Struct.new( + :message, + :reason, + :fields) + SENSITIVE = [] + include Aws::Structure + end + + # The field associated with the validation exception. + # + # @!attribute [rw] name + # The name of the field. + # @return [String] + # + # @!attribute [rw] message + # The message associated with the validation exception with + # information to help determine its cause. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-v2-2022-03-31/ValidationExceptionField AWS API Documentation + # + class ValidationExceptionField < Struct.new( + :name, + :message) + SENSITIVE = [] + include Aws::Structure + end + + end +end diff --git a/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/waiters.rb b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/waiters.rb new file mode 100644 index 00000000000..70ad7f3a8e4 --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/lib/aws-sdk-pinpointsmsvoicev2/waiters.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +require 'aws-sdk-core/waiters' + +module Aws::PinpointSMSVoiceV2 + module Waiters + end +end diff --git a/gems/aws-sdk-pinpointsmsvoicev2/spec/spec_helper.rb b/gems/aws-sdk-pinpointsmsvoicev2/spec/spec_helper.rb new file mode 100644 index 00000000000..e122bed1ea0 --- /dev/null +++ b/gems/aws-sdk-pinpointsmsvoicev2/spec/spec_helper.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +# WARNING ABOUT GENERATED CODE +# +# This file is generated. See the contributing guide for more information: +# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md +# +# WARNING ABOUT GENERATED CODE + +require_relative '../../aws-sdk-core/spec/shared_spec_helper' + +$:.unshift(File.expand_path('../../lib', __FILE__)) +$:.unshift(File.expand_path('../../../aws-sdk-core/lib', __FILE__)) +$:.unshift(File.expand_path('../../../aws-sigv4/lib', __FILE__)) + +require 'rspec' +require 'webmock/rspec' +require 'aws-sdk-pinpointsmsvoicev2' diff --git a/gems/aws-sdk-resources/CHANGELOG.md b/gems/aws-sdk-resources/CHANGELOG.md index aa7611786cd..4e05a9b90e4 100644 --- a/gems/aws-sdk-resources/CHANGELOG.md +++ b/gems/aws-sdk-resources/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +3.128.0 (2022-03-31) +------------------ + +* Feature - Added a dependency on the new `aws-sdk-pinpointsmsvoicev2` gem. + 3.127.0 (2022-03-23) ------------------ diff --git a/gems/aws-sdk-resources/VERSION b/gems/aws-sdk-resources/VERSION index 27be418f7b3..f0c3a36bbc0 100644 --- a/gems/aws-sdk-resources/VERSION +++ b/gems/aws-sdk-resources/VERSION @@ -1 +1 @@ -3.127.0 +3.128.0 diff --git a/gems/aws-sdk-resources/aws-sdk-resources.gemspec b/gems/aws-sdk-resources/aws-sdk-resources.gemspec index ebb8a82f24c..aeff2265532 100644 --- a/gems/aws-sdk-resources/aws-sdk-resources.gemspec +++ b/gems/aws-sdk-resources/aws-sdk-resources.gemspec @@ -239,6 +239,7 @@ Gem::Specification.new do |spec| spec.add_dependency('aws-sdk-pinpoint', '~> 1') spec.add_dependency('aws-sdk-pinpointemail', '~> 1') spec.add_dependency('aws-sdk-pinpointsmsvoice', '~> 1') + spec.add_dependency('aws-sdk-pinpointsmsvoicev2', '~> 1') spec.add_dependency('aws-sdk-polly', '~> 1') spec.add_dependency('aws-sdk-pricing', '~> 1') spec.add_dependency('aws-sdk-prometheusservice', '~> 1') diff --git a/gems/aws-sdk-resources/lib/aws-sdk-resources.rb b/gems/aws-sdk-resources/lib/aws-sdk-resources.rb index e54da55faf2..9bab3c8da48 100644 --- a/gems/aws-sdk-resources/lib/aws-sdk-resources.rb +++ b/gems/aws-sdk-resources/lib/aws-sdk-resources.rb @@ -229,6 +229,7 @@ module Aws autoload :Pinpoint, 'aws-sdk-pinpoint' autoload :PinpointEmail, 'aws-sdk-pinpointemail' autoload :PinpointSMSVoice, 'aws-sdk-pinpointsmsvoice' + autoload :PinpointSMSVoiceV2, 'aws-sdk-pinpointsmsvoicev2' autoload :Polly, 'aws-sdk-polly' autoload :Pricing, 'aws-sdk-pricing' autoload :PrometheusService, 'aws-sdk-prometheusservice' diff --git a/gems/aws-sdk-route53recoverycluster/CHANGELOG.md b/gems/aws-sdk-route53recoverycluster/CHANGELOG.md index a8b3088adbc..6e3237f1ffc 100644 --- a/gems/aws-sdk-route53recoverycluster/CHANGELOG.md +++ b/gems/aws-sdk-route53recoverycluster/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.11.0 (2022-03-31) +------------------ + +* Feature - This release adds a new API "ListRoutingControls" to list routing control states using the highly reliable Route 53 ARC data plane endpoints. + 1.10.0 (2022-02-28) ------------------ diff --git a/gems/aws-sdk-route53recoverycluster/VERSION b/gems/aws-sdk-route53recoverycluster/VERSION index 81c871de46b..1cac385c6cb 100644 --- a/gems/aws-sdk-route53recoverycluster/VERSION +++ b/gems/aws-sdk-route53recoverycluster/VERSION @@ -1 +1 @@ -1.10.0 +1.11.0 diff --git a/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster.rb b/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster.rb index 12c2494f322..bcda8cbd3fd 100644 --- a/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster.rb +++ b/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster.rb @@ -48,6 +48,6 @@ # @!group service module Aws::Route53RecoveryCluster - GEM_VERSION = '1.10.0' + GEM_VERSION = '1.11.0' end diff --git a/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/client.rb b/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/client.rb index 04cf59c6567..b3a8547e498 100644 --- a/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/client.rb +++ b/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/client.rb @@ -362,20 +362,19 @@ def initialize(*args) # @!group API Operations # Get the state for a routing control. A routing control is a simple - # on/off switch that you can use to route traffic to cells. When the - # state is On, traffic flows to a cell. When it's Off, traffic does not - # flow. + # on/off switch that you can use to route traffic to cells. When a + # routing control state is On, traffic flows to a cell. When the state + # is Off, traffic does not flow. # # Before you can create a routing control, you must first create a - # cluster to host the control in a control panel. For more information, - # see [ Create routing control structures][1] in the Amazon Route 53 - # Application Recovery Controller Developer Guide. Then you access one - # of the endpoints for the cluster to get or update the routing control - # state to redirect traffic. + # cluster, and then host the control in a control panel on the cluster. + # For more information, see [ Create routing control structures][1] in + # the Amazon Route 53 Application Recovery Controller Developer Guide. + # You access one of the endpoints for the cluster to get or update the + # routing control state to redirect traffic for your application. # # *You must specify Regional endpoints when you work with API cluster - # operations to get or update routing control states in Application - # Recovery Controller.* + # operations to get or update routing control states in Route 53 ARC.* # # To see a code example for getting a routing control state, including # accessing Regional cluster endpoints in sequence, see [API @@ -388,7 +387,7 @@ def initialize(*args) # # * [ Viewing and updating routing control states][3] # - # * [Working with routing controls overall][4] + # * [Working with routing controls in Route 53 ARC][4] # # # @@ -398,13 +397,14 @@ def initialize(*args) # [4]: https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.html # # @option params [required, String] :routing_control_arn - # The Amazon Resource Number (ARN) for the routing control that you want + # The Amazon Resource Name (ARN) for the routing control that you want # to get the state for. # # @return [Types::GetRoutingControlStateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::GetRoutingControlStateResponse#routing_control_arn #routing_control_arn} => String # * {Types::GetRoutingControlStateResponse#routing_control_state #routing_control_state} => String + # * {Types::GetRoutingControlStateResponse#routing_control_name #routing_control_name} => String # # @example Request syntax with placeholder values # @@ -416,6 +416,7 @@ def initialize(*args) # # resp.routing_control_arn #=> String # resp.routing_control_state #=> String, one of "On", "Off" + # resp.routing_control_name #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-cluster-2019-12-02/GetRoutingControlState AWS API Documentation # @@ -426,21 +427,103 @@ def get_routing_control_state(params = {}, options = {}) req.send_request(options) end + # List routing control names and Amazon Resource Names (ARNs), as well + # as the routing control state for each routing control, along with the + # control panel name and control panel ARN for the routing controls. If + # you specify a control panel ARN, this call lists the routing controls + # in the control panel. Otherwise, it lists all the routing controls in + # the cluster. + # + # A routing control is a simple on/off switch in Route 53 ARC that you + # can use to route traffic to cells. When a routing control state is On, + # traffic flows to a cell. When the state is Off, traffic does not flow. + # + # Before you can create a routing control, you must first create a + # cluster, and then host the control in a control panel on the cluster. + # For more information, see [ Create routing control structures][1] in + # the Amazon Route 53 Application Recovery Controller Developer Guide. + # You access one of the endpoints for the cluster to get or update the + # routing control state to redirect traffic for your application. + # + # *You must specify Regional endpoints when you work with API cluster + # operations to use this API operation to list routing controls in Route + # 53 ARC.* + # + # Learn more about working with routing controls in the following topics + # in the Amazon Route 53 Application Recovery Controller Developer + # Guide: + # + # * [ Viewing and updating routing control states][2] + # + # * [Working with routing controls in Route 53 ARC][3] + # + # + # + # [1]: https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.create.html + # [2]: https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.update.html + # [3]: https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.html + # + # @option params [String] :control_panel_arn + # The Amazon Resource Name (ARN) of the control panel of the routing + # controls to list. + # + # @option params [String] :next_token + # The token for the next set of results. You receive this token from a + # previous call. + # + # @option params [Integer] :max_results + # The number of routing controls objects that you want to return with + # this call. The default value is 500. + # + # @return [Types::ListRoutingControlsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListRoutingControlsResponse#routing_controls #routing_controls} => Array<Types::RoutingControl> + # * {Types::ListRoutingControlsResponse#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_routing_controls({ + # control_panel_arn: "Arn", + # next_token: "PageToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.routing_controls #=> Array + # resp.routing_controls[0].control_panel_arn #=> String + # resp.routing_controls[0].control_panel_name #=> String + # resp.routing_controls[0].routing_control_arn #=> String + # resp.routing_controls[0].routing_control_name #=> String + # resp.routing_controls[0].routing_control_state #=> String, one of "On", "Off" + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-cluster-2019-12-02/ListRoutingControls AWS API Documentation + # + # @overload list_routing_controls(params = {}) + # @param [Hash] params ({}) + def list_routing_controls(params = {}, options = {}) + req = build_request(:list_routing_controls, params) + req.send_request(options) + end + # Set the state of the routing control to reroute traffic. You can set # the value to be On or Off. When the state is On, traffic flows to a - # cell. When it's Off, traffic does not flow. - # - # With Application Recovery Controller, you can add safety rules for - # routing controls, which are safeguards for routing control state - # updates that help prevent unexpected outcomes, like fail open traffic - # routing. However, there are scenarios when you might want to bypass - # the routing control safeguards that are enforced with safety rules - # that you've configured. For example, you might want to fail over - # quickly for disaster recovery, and one or more safety rules might be - # unexpectedly preventing you from updating a routing control state to - # reroute traffic. In a "break glass" scenario like this, you can - # override one or more safety rules to change a routing control state - # and fail over your application. + # cell. When the state is Off, traffic does not flow. + # + # With Route 53 ARC, you can add safety rules for routing controls, + # which are safeguards for routing control state updates that help + # prevent unexpected outcomes, like fail open traffic routing. However, + # there are scenarios when you might want to bypass the routing control + # safeguards that are enforced with safety rules that you've + # configured. For example, you might want to fail over quickly for + # disaster recovery, and one or more safety rules might be unexpectedly + # preventing you from updating a routing control state to reroute + # traffic. In a "break glass" scenario like this, you can override one + # or more safety rules to change a routing control state and fail over + # your application. # # The `SafetyRulesToOverride` property enables you override one or more # safety rules and update routing control states. For more information, @@ -448,8 +531,7 @@ def get_routing_control_state(params = {}, options = {}) # 53 Application Recovery Controller Developer Guide. # # *You must specify Regional endpoints when you work with API cluster - # operations to get or update routing control states in Application - # Recovery Controller.* + # operations to get or update routing control states in Route 53 ARC.* # # To see a code example for getting a routing control state, including # accessing Regional cluster endpoints in sequence, see [API @@ -468,7 +550,7 @@ def get_routing_control_state(params = {}, options = {}) # [4]: https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.html # # @option params [required, String] :routing_control_arn - # The Amazon Resource Number (ARN) for the routing control that you want + # The Amazon Resource Name (ARN) for the routing control that you want # to update the state for. # # @option params [required, String] :routing_control_state @@ -476,10 +558,10 @@ def get_routing_control_state(params = {}, options = {}) # Off. # # @option params [Array] :safety_rules_to_override - # The Amazon Resource Numbers (ARNs) for the safety rules that you want - # to override when you're updating the state of a routing control. You - # can override one safety rule or multiple safety rules by including one - # or more ARNs, separated by commas. + # The Amazon Resource Names (ARNs) for the safety rules that you want to + # override when you're updating the state of a routing control. You can + # override one safety rule or multiple safety rules by including one or + # more ARNs, separated by commas. # # For more information, see [ Override safety rules to reroute # traffic][1] in the Amazon Route 53 Application Recovery Controller @@ -512,17 +594,17 @@ def update_routing_control_state(params = {}, options = {}) # state to be On or Off. When the state is On, traffic flows to a cell. # When it's Off, traffic does not flow. # - # With Application Recovery Controller, you can add safety rules for - # routing controls, which are safeguards for routing control state - # updates that help prevent unexpected outcomes, like fail open traffic - # routing. However, there are scenarios when you might want to bypass - # the routing control safeguards that are enforced with safety rules - # that you've configured. For example, you might want to fail over - # quickly for disaster recovery, and one or more safety rules might be - # unexpectedly preventing you from updating a routing control state to - # reroute traffic. In a "break glass" scenario like this, you can - # override one or more safety rules to change a routing control state - # and fail over your application. + # With Route 53 ARC, you can add safety rules for routing controls, + # which are safeguards for routing control state updates that help + # prevent unexpected outcomes, like fail open traffic routing. However, + # there are scenarios when you might want to bypass the routing control + # safeguards that are enforced with safety rules that you've + # configured. For example, you might want to fail over quickly for + # disaster recovery, and one or more safety rules might be unexpectedly + # preventing you from updating a routing control state to reroute + # traffic. In a "break glass" scenario like this, you can override one + # or more safety rules to change a routing control state and fail over + # your application. # # The `SafetyRulesToOverride` property enables you override one or more # safety rules and update routing control states. For more information, @@ -530,8 +612,7 @@ def update_routing_control_state(params = {}, options = {}) # 53 Application Recovery Controller Developer Guide. # # *You must specify Regional endpoints when you work with API cluster - # operations to get or update routing control states in Application - # Recovery Controller.* + # operations to get or update routing control states in Route 53 ARC.* # # To see a code example for getting a routing control state, including # accessing Regional cluster endpoints in sequence, see [API @@ -553,8 +634,8 @@ def update_routing_control_state(params = {}, options = {}) # A set of routing control entries that you want to update. # # @option params [Array] :safety_rules_to_override - # The Amazon Resource Numbers (ARNs) for the safety rules that you want - # to override when you're updating routing control states. You can + # The Amazon Resource Names (ARNs) for the safety rules that you want to + # override when you're updating routing control states. You can # override one safety rule or multiple safety rules by including one or # more ARNs, separated by commas. # @@ -602,7 +683,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-route53recoverycluster' - context[:gem_version] = '1.10.0' + context[:gem_version] = '1.11.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/client_api.rb b/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/client_api.rb index 094dcb24f16..e506a5a17dc 100644 --- a/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/client_api.rb +++ b/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/client_api.rb @@ -17,13 +17,22 @@ module ClientApi Arn = Shapes::StringShape.new(name: 'Arn') Arns = Shapes::ListShape.new(name: 'Arns') ConflictException = Shapes::StructureShape.new(name: 'ConflictException') + ControlPanelName = Shapes::StringShape.new(name: 'ControlPanelName') EndpointTemporarilyUnavailableException = Shapes::StructureShape.new(name: 'EndpointTemporarilyUnavailableException') GetRoutingControlStateRequest = Shapes::StructureShape.new(name: 'GetRoutingControlStateRequest') GetRoutingControlStateResponse = Shapes::StructureShape.new(name: 'GetRoutingControlStateResponse') InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException') + ListRoutingControlsRequest = Shapes::StructureShape.new(name: 'ListRoutingControlsRequest') + ListRoutingControlsResponse = Shapes::StructureShape.new(name: 'ListRoutingControlsResponse') + MaxResults = Shapes::IntegerShape.new(name: 'MaxResults') + PageToken = Shapes::StringShape.new(name: 'PageToken') ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException') RetryAfterSeconds = Shapes::IntegerShape.new(name: 'RetryAfterSeconds') + RoutingControl = Shapes::StructureShape.new(name: 'RoutingControl') + RoutingControlName = Shapes::StringShape.new(name: 'RoutingControlName') RoutingControlState = Shapes::StringShape.new(name: 'RoutingControlState') + RoutingControls = Shapes::ListShape.new(name: 'RoutingControls') + ServiceLimitExceededException = Shapes::StructureShape.new(name: 'ServiceLimitExceededException') String = Shapes::StringShape.new(name: 'String') ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException') UpdateRoutingControlStateEntries = Shapes::ListShape.new(name: 'UpdateRoutingControlStateEntries') @@ -55,17 +64,43 @@ module ClientApi GetRoutingControlStateResponse.add_member(:routing_control_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "RoutingControlArn")) GetRoutingControlStateResponse.add_member(:routing_control_state, Shapes::ShapeRef.new(shape: RoutingControlState, required: true, location_name: "RoutingControlState")) + GetRoutingControlStateResponse.add_member(:routing_control_name, Shapes::ShapeRef.new(shape: RoutingControlName, location_name: "RoutingControlName")) GetRoutingControlStateResponse.struct_class = Types::GetRoutingControlStateResponse InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) InternalServerException.add_member(:retry_after_seconds, Shapes::ShapeRef.new(shape: RetryAfterSeconds, location_name: "retryAfterSeconds")) InternalServerException.struct_class = Types::InternalServerException + ListRoutingControlsRequest.add_member(:control_panel_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "ControlPanelArn")) + ListRoutingControlsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PageToken, location_name: "NextToken")) + ListRoutingControlsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true})) + ListRoutingControlsRequest.struct_class = Types::ListRoutingControlsRequest + + ListRoutingControlsResponse.add_member(:routing_controls, Shapes::ShapeRef.new(shape: RoutingControls, required: true, location_name: "RoutingControls")) + ListRoutingControlsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PageToken, location_name: "NextToken")) + ListRoutingControlsResponse.struct_class = Types::ListRoutingControlsResponse + ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) ResourceNotFoundException.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceId")) ResourceNotFoundException.add_member(:resource_type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceType")) ResourceNotFoundException.struct_class = Types::ResourceNotFoundException + RoutingControl.add_member(:control_panel_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "ControlPanelArn")) + RoutingControl.add_member(:control_panel_name, Shapes::ShapeRef.new(shape: ControlPanelName, location_name: "ControlPanelName")) + RoutingControl.add_member(:routing_control_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "RoutingControlArn")) + RoutingControl.add_member(:routing_control_name, Shapes::ShapeRef.new(shape: RoutingControlName, location_name: "RoutingControlName")) + RoutingControl.add_member(:routing_control_state, Shapes::ShapeRef.new(shape: RoutingControlState, location_name: "RoutingControlState")) + RoutingControl.struct_class = Types::RoutingControl + + RoutingControls.member = Shapes::ShapeRef.new(shape: RoutingControl) + + ServiceLimitExceededException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) + ServiceLimitExceededException.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, location_name: "resourceId")) + ServiceLimitExceededException.add_member(:resource_type, Shapes::ShapeRef.new(shape: String, location_name: "resourceType")) + ServiceLimitExceededException.add_member(:limit_code, Shapes::ShapeRef.new(shape: String, required: true, location_name: "limitCode")) + ServiceLimitExceededException.add_member(:service_code, Shapes::ShapeRef.new(shape: String, required: true, location_name: "serviceCode")) + ServiceLimitExceededException.struct_class = Types::ServiceLimitExceededException + ThrottlingException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message")) ThrottlingException.add_member(:retry_after_seconds, Shapes::ShapeRef.new(shape: RetryAfterSeconds, location_name: "retryAfterSeconds")) ThrottlingException.struct_class = Types::ThrottlingException @@ -133,6 +168,26 @@ module ClientApi o.errors << Shapes::ShapeRef.new(shape: EndpointTemporarilyUnavailableException) end) + api.add_operation(:list_routing_controls, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListRoutingControls" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: ListRoutingControlsRequest) + o.output = Shapes::ShapeRef.new(shape: ListRoutingControlsResponse) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: EndpointTemporarilyUnavailableException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + api.add_operation(:update_routing_control_state, Seahorse::Model::Operation.new.tap do |o| o.name = "UpdateRoutingControlState" o.http_method = "POST" @@ -161,6 +216,7 @@ module ClientApi o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) o.errors << Shapes::ShapeRef.new(shape: EndpointTemporarilyUnavailableException) o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ServiceLimitExceededException) end) end diff --git a/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/errors.rb b/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/errors.rb index 6f00d2beec1..432b07e6b21 100644 --- a/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/errors.rb +++ b/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/errors.rb @@ -32,6 +32,7 @@ module Aws::Route53RecoveryCluster # * {EndpointTemporarilyUnavailableException} # * {InternalServerException} # * {ResourceNotFoundException} + # * {ServiceLimitExceededException} # * {ThrottlingException} # * {ValidationException} # @@ -141,6 +142,41 @@ def resource_type end end + class ServiceLimitExceededException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::Route53RecoveryCluster::Types::ServiceLimitExceededException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + + # @return [String] + def resource_id + @data[:resource_id] + end + + # @return [String] + def resource_type + @data[:resource_type] + end + + # @return [String] + def limit_code + @data[:limit_code] + end + + # @return [String] + def service_code + @data[:service_code] + end + end + class ThrottlingException < ServiceError # @param [Seahorse::Client::RequestContext] context diff --git a/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/types.rb b/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/types.rb index ffc0302f6a0..f8eecfdbebd 100644 --- a/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/types.rb +++ b/gems/aws-sdk-route53recoverycluster/lib/aws-sdk-route53recoverycluster/types.rb @@ -10,8 +10,7 @@ module Aws::Route53RecoveryCluster module Types - # You don't have sufficient permissions to query the routing control - # state. + # You don't have sufficient permissions to perform this action. # # @!attribute [rw] message # @return [String] @@ -69,8 +68,8 @@ class EndpointTemporarilyUnavailableException < Struct.new( # } # # @!attribute [rw] routing_control_arn - # The Amazon Resource Number (ARN) for the routing control that you - # want to get the state for. + # The Amazon Resource Name (ARN) for the routing control that you want + # to get the state for. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-cluster-2019-12-02/GetRoutingControlStateRequest AWS API Documentation @@ -82,18 +81,23 @@ class GetRoutingControlStateRequest < Struct.new( end # @!attribute [rw] routing_control_arn - # The Amazon Resource Number (ARN) of the response. + # The Amazon Resource Name (ARN) of the response. # @return [String] # # @!attribute [rw] routing_control_state # The state of the routing control. # @return [String] # + # @!attribute [rw] routing_control_name + # The routing control name. + # @return [String] + # # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-cluster-2019-12-02/GetRoutingControlStateResponse AWS API Documentation # class GetRoutingControlStateResponse < Struct.new( :routing_control_arn, - :routing_control_state) + :routing_control_state, + :routing_control_name) SENSITIVE = [] include Aws::Structure end @@ -116,7 +120,60 @@ class InternalServerException < Struct.new( include Aws::Structure end - # The request references a routing control that was not found. + # @note When making an API call, you may pass ListRoutingControlsRequest + # data as a hash: + # + # { + # control_panel_arn: "Arn", + # next_token: "PageToken", + # max_results: 1, + # } + # + # @!attribute [rw] control_panel_arn + # The Amazon Resource Name (ARN) of the control panel of the routing + # controls to list. + # @return [String] + # + # @!attribute [rw] next_token + # The token for the next set of results. You receive this token from a + # previous call. + # @return [String] + # + # @!attribute [rw] max_results + # The number of routing controls objects that you want to return with + # this call. The default value is 500. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-cluster-2019-12-02/ListRoutingControlsRequest AWS API Documentation + # + class ListRoutingControlsRequest < Struct.new( + :control_panel_arn, + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] routing_controls + # The list of routing controls. + # @return [Array] + # + # @!attribute [rw] next_token + # The token for the next set of results. You receive this token from a + # previous call. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-cluster-2019-12-02/ListRoutingControlsResponse AWS API Documentation + # + class ListRoutingControlsResponse < Struct.new( + :routing_controls, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # The request references a routing control or control panel that was not + # found. # # @!attribute [rw] message # @return [String] @@ -139,6 +196,79 @@ class ResourceNotFoundException < Struct.new( include Aws::Structure end + # A routing control, which is a simple on/off switch that you can use to + # route traffic to cells. When a routing control state is On, traffic + # flows to a cell. When the state is Off, traffic does not flow. + # + # @!attribute [rw] control_panel_arn + # The Amazon Resource Name (ARN) of the control panel where the + # routing control is located. + # @return [String] + # + # @!attribute [rw] control_panel_name + # The name of the control panel where the routing control is located. + # @return [String] + # + # @!attribute [rw] routing_control_arn + # The Amazon Resource Name (ARN) of the routing control. + # @return [String] + # + # @!attribute [rw] routing_control_name + # The name of the routing control. + # @return [String] + # + # @!attribute [rw] routing_control_state + # The current state of the routing control. When a routing control + # state is On, traffic flows to a cell. When the state is Off, traffic + # does not flow. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-cluster-2019-12-02/RoutingControl AWS API Documentation + # + class RoutingControl < Struct.new( + :control_panel_arn, + :control_panel_name, + :routing_control_arn, + :routing_control_name, + :routing_control_state) + SENSITIVE = [] + include Aws::Structure + end + + # The request can't update that many routing control states at the same + # time. Try again with fewer routing control states. + # + # @!attribute [rw] message + # @return [String] + # + # @!attribute [rw] resource_id + # The resource identifier of the limit that was exceeded. + # @return [String] + # + # @!attribute [rw] resource_type + # The resource type of the limit that was exceeded. + # @return [String] + # + # @!attribute [rw] limit_code + # The code of the limit that was exceeded. + # @return [String] + # + # @!attribute [rw] service_code + # The service code of the limit that was exceeded. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/route53-recovery-cluster-2019-12-02/ServiceLimitExceededException AWS API Documentation + # + class ServiceLimitExceededException < Struct.new( + :message, + :resource_id, + :resource_type, + :limit_code, + :service_code) + SENSITIVE = [] + include Aws::Structure + end + # The request was denied because of request throttling. # # @!attribute [rw] message @@ -168,7 +298,7 @@ class ThrottlingException < Struct.new( # } # # @!attribute [rw] routing_control_arn - # The Amazon Resource Number (ARN) for a routing control state entry. + # The Amazon Resource Name (ARN) for a routing control state entry. # @return [String] # # @!attribute [rw] routing_control_state @@ -194,8 +324,8 @@ class UpdateRoutingControlStateEntry < Struct.new( # } # # @!attribute [rw] routing_control_arn - # The Amazon Resource Number (ARN) for the routing control that you - # want to update the state for. + # The Amazon Resource Name (ARN) for the routing control that you want + # to update the state for. # @return [String] # # @!attribute [rw] routing_control_state @@ -204,10 +334,10 @@ class UpdateRoutingControlStateEntry < Struct.new( # @return [String] # # @!attribute [rw] safety_rules_to_override - # The Amazon Resource Numbers (ARNs) for the safety rules that you - # want to override when you're updating the state of a routing - # control. You can override one safety rule or multiple safety rules - # by including one or more ARNs, separated by commas. + # The Amazon Resource Names (ARNs) for the safety rules that you want + # to override when you're updating the state of a routing control. + # You can override one safety rule or multiple safety rules by + # including one or more ARNs, separated by commas. # # For more information, see [ Override safety rules to reroute # traffic][1] in the Amazon Route 53 Application Recovery Controller @@ -250,10 +380,10 @@ class UpdateRoutingControlStateResponse < Aws::EmptyStructure; end # @return [Array] # # @!attribute [rw] safety_rules_to_override - # The Amazon Resource Numbers (ARNs) for the safety rules that you - # want to override when you're updating routing control states. You - # can override one safety rule or multiple safety rules by including - # one or more ARNs, separated by commas. + # The Amazon Resource Names (ARNs) for the safety rules that you want + # to override when you're updating routing control states. You can + # override one safety rule or multiple safety rules by including one + # or more ARNs, separated by commas. # # For more information, see [ Override safety rules to reroute # traffic][1] in the Amazon Route 53 Application Recovery Controller diff --git a/gems/aws-sdk-workspaces/CHANGELOG.md b/gems/aws-sdk-workspaces/CHANGELOG.md index 915a07c4f44..8d9539bbc39 100644 --- a/gems/aws-sdk-workspaces/CHANGELOG.md +++ b/gems/aws-sdk-workspaces/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.66.0 (2022-03-31) +------------------ + +* Feature - Added APIs that allow you to customize the logo, login message, and help links in the WorkSpaces client login page. To learn more, visit https://docs.aws.amazon.com/workspaces/latest/adminguide/customize-branding.html + 1.65.0 (2022-02-24) ------------------ diff --git a/gems/aws-sdk-workspaces/VERSION b/gems/aws-sdk-workspaces/VERSION index 902c74186fb..b6148bc0a75 100644 --- a/gems/aws-sdk-workspaces/VERSION +++ b/gems/aws-sdk-workspaces/VERSION @@ -1 +1 @@ -1.65.0 +1.66.0 diff --git a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces.rb b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces.rb index 0f69954fc8e..909653bffc3 100644 --- a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces.rb +++ b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces.rb @@ -48,6 +48,6 @@ # @!group service module Aws::WorkSpaces - GEM_VERSION = '1.65.0' + GEM_VERSION = '1.66.0' end diff --git a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/client.rb b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/client.rb index b2443fd91a6..744fab93ca6 100644 --- a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/client.rb +++ b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/client.rb @@ -973,6 +973,40 @@ def create_workspaces(params = {}, options = {}) req.send_request(options) end + # Deletes customized client branding. Client branding allows you to + # customize your WorkSpace's client login portal. You can tailor your + # login portal company logo, the support email address, support link, + # link to reset password, and a custom message for users trying to sign + # in. + # + # After you delete your customized client branding, your login portal + # reverts to the default client branding. + # + # @option params [required, String] :resource_id + # The directory identifier of the WorkSpace for which you want to delete + # client branding. + # + # @option params [required, Array] :platforms + # The device type for which you want to delete client branding. + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.delete_client_branding({ + # resource_id: "DirectoryId", # required + # platforms: ["DeviceTypeWindows"], # required, accepts DeviceTypeWindows, DeviceTypeOsx, DeviceTypeAndroid, DeviceTypeIos, DeviceTypeLinux, DeviceTypeWeb + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteClientBranding AWS API Documentation + # + # @overload delete_client_branding(params = {}) + # @param [Hash] params ({}) + def delete_client_branding(params = {}, options = {}) + req = build_request(:delete_client_branding, params) + req.send_request(options) + end + # Deletes a client-add-in for Amazon Connect that is configured within a # directory. # @@ -1255,6 +1289,86 @@ def describe_account_modifications(params = {}, options = {}) req.send_request(options) end + # Describes the specified client branding. Client branding allows you to + # customize the log in page of various device types for your users. You + # can add your company logo, the support email address, support link, + # link to reset password, and a custom message for users trying to sign + # in. + # + # Only device types that have branding information configured will be + # shown in the response. + # + # + # + # @option params [required, String] :resource_id + # The directory identifier of the WorkSpace for which you want to view + # client branding information. + # + # @return [Types::DescribeClientBrandingResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribeClientBrandingResult#device_type_windows #device_type_windows} => Types::DefaultClientBrandingAttributes + # * {Types::DescribeClientBrandingResult#device_type_osx #device_type_osx} => Types::DefaultClientBrandingAttributes + # * {Types::DescribeClientBrandingResult#device_type_android #device_type_android} => Types::DefaultClientBrandingAttributes + # * {Types::DescribeClientBrandingResult#device_type_ios #device_type_ios} => Types::IosClientBrandingAttributes + # * {Types::DescribeClientBrandingResult#device_type_linux #device_type_linux} => Types::DefaultClientBrandingAttributes + # * {Types::DescribeClientBrandingResult#device_type_web #device_type_web} => Types::DefaultClientBrandingAttributes + # + # @example Request syntax with placeholder values + # + # resp = client.describe_client_branding({ + # resource_id: "DirectoryId", # required + # }) + # + # @example Response structure + # + # resp.device_type_windows.logo_url #=> String + # resp.device_type_windows.support_email #=> String + # resp.device_type_windows.support_link #=> String + # resp.device_type_windows.forgot_password_link #=> String + # resp.device_type_windows.login_message #=> Hash + # resp.device_type_windows.login_message["ClientLocale"] #=> String + # resp.device_type_osx.logo_url #=> String + # resp.device_type_osx.support_email #=> String + # resp.device_type_osx.support_link #=> String + # resp.device_type_osx.forgot_password_link #=> String + # resp.device_type_osx.login_message #=> Hash + # resp.device_type_osx.login_message["ClientLocale"] #=> String + # resp.device_type_android.logo_url #=> String + # resp.device_type_android.support_email #=> String + # resp.device_type_android.support_link #=> String + # resp.device_type_android.forgot_password_link #=> String + # resp.device_type_android.login_message #=> Hash + # resp.device_type_android.login_message["ClientLocale"] #=> String + # resp.device_type_ios.logo_url #=> String + # resp.device_type_ios.logo_2x_url #=> String + # resp.device_type_ios.logo_3x_url #=> String + # resp.device_type_ios.support_email #=> String + # resp.device_type_ios.support_link #=> String + # resp.device_type_ios.forgot_password_link #=> String + # resp.device_type_ios.login_message #=> Hash + # resp.device_type_ios.login_message["ClientLocale"] #=> String + # resp.device_type_linux.logo_url #=> String + # resp.device_type_linux.support_email #=> String + # resp.device_type_linux.support_link #=> String + # resp.device_type_linux.forgot_password_link #=> String + # resp.device_type_linux.login_message #=> Hash + # resp.device_type_linux.login_message["ClientLocale"] #=> String + # resp.device_type_web.logo_url #=> String + # resp.device_type_web.support_email #=> String + # resp.device_type_web.support_link #=> String + # resp.device_type_web.forgot_password_link #=> String + # resp.device_type_web.login_message #=> Hash + # resp.device_type_web.login_message["ClientLocale"] #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeClientBranding AWS API Documentation + # + # @overload describe_client_branding(params = {}) + # @param [Hash] params ({}) + def describe_client_branding(params = {}, options = {}) + req = build_request(:describe_client_branding, params) + req.send_request(options) + end + # Retrieves a list that describes one or more specified Amazon # WorkSpaces clients. # @@ -1975,6 +2089,173 @@ def disassociate_ip_groups(params = {}, options = {}) req.send_request(options) end + # Imports client branding. Client branding allows you to customize your + # WorkSpace's client login portal. You can tailor your login portal + # company logo, the support email address, support link, link to reset + # password, and a custom message for users trying to sign in. + # + # After you import client branding, the default branding experience for + # the specified platform type is replaced with the imported experience + # + # * You must specify at least one platform type when importing client + # branding. + # + # * You can import up to 6 MB of data with each request. If your request + # exceeds this limit, you can import client branding for different + # platform types using separate requests. + # + # * In each platform type, the `SupportEmail` and `SupportLink` + # parameters are mutually exclusive. You can specify only one + # parameter for each platform type, but not both. + # + # * Imported data can take up to a minute to appear in the WorkSpaces + # client. + # + # + # + # @option params [required, String] :resource_id + # The directory identifier of the WorkSpace for which you want to import + # client branding. + # + # @option params [Types::DefaultImportClientBrandingAttributes] :device_type_windows + # The branding information to import for Windows devices. + # + # @option params [Types::DefaultImportClientBrandingAttributes] :device_type_osx + # The branding information to import for macOS devices. + # + # @option params [Types::DefaultImportClientBrandingAttributes] :device_type_android + # The branding information to import for Android devices. + # + # @option params [Types::IosImportClientBrandingAttributes] :device_type_ios + # The branding information to import for iOS devices. + # + # @option params [Types::DefaultImportClientBrandingAttributes] :device_type_linux + # The branding information to import for Linux devices. + # + # @option params [Types::DefaultImportClientBrandingAttributes] :device_type_web + # The branding information to import for web access. + # + # @return [Types::ImportClientBrandingResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ImportClientBrandingResult#device_type_windows #device_type_windows} => Types::DefaultClientBrandingAttributes + # * {Types::ImportClientBrandingResult#device_type_osx #device_type_osx} => Types::DefaultClientBrandingAttributes + # * {Types::ImportClientBrandingResult#device_type_android #device_type_android} => Types::DefaultClientBrandingAttributes + # * {Types::ImportClientBrandingResult#device_type_ios #device_type_ios} => Types::IosClientBrandingAttributes + # * {Types::ImportClientBrandingResult#device_type_linux #device_type_linux} => Types::DefaultClientBrandingAttributes + # * {Types::ImportClientBrandingResult#device_type_web #device_type_web} => Types::DefaultClientBrandingAttributes + # + # @example Request syntax with placeholder values + # + # resp = client.import_client_branding({ + # resource_id: "DirectoryId", # required + # device_type_windows: { + # logo: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # }, + # device_type_osx: { + # logo: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # }, + # device_type_android: { + # logo: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # }, + # device_type_ios: { + # logo: "data", + # logo_2x: "data", + # logo_3x: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # }, + # device_type_linux: { + # logo: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # }, + # device_type_web: { + # logo: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # }, + # }) + # + # @example Response structure + # + # resp.device_type_windows.logo_url #=> String + # resp.device_type_windows.support_email #=> String + # resp.device_type_windows.support_link #=> String + # resp.device_type_windows.forgot_password_link #=> String + # resp.device_type_windows.login_message #=> Hash + # resp.device_type_windows.login_message["ClientLocale"] #=> String + # resp.device_type_osx.logo_url #=> String + # resp.device_type_osx.support_email #=> String + # resp.device_type_osx.support_link #=> String + # resp.device_type_osx.forgot_password_link #=> String + # resp.device_type_osx.login_message #=> Hash + # resp.device_type_osx.login_message["ClientLocale"] #=> String + # resp.device_type_android.logo_url #=> String + # resp.device_type_android.support_email #=> String + # resp.device_type_android.support_link #=> String + # resp.device_type_android.forgot_password_link #=> String + # resp.device_type_android.login_message #=> Hash + # resp.device_type_android.login_message["ClientLocale"] #=> String + # resp.device_type_ios.logo_url #=> String + # resp.device_type_ios.logo_2x_url #=> String + # resp.device_type_ios.logo_3x_url #=> String + # resp.device_type_ios.support_email #=> String + # resp.device_type_ios.support_link #=> String + # resp.device_type_ios.forgot_password_link #=> String + # resp.device_type_ios.login_message #=> Hash + # resp.device_type_ios.login_message["ClientLocale"] #=> String + # resp.device_type_linux.logo_url #=> String + # resp.device_type_linux.support_email #=> String + # resp.device_type_linux.support_link #=> String + # resp.device_type_linux.forgot_password_link #=> String + # resp.device_type_linux.login_message #=> Hash + # resp.device_type_linux.login_message["ClientLocale"] #=> String + # resp.device_type_web.logo_url #=> String + # resp.device_type_web.support_email #=> String + # resp.device_type_web.support_link #=> String + # resp.device_type_web.forgot_password_link #=> String + # resp.device_type_web.login_message #=> Hash + # resp.device_type_web.login_message["ClientLocale"] #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ImportClientBranding AWS API Documentation + # + # @overload import_client_branding(params = {}) + # @param [Hash] params ({}) + def import_client_branding(params = {}, options = {}) + req = build_request(:import_client_branding, params) + req.send_request(options) + end + # Imports the specified Windows 10 Bring Your Own License (BYOL) image # into Amazon WorkSpaces. The image must be an already licensed Amazon # EC2 image that is in your Amazon Web Services account, and you must @@ -3015,7 +3296,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-workspaces' - context[:gem_version] = '1.65.0' + context[:gem_version] = '1.66.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/client_api.rb b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/client_api.rb index f742a0bb9b9..0eb57581059 100644 --- a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/client_api.rb +++ b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/client_api.rb @@ -37,9 +37,15 @@ module ClientApi BundleIdList = Shapes::ListShape.new(name: 'BundleIdList') BundleList = Shapes::ListShape.new(name: 'BundleList') BundleOwner = Shapes::StringShape.new(name: 'BundleOwner') + ClientDeviceType = Shapes::StringShape.new(name: 'ClientDeviceType') + ClientDeviceTypeList = Shapes::ListShape.new(name: 'ClientDeviceTypeList') + ClientEmail = Shapes::StringShape.new(name: 'ClientEmail') + ClientLocale = Shapes::StringShape.new(name: 'ClientLocale') + ClientLoginMessage = Shapes::StringShape.new(name: 'ClientLoginMessage') ClientProperties = Shapes::StructureShape.new(name: 'ClientProperties') ClientPropertiesList = Shapes::ListShape.new(name: 'ClientPropertiesList') ClientPropertiesResult = Shapes::StructureShape.new(name: 'ClientPropertiesResult') + ClientUrl = Shapes::StringShape.new(name: 'ClientUrl') Compute = Shapes::StringShape.new(name: 'Compute') ComputeType = Shapes::StructureShape.new(name: 'ComputeType') ComputerName = Shapes::StringShape.new(name: 'ComputerName') @@ -78,8 +84,13 @@ module ClientApi DedicatedTenancyModificationStateEnum = Shapes::StringShape.new(name: 'DedicatedTenancyModificationStateEnum') DedicatedTenancySupportEnum = Shapes::StringShape.new(name: 'DedicatedTenancySupportEnum') DedicatedTenancySupportResultEnum = Shapes::StringShape.new(name: 'DedicatedTenancySupportResultEnum') + DefaultClientBrandingAttributes = Shapes::StructureShape.new(name: 'DefaultClientBrandingAttributes') + DefaultImportClientBrandingAttributes = Shapes::StructureShape.new(name: 'DefaultImportClientBrandingAttributes') + DefaultLogo = Shapes::BlobShape.new(name: 'DefaultLogo') DefaultOu = Shapes::StringShape.new(name: 'DefaultOu') DefaultWorkspaceCreationProperties = Shapes::StructureShape.new(name: 'DefaultWorkspaceCreationProperties') + DeleteClientBrandingRequest = Shapes::StructureShape.new(name: 'DeleteClientBrandingRequest') + DeleteClientBrandingResult = Shapes::StructureShape.new(name: 'DeleteClientBrandingResult') DeleteConnectClientAddInRequest = Shapes::StructureShape.new(name: 'DeleteConnectClientAddInRequest') DeleteConnectClientAddInResult = Shapes::StructureShape.new(name: 'DeleteConnectClientAddInResult') DeleteConnectionAliasRequest = Shapes::StructureShape.new(name: 'DeleteConnectionAliasRequest') @@ -98,6 +109,8 @@ module ClientApi DescribeAccountModificationsResult = Shapes::StructureShape.new(name: 'DescribeAccountModificationsResult') DescribeAccountRequest = Shapes::StructureShape.new(name: 'DescribeAccountRequest') DescribeAccountResult = Shapes::StructureShape.new(name: 'DescribeAccountResult') + DescribeClientBrandingRequest = Shapes::StructureShape.new(name: 'DescribeClientBrandingRequest') + DescribeClientBrandingResult = Shapes::StructureShape.new(name: 'DescribeClientBrandingResult') DescribeClientPropertiesRequest = Shapes::StructureShape.new(name: 'DescribeClientPropertiesRequest') DescribeClientPropertiesResult = Shapes::StructureShape.new(name: 'DescribeClientPropertiesResult') DescribeConnectClientAddInsRequest = Shapes::StructureShape.new(name: 'DescribeConnectClientAddInsRequest') @@ -148,10 +161,17 @@ module ClientApi ImagePermission = Shapes::StructureShape.new(name: 'ImagePermission') ImagePermissions = Shapes::ListShape.new(name: 'ImagePermissions') ImageType = Shapes::StringShape.new(name: 'ImageType') + ImportClientBrandingRequest = Shapes::StructureShape.new(name: 'ImportClientBrandingRequest') + ImportClientBrandingResult = Shapes::StructureShape.new(name: 'ImportClientBrandingResult') ImportWorkspaceImageRequest = Shapes::StructureShape.new(name: 'ImportWorkspaceImageRequest') ImportWorkspaceImageResult = Shapes::StructureShape.new(name: 'ImportWorkspaceImageResult') InvalidParameterValuesException = Shapes::StructureShape.new(name: 'InvalidParameterValuesException') InvalidResourceStateException = Shapes::StructureShape.new(name: 'InvalidResourceStateException') + Ios2XLogo = Shapes::BlobShape.new(name: 'Ios2XLogo') + Ios3XLogo = Shapes::BlobShape.new(name: 'Ios3XLogo') + IosClientBrandingAttributes = Shapes::StructureShape.new(name: 'IosClientBrandingAttributes') + IosImportClientBrandingAttributes = Shapes::StructureShape.new(name: 'IosImportClientBrandingAttributes') + IosLogo = Shapes::BlobShape.new(name: 'IosLogo') IpAddress = Shapes::StringShape.new(name: 'IpAddress') IpGroupDesc = Shapes::StringShape.new(name: 'IpGroupDesc') IpGroupId = Shapes::StringShape.new(name: 'IpGroupId') @@ -165,6 +185,7 @@ module ClientApi Limit = Shapes::IntegerShape.new(name: 'Limit') ListAvailableManagementCidrRangesRequest = Shapes::StructureShape.new(name: 'ListAvailableManagementCidrRangesRequest') ListAvailableManagementCidrRangesResult = Shapes::StructureShape.new(name: 'ListAvailableManagementCidrRangesResult') + LoginMessage = Shapes::MapShape.new(name: 'LoginMessage') ManagementCidrRangeConstraint = Shapes::StringShape.new(name: 'ManagementCidrRangeConstraint') ManagementCidrRangeMaxResults = Shapes::IntegerShape.new(name: 'ManagementCidrRangeMaxResults') MigrateWorkspaceRequest = Shapes::StructureShape.new(name: 'MigrateWorkspaceRequest') @@ -336,6 +357,8 @@ module ClientApi BundleList.member = Shapes::ShapeRef.new(shape: WorkspaceBundle) + ClientDeviceTypeList.member = Shapes::ShapeRef.new(shape: ClientDeviceType) + ClientProperties.add_member(:reconnect_enabled, Shapes::ShapeRef.new(shape: ReconnectEnum, location_name: "ReconnectEnabled")) ClientProperties.struct_class = Types::ClientProperties @@ -451,6 +474,20 @@ module ClientApi DedicatedTenancyCidrRangeList.member = Shapes::ShapeRef.new(shape: DedicatedTenancyManagementCidrRange) + DefaultClientBrandingAttributes.add_member(:logo_url, Shapes::ShapeRef.new(shape: ClientUrl, location_name: "LogoUrl")) + DefaultClientBrandingAttributes.add_member(:support_email, Shapes::ShapeRef.new(shape: ClientEmail, location_name: "SupportEmail")) + DefaultClientBrandingAttributes.add_member(:support_link, Shapes::ShapeRef.new(shape: ClientUrl, location_name: "SupportLink")) + DefaultClientBrandingAttributes.add_member(:forgot_password_link, Shapes::ShapeRef.new(shape: ClientUrl, location_name: "ForgotPasswordLink")) + DefaultClientBrandingAttributes.add_member(:login_message, Shapes::ShapeRef.new(shape: LoginMessage, location_name: "LoginMessage")) + DefaultClientBrandingAttributes.struct_class = Types::DefaultClientBrandingAttributes + + DefaultImportClientBrandingAttributes.add_member(:logo, Shapes::ShapeRef.new(shape: DefaultLogo, location_name: "Logo")) + DefaultImportClientBrandingAttributes.add_member(:support_email, Shapes::ShapeRef.new(shape: ClientEmail, location_name: "SupportEmail")) + DefaultImportClientBrandingAttributes.add_member(:support_link, Shapes::ShapeRef.new(shape: ClientUrl, location_name: "SupportLink")) + DefaultImportClientBrandingAttributes.add_member(:forgot_password_link, Shapes::ShapeRef.new(shape: ClientUrl, location_name: "ForgotPasswordLink")) + DefaultImportClientBrandingAttributes.add_member(:login_message, Shapes::ShapeRef.new(shape: LoginMessage, location_name: "LoginMessage")) + DefaultImportClientBrandingAttributes.struct_class = Types::DefaultImportClientBrandingAttributes + DefaultWorkspaceCreationProperties.add_member(:enable_work_docs, Shapes::ShapeRef.new(shape: BooleanObject, location_name: "EnableWorkDocs")) DefaultWorkspaceCreationProperties.add_member(:enable_internet_access, Shapes::ShapeRef.new(shape: BooleanObject, location_name: "EnableInternetAccess")) DefaultWorkspaceCreationProperties.add_member(:default_ou, Shapes::ShapeRef.new(shape: DefaultOu, location_name: "DefaultOu")) @@ -459,6 +496,12 @@ module ClientApi DefaultWorkspaceCreationProperties.add_member(:enable_maintenance_mode, Shapes::ShapeRef.new(shape: BooleanObject, location_name: "EnableMaintenanceMode")) DefaultWorkspaceCreationProperties.struct_class = Types::DefaultWorkspaceCreationProperties + DeleteClientBrandingRequest.add_member(:resource_id, Shapes::ShapeRef.new(shape: DirectoryId, required: true, location_name: "ResourceId")) + DeleteClientBrandingRequest.add_member(:platforms, Shapes::ShapeRef.new(shape: ClientDeviceTypeList, required: true, location_name: "Platforms")) + DeleteClientBrandingRequest.struct_class = Types::DeleteClientBrandingRequest + + DeleteClientBrandingResult.struct_class = Types::DeleteClientBrandingResult + DeleteConnectClientAddInRequest.add_member(:add_in_id, Shapes::ShapeRef.new(shape: AmazonUuid, required: true, location_name: "AddInId")) DeleteConnectClientAddInRequest.add_member(:resource_id, Shapes::ShapeRef.new(shape: DirectoryId, required: true, location_name: "ResourceId")) DeleteConnectClientAddInRequest.struct_class = Types::DeleteConnectClientAddInRequest @@ -509,6 +552,17 @@ module ClientApi DescribeAccountResult.add_member(:dedicated_tenancy_management_cidr_range, Shapes::ShapeRef.new(shape: DedicatedTenancyManagementCidrRange, location_name: "DedicatedTenancyManagementCidrRange")) DescribeAccountResult.struct_class = Types::DescribeAccountResult + DescribeClientBrandingRequest.add_member(:resource_id, Shapes::ShapeRef.new(shape: DirectoryId, required: true, location_name: "ResourceId")) + DescribeClientBrandingRequest.struct_class = Types::DescribeClientBrandingRequest + + DescribeClientBrandingResult.add_member(:device_type_windows, Shapes::ShapeRef.new(shape: DefaultClientBrandingAttributes, location_name: "DeviceTypeWindows")) + DescribeClientBrandingResult.add_member(:device_type_osx, Shapes::ShapeRef.new(shape: DefaultClientBrandingAttributes, location_name: "DeviceTypeOsx")) + DescribeClientBrandingResult.add_member(:device_type_android, Shapes::ShapeRef.new(shape: DefaultClientBrandingAttributes, location_name: "DeviceTypeAndroid")) + DescribeClientBrandingResult.add_member(:device_type_ios, Shapes::ShapeRef.new(shape: IosClientBrandingAttributes, location_name: "DeviceTypeIos")) + DescribeClientBrandingResult.add_member(:device_type_linux, Shapes::ShapeRef.new(shape: DefaultClientBrandingAttributes, location_name: "DeviceTypeLinux")) + DescribeClientBrandingResult.add_member(:device_type_web, Shapes::ShapeRef.new(shape: DefaultClientBrandingAttributes, location_name: "DeviceTypeWeb")) + DescribeClientBrandingResult.struct_class = Types::DescribeClientBrandingResult + DescribeClientPropertiesRequest.add_member(:resource_ids, Shapes::ShapeRef.new(shape: ResourceIdList, required: true, location_name: "ResourceIds")) DescribeClientPropertiesRequest.struct_class = Types::DescribeClientPropertiesRequest @@ -668,6 +722,23 @@ module ClientApi ImagePermissions.member = Shapes::ShapeRef.new(shape: ImagePermission) + ImportClientBrandingRequest.add_member(:resource_id, Shapes::ShapeRef.new(shape: DirectoryId, required: true, location_name: "ResourceId")) + ImportClientBrandingRequest.add_member(:device_type_windows, Shapes::ShapeRef.new(shape: DefaultImportClientBrandingAttributes, location_name: "DeviceTypeWindows")) + ImportClientBrandingRequest.add_member(:device_type_osx, Shapes::ShapeRef.new(shape: DefaultImportClientBrandingAttributes, location_name: "DeviceTypeOsx")) + ImportClientBrandingRequest.add_member(:device_type_android, Shapes::ShapeRef.new(shape: DefaultImportClientBrandingAttributes, location_name: "DeviceTypeAndroid")) + ImportClientBrandingRequest.add_member(:device_type_ios, Shapes::ShapeRef.new(shape: IosImportClientBrandingAttributes, location_name: "DeviceTypeIos")) + ImportClientBrandingRequest.add_member(:device_type_linux, Shapes::ShapeRef.new(shape: DefaultImportClientBrandingAttributes, location_name: "DeviceTypeLinux")) + ImportClientBrandingRequest.add_member(:device_type_web, Shapes::ShapeRef.new(shape: DefaultImportClientBrandingAttributes, location_name: "DeviceTypeWeb")) + ImportClientBrandingRequest.struct_class = Types::ImportClientBrandingRequest + + ImportClientBrandingResult.add_member(:device_type_windows, Shapes::ShapeRef.new(shape: DefaultClientBrandingAttributes, location_name: "DeviceTypeWindows")) + ImportClientBrandingResult.add_member(:device_type_osx, Shapes::ShapeRef.new(shape: DefaultClientBrandingAttributes, location_name: "DeviceTypeOsx")) + ImportClientBrandingResult.add_member(:device_type_android, Shapes::ShapeRef.new(shape: DefaultClientBrandingAttributes, location_name: "DeviceTypeAndroid")) + ImportClientBrandingResult.add_member(:device_type_ios, Shapes::ShapeRef.new(shape: IosClientBrandingAttributes, location_name: "DeviceTypeIos")) + ImportClientBrandingResult.add_member(:device_type_linux, Shapes::ShapeRef.new(shape: DefaultClientBrandingAttributes, location_name: "DeviceTypeLinux")) + ImportClientBrandingResult.add_member(:device_type_web, Shapes::ShapeRef.new(shape: DefaultClientBrandingAttributes, location_name: "DeviceTypeWeb")) + ImportClientBrandingResult.struct_class = Types::ImportClientBrandingResult + ImportWorkspaceImageRequest.add_member(:ec2_image_id, Shapes::ShapeRef.new(shape: Ec2ImageId, required: true, location_name: "Ec2ImageId")) ImportWorkspaceImageRequest.add_member(:ingestion_process, Shapes::ShapeRef.new(shape: WorkspaceImageIngestionProcess, required: true, location_name: "IngestionProcess")) ImportWorkspaceImageRequest.add_member(:image_name, Shapes::ShapeRef.new(shape: WorkspaceImageName, required: true, location_name: "ImageName")) @@ -685,6 +756,24 @@ module ClientApi InvalidResourceStateException.add_member(:message, Shapes::ShapeRef.new(shape: ExceptionMessage, location_name: "message")) InvalidResourceStateException.struct_class = Types::InvalidResourceStateException + IosClientBrandingAttributes.add_member(:logo_url, Shapes::ShapeRef.new(shape: ClientUrl, location_name: "LogoUrl")) + IosClientBrandingAttributes.add_member(:logo_2x_url, Shapes::ShapeRef.new(shape: ClientUrl, location_name: "Logo2xUrl")) + IosClientBrandingAttributes.add_member(:logo_3x_url, Shapes::ShapeRef.new(shape: ClientUrl, location_name: "Logo3xUrl")) + IosClientBrandingAttributes.add_member(:support_email, Shapes::ShapeRef.new(shape: ClientEmail, location_name: "SupportEmail")) + IosClientBrandingAttributes.add_member(:support_link, Shapes::ShapeRef.new(shape: ClientUrl, location_name: "SupportLink")) + IosClientBrandingAttributes.add_member(:forgot_password_link, Shapes::ShapeRef.new(shape: ClientUrl, location_name: "ForgotPasswordLink")) + IosClientBrandingAttributes.add_member(:login_message, Shapes::ShapeRef.new(shape: LoginMessage, location_name: "LoginMessage")) + IosClientBrandingAttributes.struct_class = Types::IosClientBrandingAttributes + + IosImportClientBrandingAttributes.add_member(:logo, Shapes::ShapeRef.new(shape: IosLogo, location_name: "Logo")) + IosImportClientBrandingAttributes.add_member(:logo_2x, Shapes::ShapeRef.new(shape: Ios2XLogo, location_name: "Logo2x")) + IosImportClientBrandingAttributes.add_member(:logo_3x, Shapes::ShapeRef.new(shape: Ios3XLogo, location_name: "Logo3x")) + IosImportClientBrandingAttributes.add_member(:support_email, Shapes::ShapeRef.new(shape: ClientEmail, location_name: "SupportEmail")) + IosImportClientBrandingAttributes.add_member(:support_link, Shapes::ShapeRef.new(shape: ClientUrl, location_name: "SupportLink")) + IosImportClientBrandingAttributes.add_member(:forgot_password_link, Shapes::ShapeRef.new(shape: ClientUrl, location_name: "ForgotPasswordLink")) + IosImportClientBrandingAttributes.add_member(:login_message, Shapes::ShapeRef.new(shape: LoginMessage, location_name: "LoginMessage")) + IosImportClientBrandingAttributes.struct_class = Types::IosImportClientBrandingAttributes + IpGroupIdList.member = Shapes::ShapeRef.new(shape: IpGroupId) IpRevokedRuleList.member = Shapes::ShapeRef.new(shape: IpRule) @@ -704,6 +793,9 @@ module ClientApi ListAvailableManagementCidrRangesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken")) ListAvailableManagementCidrRangesResult.struct_class = Types::ListAvailableManagementCidrRangesResult + LoginMessage.key = Shapes::ShapeRef.new(shape: ClientLocale) + LoginMessage.value = Shapes::ShapeRef.new(shape: ClientLoginMessage) + MigrateWorkspaceRequest.add_member(:source_workspace_id, Shapes::ShapeRef.new(shape: WorkspaceId, required: true, location_name: "SourceWorkspaceId")) MigrateWorkspaceRequest.add_member(:bundle_id, Shapes::ShapeRef.new(shape: BundleId, required: true, location_name: "BundleId")) MigrateWorkspaceRequest.struct_class = Types::MigrateWorkspaceRequest @@ -1226,6 +1318,17 @@ module ClientApi o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValuesException) end) + api.add_operation(:delete_client_branding, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteClientBranding" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DeleteClientBrandingRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteClientBrandingResult) + o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValuesException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + api.add_operation(:delete_connect_client_add_in, Seahorse::Model::Operation.new.tap do |o| o.name = "DeleteConnectClientAddIn" o.http_method = "POST" @@ -1327,6 +1430,17 @@ module ClientApi o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) end) + api.add_operation(:describe_client_branding, Seahorse::Model::Operation.new.tap do |o| + o.name = "DescribeClientBranding" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: DescribeClientBrandingRequest) + o.output = Shapes::ShapeRef.new(shape: DescribeClientBrandingResult) + o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValuesException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + api.add_operation(:describe_client_properties, Seahorse::Model::Operation.new.tap do |o| o.name = "DescribeClientProperties" o.http_method = "POST" @@ -1500,6 +1614,17 @@ module ClientApi o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) end) + api.add_operation(:import_client_branding, Seahorse::Model::Operation.new.tap do |o| + o.name = "ImportClientBranding" + o.http_method = "POST" + o.http_request_uri = "/" + o.input = Shapes::ShapeRef.new(shape: ImportClientBrandingRequest) + o.output = Shapes::ShapeRef.new(shape: ImportClientBrandingResult) + o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValuesException) + o.errors << Shapes::ShapeRef.new(shape: ResourceLimitExceededException) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + end) + api.add_operation(:import_workspace_image, Seahorse::Model::Operation.new.tap do |o| o.name = "ImportWorkspaceImage" o.http_method = "POST" diff --git a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/types.rb b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/types.rb index e21ed0d7b7e..f9e8fa223ec 100644 --- a/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/types.rb +++ b/gems/aws-sdk-workspaces/lib/aws-sdk-workspaces/types.rb @@ -833,6 +833,137 @@ class CreateWorkspacesResult < Struct.new( include Aws::Structure end + # Returns default client branding attributes that were imported. These + # attributes display on the client login screen. + # + # Client branding attributes are public facing. Ensure that you don't + # include sensitive information. + # + # @!attribute [rw] logo_url + # The logo URL. This is the link where users can download the logo + # image. The only supported image format is `.png`. + # @return [String] + # + # @!attribute [rw] support_email + # The support email. The company's customer support email address. + # + # * In each platform type, the `SupportEmail` and `SupportLink` + # parameters are mutually exclusive. You can specify one parameter + # for each platform type, but not both. + # + # * The default email is `workspaces-feedback@amazon.com`. + # + # + # @return [String] + # + # @!attribute [rw] support_link + # The support link. The link for the company's customer support page + # for their WorkSpace. + # + # * In each platform type, the `SupportEmail` and `SupportLink` + # parameters are mutually exclusive.You can specify one parameter + # for each platform type, but not both. + # + # * The default support link is `workspaces-feedback@amazon.com`. + # + # + # @return [String] + # + # @!attribute [rw] forgot_password_link + # The forgotten password link. This is the web address that users can + # go to if they forget the password for their WorkSpace. + # @return [String] + # + # @!attribute [rw] login_message + # The login message. Specified as a key value pair, in which the key + # is a locale and the value is the localized message for that locale. + # The only key supported is `en_US`. + # @return [Hash] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DefaultClientBrandingAttributes AWS API Documentation + # + class DefaultClientBrandingAttributes < Struct.new( + :logo_url, + :support_email, + :support_link, + :forgot_password_link, + :login_message) + SENSITIVE = [] + include Aws::Structure + end + + # The default client branding attributes to be imported. These + # attributes display on the client login screen. + # + # Client branding attributes are public facing. Ensure that you do not + # include sensitive information. + # + # @note When making an API call, you may pass DefaultImportClientBrandingAttributes + # data as a hash: + # + # { + # logo: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # } + # + # @!attribute [rw] logo + # The logo. This is the link where users can download the logo image. + # The only image format accepted is `.png`. + # @return [String] + # + # @!attribute [rw] support_email + # The support email. The company's customer support email address. + # + # * In each platform type, the `SupportEmail` and `SupportLink` + # parameters are mutually exclusive. You can specify one parameter + # for each platform type, but not both. + # + # * The default email is `workspaces-feedback@amazon.com`. + # + # + # @return [String] + # + # @!attribute [rw] support_link + # The support link. The link for the company's customer support page + # for their WorkSpace. + # + # * In each platform type, the `SupportEmail` and `SupportLink` + # parameters are mutually exclusive. You can specify one parameter + # for each platform type, but not both. + # + # * The default support link is `workspaces-feedback@amazon.com`. + # + # + # @return [String] + # + # @!attribute [rw] forgot_password_link + # The forgotten password link. This is the web address that users can + # go to if they forget the password for their WorkSpace. + # @return [String] + # + # @!attribute [rw] login_message + # The login message. Specified as a key value pair, in which the key + # is a locale and the value is the localized message for that locale. + # The only key supported is `en_US`. + # @return [Hash] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DefaultImportClientBrandingAttributes AWS API Documentation + # + class DefaultImportClientBrandingAttributes < Struct.new( + :logo, + :support_email, + :support_link, + :forgot_password_link, + :login_message) + SENSITIVE = [] + include Aws::Structure + end + # Describes the default values that are used to create WorkSpaces. For # more information, see [Update Directory Details for Your # WorkSpaces][1]. @@ -905,6 +1036,36 @@ class DefaultWorkspaceCreationProperties < Struct.new( include Aws::Structure end + # @note When making an API call, you may pass DeleteClientBrandingRequest + # data as a hash: + # + # { + # resource_id: "DirectoryId", # required + # platforms: ["DeviceTypeWindows"], # required, accepts DeviceTypeWindows, DeviceTypeOsx, DeviceTypeAndroid, DeviceTypeIos, DeviceTypeLinux, DeviceTypeWeb + # } + # + # @!attribute [rw] resource_id + # The directory identifier of the WorkSpace for which you want to + # delete client branding. + # @return [String] + # + # @!attribute [rw] platforms + # The device type for which you want to delete client branding. + # @return [Array] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteClientBrandingRequest AWS API Documentation + # + class DeleteClientBrandingRequest < Struct.new( + :resource_id, + :platforms) + SENSITIVE = [] + include Aws::Structure + end + + # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteClientBrandingResult AWS API Documentation + # + class DeleteClientBrandingResult < Aws::EmptyStructure; end + # @note When making an API call, you may pass DeleteConnectClientAddInRequest # data as a hash: # @@ -1150,6 +1311,63 @@ class DescribeAccountResult < Struct.new( include Aws::Structure end + # @note When making an API call, you may pass DescribeClientBrandingRequest + # data as a hash: + # + # { + # resource_id: "DirectoryId", # required + # } + # + # @!attribute [rw] resource_id + # The directory identifier of the WorkSpace for which you want to view + # client branding information. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeClientBrandingRequest AWS API Documentation + # + class DescribeClientBrandingRequest < Struct.new( + :resource_id) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] device_type_windows + # The branding information for Windows devices. + # @return [Types::DefaultClientBrandingAttributes] + # + # @!attribute [rw] device_type_osx + # The branding information for macOS devices. + # @return [Types::DefaultClientBrandingAttributes] + # + # @!attribute [rw] device_type_android + # The branding information for Android devices. + # @return [Types::DefaultClientBrandingAttributes] + # + # @!attribute [rw] device_type_ios + # The branding information for iOS devices. + # @return [Types::IosClientBrandingAttributes] + # + # @!attribute [rw] device_type_linux + # The branding information for Linux devices. + # @return [Types::DefaultClientBrandingAttributes] + # + # @!attribute [rw] device_type_web + # The branding information for Web access. + # @return [Types::DefaultClientBrandingAttributes] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeClientBrandingResult AWS API Documentation + # + class DescribeClientBrandingResult < Struct.new( + :device_type_windows, + :device_type_osx, + :device_type_android, + :device_type_ios, + :device_type_linux, + :device_type_web) + SENSITIVE = [] + include Aws::Structure + end + # @note When making an API call, you may pass DescribeClientPropertiesRequest # data as a hash: # @@ -1938,6 +2156,149 @@ class ImagePermission < Struct.new( include Aws::Structure end + # @note When making an API call, you may pass ImportClientBrandingRequest + # data as a hash: + # + # { + # resource_id: "DirectoryId", # required + # device_type_windows: { + # logo: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # }, + # device_type_osx: { + # logo: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # }, + # device_type_android: { + # logo: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # }, + # device_type_ios: { + # logo: "data", + # logo_2x: "data", + # logo_3x: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # }, + # device_type_linux: { + # logo: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # }, + # device_type_web: { + # logo: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # }, + # } + # + # @!attribute [rw] resource_id + # The directory identifier of the WorkSpace for which you want to + # import client branding. + # @return [String] + # + # @!attribute [rw] device_type_windows + # The branding information to import for Windows devices. + # @return [Types::DefaultImportClientBrandingAttributes] + # + # @!attribute [rw] device_type_osx + # The branding information to import for macOS devices. + # @return [Types::DefaultImportClientBrandingAttributes] + # + # @!attribute [rw] device_type_android + # The branding information to import for Android devices. + # @return [Types::DefaultImportClientBrandingAttributes] + # + # @!attribute [rw] device_type_ios + # The branding information to import for iOS devices. + # @return [Types::IosImportClientBrandingAttributes] + # + # @!attribute [rw] device_type_linux + # The branding information to import for Linux devices. + # @return [Types::DefaultImportClientBrandingAttributes] + # + # @!attribute [rw] device_type_web + # The branding information to import for web access. + # @return [Types::DefaultImportClientBrandingAttributes] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ImportClientBrandingRequest AWS API Documentation + # + class ImportClientBrandingRequest < Struct.new( + :resource_id, + :device_type_windows, + :device_type_osx, + :device_type_android, + :device_type_ios, + :device_type_linux, + :device_type_web) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] device_type_windows + # The branding information configured for Windows devices. + # @return [Types::DefaultClientBrandingAttributes] + # + # @!attribute [rw] device_type_osx + # The branding information configured for macOS devices. + # @return [Types::DefaultClientBrandingAttributes] + # + # @!attribute [rw] device_type_android + # The branding information configured for Android devices. + # @return [Types::DefaultClientBrandingAttributes] + # + # @!attribute [rw] device_type_ios + # The branding information configured for iOS devices. + # @return [Types::IosClientBrandingAttributes] + # + # @!attribute [rw] device_type_linux + # The branding information configured for Linux devices. + # @return [Types::DefaultClientBrandingAttributes] + # + # @!attribute [rw] device_type_web + # The branding information configured for web access. + # @return [Types::DefaultClientBrandingAttributes] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ImportClientBrandingResult AWS API Documentation + # + class ImportClientBrandingResult < Struct.new( + :device_type_windows, + :device_type_osx, + :device_type_android, + :device_type_ios, + :device_type_linux, + :device_type_web) + SENSITIVE = [] + include Aws::Structure + end + # @note When making an API call, you may pass ImportWorkspaceImageRequest # data as a hash: # @@ -2051,6 +2412,201 @@ class InvalidResourceStateException < Struct.new( include Aws::Structure end + # The client branding attributes for iOS device types. These attributes + # are displayed on the iOS client login screen only. + # + # Client branding attributes are public facing. Ensure you do not + # include sensitive information. + # + # @!attribute [rw] logo_url + # The logo. This is the link where users can download the logo image. + # This is the standard-resolution display that has a 1:1 pixel density + # (or @1x), where one pixel is equal to one point. + # @return [String] + # + # @!attribute [rw] logo_2x_url + # The @2x version of the logo. This is the higher resolution display + # that offers a scale factor of 2.0 (or @2x). + # + # For more information about iOS image size and resolution, see [Image + # Size and Resolution ][1] in the *Apple Human Interface Guidelines*. + # + # + # + # + # + # [1]: https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/image-size-and-resolution/ + # @return [String] + # + # @!attribute [rw] logo_3x_url + # The @3x version of the logo. This is the higher resolution display + # that offers a scale factor of 3.0 (or @3x). + # + # For more information about iOS image size and resolution, see [Image + # Size and Resolution ][1] in the *Apple Human Interface Guidelines*. + # + # + # + # + # + # [1]: https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/image-size-and-resolution/ + # @return [String] + # + # @!attribute [rw] support_email + # The support email. The company's customer support email address. + # + # * In each platform type, the `SupportEmail` and `SupportLink` + # parameters are mutually exclusive. You can specify one parameter + # for each platform type, but not both. + # + # * The default email is `workspaces-feedback@amazon.com`. + # + # + # @return [String] + # + # @!attribute [rw] support_link + # The support link. The link for the company's customer support page + # for their WorkSpace. + # + # * In each platform type, the `SupportEmail` and `SupportLink` + # parameters are mutually exclusive. You can specify one parameter + # for each platform type, but not both. + # + # * The default support link is `workspaces-feedback@amazon.com`. + # + # + # @return [String] + # + # @!attribute [rw] forgot_password_link + # The forgotten password link. This is the web address that users can + # go to if they forget the password for their WorkSpace. + # @return [String] + # + # @!attribute [rw] login_message + # The login message. Specified as a key value pair, in which the key + # is a locale and the value is the localized message for that locale. + # The only key supported is `en_US`. + # @return [Hash] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/IosClientBrandingAttributes AWS API Documentation + # + class IosClientBrandingAttributes < Struct.new( + :logo_url, + :logo_2x_url, + :logo_3x_url, + :support_email, + :support_link, + :forgot_password_link, + :login_message) + SENSITIVE = [] + include Aws::Structure + end + + # The client branding attributes to import for iOS device types. These + # attributes are displayed on the iOS client login screen. + # + # Client branding attributes are public facing. Ensure you do not + # include sensitive information. + # + # @note When making an API call, you may pass IosImportClientBrandingAttributes + # data as a hash: + # + # { + # logo: "data", + # logo_2x: "data", + # logo_3x: "data", + # support_email: "ClientEmail", + # support_link: "ClientUrl", + # forgot_password_link: "ClientUrl", + # login_message: { + # "ClientLocale" => "ClientLoginMessage", + # }, + # } + # + # @!attribute [rw] logo + # The logo. This is the link where users can download the logo image. + # This is the standard-resolution display that has a 1:1 pixel density + # (or @1x), where one pixel is equal to one point. + # @return [String] + # + # @!attribute [rw] logo_2x + # The @2x version of the logo. This is the higher resolution display + # that offers a scale factor of 2.0 (or @2x). + # + # For more information about iOS image size and resolution, see [Image + # Size and Resolution ][1] in the *Apple Human Interface Guidelines*. + # + # + # + # + # + # [1]: https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/image-size-and-resolution/ + # @return [String] + # + # @!attribute [rw] logo_3x + # The @3x version of the logo. This is the higher resolution display + # that offers a scale factor of 3.0 (or @3x). + # + # For more information about iOS image size and resolution, see [Image + # Size and Resolution ][1] in the *Apple Human Interface Guidelines*. + # + # + # + # + # + # [1]: https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/image-size-and-resolution/ + # @return [String] + # + # @!attribute [rw] support_email + # The support email. The company's customer support email address. + # + # * In each platform type, the `SupportEmail` and `SupportLink` + # parameters are mutually exclusive. You can specify one parameter + # for each platform type, but not both. + # + # * The default email is `workspaces-feedback@amazon.com`. + # + # + # @return [String] + # + # @!attribute [rw] support_link + # The support link. The link for the company's customer support page + # for their WorkSpace. + # + # * In each platform type, the `SupportEmail` and `SupportLink` + # parameters are mutually exclusive. You can specify one parameter + # for each platform type, but not both. + # + # * The default support link is `workspaces-feedback@amazon.com`. + # + # + # @return [String] + # + # @!attribute [rw] forgot_password_link + # The forgotten password link. This is the web address that users can + # go to if they forget the password for their WorkSpace. + # @return [String] + # + # @!attribute [rw] login_message + # The login message. Specified as a key value pair, in which the key + # is a locale and the value is the localized message for that locale. + # The only key supported is `en_US`. + # @return [Hash] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/IosImportClientBrandingAttributes AWS API Documentation + # + class IosImportClientBrandingAttributes < Struct.new( + :logo, + :logo_2x, + :logo_3x, + :support_email, + :support_link, + :forgot_password_link, + :login_message) + SENSITIVE = [] + include Aws::Structure + end + # Describes a rule for an IP access control group. # # @note When making an API call, you may pass IpRuleItem diff --git a/services.json b/services.json index 359abe66663..ddebcf3bc5a 100644 --- a/services.json +++ b/services.json @@ -721,6 +721,9 @@ "PinpointSMSVoice": { "models": "sms-voice/2018-09-05" }, + "PinpointSMSVoiceV2": { + "models": "pinpoint-sms-voice-v2/2022-03-31" + }, "Polly": { "models": "polly/2016-06-10" },