All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.aws.sdk.kotlin.services.pinpointsmsvoicev2.PinpointSmsVoiceV2Client.kt Maven / Gradle / Ivy

There is a newer version: 1.3.78
Show newest version
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.pinpointsmsvoicev2

import aws.sdk.kotlin.runtime.auth.credentials.DefaultChainCredentialsProvider
import aws.sdk.kotlin.runtime.auth.credentials.internal.manage
import aws.sdk.kotlin.runtime.client.AwsSdkClientConfig
import aws.sdk.kotlin.runtime.config.AbstractAwsSdkClientFactory
import aws.sdk.kotlin.runtime.config.endpoints.resolveEndpointUrl
import aws.sdk.kotlin.runtime.config.profile.AwsProfile
import aws.sdk.kotlin.runtime.config.profile.AwsSharedConfig
import aws.sdk.kotlin.runtime.http.retries.AwsRetryPolicy
import aws.sdk.kotlin.services.pinpointsmsvoicev2.auth.DefaultPinpointSmsVoiceV2AuthSchemeProvider
import aws.sdk.kotlin.services.pinpointsmsvoicev2.auth.PinpointSmsVoiceV2AuthSchemeProvider
import aws.sdk.kotlin.services.pinpointsmsvoicev2.endpoints.DefaultPinpointSmsVoiceV2EndpointProvider
import aws.sdk.kotlin.services.pinpointsmsvoicev2.endpoints.PinpointSmsVoiceV2EndpointParameters
import aws.sdk.kotlin.services.pinpointsmsvoicev2.endpoints.PinpointSmsVoiceV2EndpointProvider
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.AssociateOriginationIdentityRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.AssociateOriginationIdentityResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.AssociateProtectConfigurationRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.AssociateProtectConfigurationResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateConfigurationSetRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateConfigurationSetResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateEventDestinationRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateEventDestinationResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateOptOutListRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateOptOutListResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreatePoolRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreatePoolResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateProtectConfigurationRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateProtectConfigurationResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateRegistrationAssociationRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateRegistrationAssociationResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateRegistrationAttachmentRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateRegistrationAttachmentResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateRegistrationRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateRegistrationResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateRegistrationVersionRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateRegistrationVersionResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateVerifiedDestinationNumberRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.CreateVerifiedDestinationNumberResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteAccountDefaultProtectConfigurationRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteAccountDefaultProtectConfigurationResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteConfigurationSetRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteConfigurationSetResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteDefaultMessageTypeRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteDefaultMessageTypeResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteDefaultSenderIdRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteDefaultSenderIdResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteEventDestinationRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteEventDestinationResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteKeywordRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteKeywordResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteMediaMessageSpendLimitOverrideRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteMediaMessageSpendLimitOverrideResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteOptOutListRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteOptOutListResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteOptedOutNumberRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteOptedOutNumberResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeletePoolRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeletePoolResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteProtectConfigurationRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteProtectConfigurationResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteRegistrationAttachmentRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteRegistrationAttachmentResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteRegistrationFieldValueRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteRegistrationFieldValueResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteRegistrationRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteRegistrationResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteResourcePolicyRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteResourcePolicyResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteTextMessageSpendLimitOverrideRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteTextMessageSpendLimitOverrideResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteVerifiedDestinationNumberRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteVerifiedDestinationNumberResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteVoiceMessageSpendLimitOverrideRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DeleteVoiceMessageSpendLimitOverrideResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeAccountAttributesRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeAccountAttributesResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeAccountLimitsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeAccountLimitsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeConfigurationSetsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeConfigurationSetsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeKeywordsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeKeywordsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeOptOutListsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeOptOutListsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeOptedOutNumbersRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeOptedOutNumbersResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribePhoneNumbersRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribePhoneNumbersResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribePoolsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribePoolsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeProtectConfigurationsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeProtectConfigurationsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationAttachmentsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationAttachmentsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationFieldDefinitionsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationFieldDefinitionsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationFieldValuesRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationFieldValuesResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationSectionDefinitionsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationSectionDefinitionsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationTypeDefinitionsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationTypeDefinitionsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationVersionsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationVersionsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeRegistrationsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeSenderIdsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeSenderIdsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeSpendLimitsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeSpendLimitsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeVerifiedDestinationNumbersRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DescribeVerifiedDestinationNumbersResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DisassociateOriginationIdentityRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DisassociateOriginationIdentityResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DisassociateProtectConfigurationRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DisassociateProtectConfigurationResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DiscardRegistrationVersionRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.DiscardRegistrationVersionResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.GetProtectConfigurationCountryRuleSetRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.GetProtectConfigurationCountryRuleSetResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.GetResourcePolicyRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.GetResourcePolicyResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.ListPoolOriginationIdentitiesRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.ListPoolOriginationIdentitiesResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.ListRegistrationAssociationsRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.ListRegistrationAssociationsResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.ListTagsForResourceRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.ListTagsForResourceResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.PutKeywordRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.PutKeywordResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.PutOptedOutNumberRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.PutOptedOutNumberResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.PutRegistrationFieldValueRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.PutRegistrationFieldValueResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.PutResourcePolicyRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.PutResourcePolicyResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.ReleasePhoneNumberRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.ReleasePhoneNumberResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.ReleaseSenderIdRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.ReleaseSenderIdResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.RequestPhoneNumberRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.RequestPhoneNumberResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.RequestSenderIdRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.RequestSenderIdResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SendDestinationNumberVerificationCodeRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SendDestinationNumberVerificationCodeResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SendMediaMessageRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SendMediaMessageResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SendTextMessageRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SendTextMessageResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SendVoiceMessageRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SendVoiceMessageResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SetAccountDefaultProtectConfigurationRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SetAccountDefaultProtectConfigurationResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SetDefaultMessageTypeRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SetDefaultMessageTypeResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SetDefaultSenderIdRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SetDefaultSenderIdResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SetMediaMessageSpendLimitOverrideRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SetMediaMessageSpendLimitOverrideResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SetTextMessageSpendLimitOverrideRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SetTextMessageSpendLimitOverrideResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SetVoiceMessageSpendLimitOverrideRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SetVoiceMessageSpendLimitOverrideResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SubmitRegistrationVersionRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.SubmitRegistrationVersionResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.TagResourceRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.TagResourceResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UntagResourceRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UntagResourceResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UpdateEventDestinationRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UpdateEventDestinationResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UpdatePhoneNumberRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UpdatePhoneNumberResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UpdatePoolRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UpdatePoolResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UpdateProtectConfigurationCountryRuleSetRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UpdateProtectConfigurationCountryRuleSetResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UpdateProtectConfigurationRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UpdateProtectConfigurationResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UpdateSenderIdRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.UpdateSenderIdResponse
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.VerifyDestinationNumberRequest
import aws.sdk.kotlin.services.pinpointsmsvoicev2.model.VerifyDestinationNumberResponse
import aws.smithy.kotlin.runtime.auth.awscredentials.CredentialsProvider
import aws.smithy.kotlin.runtime.auth.awscredentials.CredentialsProviderConfig
import aws.smithy.kotlin.runtime.awsprotocol.ClockSkewInterceptor
import aws.smithy.kotlin.runtime.client.AbstractSdkClientBuilder
import aws.smithy.kotlin.runtime.client.AbstractSdkClientFactory
import aws.smithy.kotlin.runtime.client.IdempotencyTokenConfig
import aws.smithy.kotlin.runtime.client.IdempotencyTokenProvider
import aws.smithy.kotlin.runtime.client.LogMode
import aws.smithy.kotlin.runtime.client.RetryClientConfig
import aws.smithy.kotlin.runtime.client.RetryStrategyClientConfig
import aws.smithy.kotlin.runtime.client.RetryStrategyClientConfigImpl
import aws.smithy.kotlin.runtime.client.SdkClient
import aws.smithy.kotlin.runtime.client.SdkClientConfig
import aws.smithy.kotlin.runtime.http.auth.AuthScheme
import aws.smithy.kotlin.runtime.http.auth.HttpAuthConfig
import aws.smithy.kotlin.runtime.http.config.HttpClientConfig
import aws.smithy.kotlin.runtime.http.config.HttpEngineConfig
import aws.smithy.kotlin.runtime.http.engine.HttpClientEngine
import aws.smithy.kotlin.runtime.http.engine.HttpEngineConfigImpl
import aws.smithy.kotlin.runtime.http.interceptors.HttpInterceptor
import aws.smithy.kotlin.runtime.net.url.Url
import aws.smithy.kotlin.runtime.retries.RetryStrategy
import aws.smithy.kotlin.runtime.retries.policy.RetryPolicy
import aws.smithy.kotlin.runtime.telemetry.Global
import aws.smithy.kotlin.runtime.telemetry.TelemetryConfig
import aws.smithy.kotlin.runtime.telemetry.TelemetryProvider
import aws.smithy.kotlin.runtime.util.LazyAsyncValue
import kotlin.collections.List
import kotlin.jvm.JvmStatic


public const val ServiceId: String = "Pinpoint SMS Voice V2"
public const val SdkVersion: String = "1.3.41"
public const val ServiceApiVersion: String = "2022-03-31"

/**
 * Welcome to the *AWS End User Messaging SMS and Voice, version 2 API Reference*. This guide provides information about AWS End User Messaging 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 AWS End User Messaging SMS and Voice, version 2 API provides programmatic access to options that are unique to the SMS and voice channels. AWS End User Messaging SMS and Voice, version 2 resources such as phone numbers, sender IDs, and opt-out lists can be used by the Amazon Pinpoint API.
 *
 * If you're new to AWS End User Messaging SMS and Voice, it's also helpful to review the [ AWS End User Messaging SMS User Guide](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html). The *AWS End User Messaging SMS User Guide * provides tutorials, code samples, and procedures that demonstrate how to use AWS End User Messaging SMS and Voice features programmatically and how to integrate functionality into mobile apps and other types of applications. The guide also provides key information, such as AWS End User Messaging SMS and Voice integration with other Amazon Web Services services, and the quotas that apply to use of the service.
 *
 * **Regional availability**
 *
 * The *AWS End User Messaging SMS and Voice version 2 API Reference* is available in several Amazon Web Services Regions and it provides an endpoint for each of these Regions. For a list of all the Regions and endpoints where the API is currently available, see [Amazon Web Services Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#pinpoint_region) and [Amazon Pinpoint endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/pinpoint.html) in the Amazon Web Services General Reference. To learn more about Amazon Web Services Regions, see [Managing Amazon Web Services Regions](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) in the Amazon Web Services General Reference.
 *
 * In each Region, Amazon Web Services maintains multiple Availability Zones. These Availability Zones are physically isolated from each other, but are united by private, low-latency, high-throughput, and highly redundant network connections. These Availability Zones enable us to provide very high levels of availability and redundancy, while also minimizing latency. To learn more about the number of Availability Zones that are available in each Region, see [Amazon Web Services Global Infrastructure.](https://aws.amazon.com/about-aws/global-infrastructure/)
 */
public interface PinpointSmsVoiceV2Client : SdkClient {
    /**
     * PinpointSmsVoiceV2Client's configuration
     */
    public override val config: Config

    public companion object : AbstractAwsSdkClientFactory()
     {
        @JvmStatic
        override fun builder(): Builder = Builder()

        override fun finalizeConfig(builder: Builder) {
            super.finalizeConfig(builder)
            builder.config.interceptors.add(0, ClockSkewInterceptor())
        }

        override suspend fun finalizeEnvironmentalConfig(builder: Builder, sharedConfig: LazyAsyncValue, activeProfile: LazyAsyncValue) {
            super.finalizeEnvironmentalConfig(builder, sharedConfig, activeProfile)
            builder.config.endpointUrl = builder.config.endpointUrl ?: resolveEndpointUrl(
                sharedConfig,
                "PinpointSmsVoiceV2",
                "PINPOINT_SMS_VOICE_V2",
                "pinpoint_sms_voice_v2",
            )
        }
    }

    public class Builder internal constructor(): AbstractSdkClientBuilder() {
        override val config: Config.Builder = Config.Builder()
        override fun newClient(config: Config): PinpointSmsVoiceV2Client = DefaultPinpointSmsVoiceV2Client(config)
    }

    public class Config private constructor(builder: Builder) : AwsSdkClientConfig, CredentialsProviderConfig, HttpAuthConfig, HttpClientConfig, HttpEngineConfig by builder.buildHttpEngineConfig(), IdempotencyTokenConfig, RetryClientConfig, RetryStrategyClientConfig by builder.buildRetryStrategyClientConfig(), SdkClientConfig, TelemetryConfig {
        override val clientName: String = builder.clientName
        override val region: String? = builder.region
        override val authSchemes: kotlin.collections.List = builder.authSchemes
        override val credentialsProvider: CredentialsProvider = builder.credentialsProvider ?: DefaultChainCredentialsProvider(httpClient = httpClient, region = region).manage()
        public val endpointProvider: PinpointSmsVoiceV2EndpointProvider = builder.endpointProvider ?: DefaultPinpointSmsVoiceV2EndpointProvider()
        public val endpointUrl: Url? = builder.endpointUrl
        override val idempotencyTokenProvider: IdempotencyTokenProvider = builder.idempotencyTokenProvider ?: IdempotencyTokenProvider.Default
        override val interceptors: kotlin.collections.List = builder.interceptors
        override val logMode: LogMode = builder.logMode ?: LogMode.Default
        override val retryPolicy: RetryPolicy = builder.retryPolicy ?: AwsRetryPolicy.Default
        override val telemetryProvider: TelemetryProvider = builder.telemetryProvider ?: TelemetryProvider.Global
        override val useDualStack: Boolean = builder.useDualStack ?: false
        override val useFips: Boolean = builder.useFips ?: false
        override val applicationId: String? = builder.applicationId
        public val authSchemeProvider: PinpointSmsVoiceV2AuthSchemeProvider = builder.authSchemeProvider ?: DefaultPinpointSmsVoiceV2AuthSchemeProvider()
        public companion object {
            public inline operator fun invoke(block: Builder.() -> kotlin.Unit): Config = Builder().apply(block).build()
        }

        public fun toBuilder(): Builder = Builder().apply {
            clientName = [email protected]
            region = [email protected]
            authSchemes = [email protected]
            credentialsProvider = [email protected]
            endpointProvider = [email protected]
            endpointUrl = [email protected]
            httpClient = [email protected]
            idempotencyTokenProvider = [email protected]
            interceptors = [email protected]()
            logMode = [email protected]
            retryPolicy = [email protected]
            retryStrategy = [email protected]
            telemetryProvider = [email protected]
            useDualStack = [email protected]
            useFips = [email protected]
            applicationId = [email protected]
            authSchemeProvider = [email protected]
        }

        public class Builder : AwsSdkClientConfig.Builder, CredentialsProviderConfig.Builder, HttpAuthConfig.Builder, HttpClientConfig.Builder, HttpEngineConfig.Builder by HttpEngineConfigImpl.BuilderImpl(), IdempotencyTokenConfig.Builder, RetryClientConfig.Builder, RetryStrategyClientConfig.Builder by RetryStrategyClientConfigImpl.BuilderImpl(), SdkClientConfig.Builder, TelemetryConfig.Builder {
            /**
             * A reader-friendly name for the client.
             */
            override var clientName: String = "Pinpoint SMS Voice V2"

            /**
             * The AWS region (e.g. `us-west-2`) to make requests to. See about AWS
             * [global infrastructure](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) for more
             * information
             */
            override var region: String? = null

            /**
             * Register new or override default [AuthScheme]s configured for this client. By default, the set
             * of auth schemes configured comes from the service model. An auth scheme configured explicitly takes
             * precedence over the defaults and can be used to customize identity resolution and signing for specific
             * authentication schemes.
             */
            override var authSchemes: kotlin.collections.List = emptyList()

            /**
             * The AWS credentials provider to use for authenticating requests. If not provided a
             * [aws.sdk.kotlin.runtime.auth.credentials.DefaultChainCredentialsProvider] instance will be used.
             * NOTE: The caller is responsible for managing the lifetime of the provider when set. The SDK
             * client will not close it when the client is closed.
             */
            override var credentialsProvider: CredentialsProvider? = null

            /**
             * The endpoint provider used to determine where to make service requests. **This is an advanced config
             * option.**
             *
             * Endpoint resolution occurs as part of the workflow for every request made via the service client.
             *
             * The inputs to endpoint resolution are defined on a per-service basis (see [EndpointParameters]).
             */
            public var endpointProvider: PinpointSmsVoiceV2EndpointProvider? = null

            /**
             * A custom endpoint to route requests to. The endpoint set here is passed to the configured
             * [endpointProvider], which may inspect and modify it as needed.
             *
             * Setting a custom endpointUrl should generally be preferred to overriding the [endpointProvider] and is
             * the recommended way to route requests to development or preview instances of a service.
             *
             * **This is an advanced config option.**
             */
            public var endpointUrl: Url? = null

            /**
             * Override the default idempotency token generator. SDK clients will generate tokens for members
             * that represent idempotent tokens when not explicitly set by the caller using this generator.
             */
            override var idempotencyTokenProvider: IdempotencyTokenProvider? = null

            /**
             * Add an [aws.smithy.kotlin.runtime.client.Interceptor] that will have access to read and modify
             * the request and response objects as they are processed by the SDK.
             * Interceptors added using this method are executed in the order they are configured and are always
             * later than any added automatically by the SDK.
             */
            override var interceptors: kotlin.collections.MutableList = kotlin.collections.mutableListOf()

            /**
             * Configure events that will be logged. By default clients will not output
             * raw requests or responses. Use this setting to opt-in to additional debug logging.
             *
             * This can be used to configure logging of requests, responses, retries, etc of SDK clients.
             *
             * **NOTE**: Logging of raw requests or responses may leak sensitive information! It may also have
             * performance considerations when dumping the request/response body. This is primarily a tool for
             * debug purposes.
             */
            override var logMode: LogMode? = null

            /**
             * The policy to use for evaluating operation results and determining whether/how to retry.
             */
            override var retryPolicy: RetryPolicy? = null

            /**
             * The telemetry provider used to instrument the SDK operations with. By default, the global telemetry
             * provider will be used.
             */
            override var telemetryProvider: TelemetryProvider? = null

            /**
             *            Flag to toggle whether to use dual-stack endpoints when making requests.
             *            See [https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html] for more information.
             * `          Disabled by default.
             */
            override var useDualStack: Boolean? = null

            /**
             *            Flag to toggle whether to use [FIPS](https://aws.amazon.com/compliance/fips/) endpoints when making requests.
             * `          Disabled by default.
             */
            override var useFips: Boolean? = null

            /**
             * An optional application specific identifier.
             * When set it will be appended to the User-Agent header of every request in the form of: `app/{applicationId}`.
             * When not explicitly set, the value will be loaded from the following locations:
             *
             * - JVM System Property: `aws.userAgentAppId`
             * - Environment variable: `AWS_SDK_UA_APP_ID`
             * - Shared configuration profile attribute: `sdk_ua_app_id`
             *
             * See [shared configuration settings](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html)
             * reference for more information on environment variables and shared config settings.
             */
            override var applicationId: String? = null

            /**
             * Configure the provider used to resolve the authentication scheme to use for a particular operation.
             */
            public var authSchemeProvider: PinpointSmsVoiceV2AuthSchemeProvider? = null

            override fun build(): Config = Config(this)
        }
    }

    /**
     * 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.
     */
    public suspend fun associateOriginationIdentity(input: AssociateOriginationIdentityRequest): AssociateOriginationIdentityResponse

    /**
     * Associate a protect configuration with a configuration set. This replaces the configuration sets current protect configuration. A configuration set can only be associated with one protect configuration at a time. A protect configuration can be associated with multiple configuration sets.
     */
    public suspend fun associateProtectConfiguration(input: AssociateProtectConfigurationRequest): AssociateProtectConfigurationResponse

    /**
     * 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.
     */
    public suspend fun createConfigurationSet(input: CreateConfigurationSetRequest): CreateConfigurationSetResponse

    /**
     * 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 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 Firehose destination.
     */
    public suspend fun createEventDestination(input: CreateEventDestinationRequest): CreateEventDestinationResponse

    /**
     * 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 ](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-manage.html#channels-sms-manage-optout) in the *AWS End User Messaging SMS User Guide*.
     */
    public suspend fun createOptOutList(input: CreateOptOutListRequest): CreateOptOutListResponse

    /**
     * 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.
     */
    public suspend fun createPool(input: CreatePoolRequest): CreatePoolResponse

    /**
     * Create a new protect configuration. By default all country rule sets for each capability are set to `ALLOW`. Update the country rule sets using `UpdateProtectConfigurationCountryRuleSet`. A protect configurations name is stored as a Tag with the key set to `Name` and value as the name of the protect configuration.
     */
    public suspend fun createProtectConfiguration(input: CreateProtectConfigurationRequest = CreateProtectConfigurationRequest { }): CreateProtectConfigurationResponse

    /**
     * Creates a new registration based on the **RegistrationType** field.
     */
    public suspend fun createRegistration(input: CreateRegistrationRequest): CreateRegistrationResponse

    /**
     * Associate the registration with an origination identity such as a phone number or sender ID.
     */
    public suspend fun createRegistrationAssociation(input: CreateRegistrationAssociationRequest): CreateRegistrationAssociationResponse

    /**
     * Create a new registration attachment to use for uploading a file or a URL to a file. The maximum file size is 1MiB and valid file extensions are PDF, JPEG and PNG. For example, many sender ID registrations require a signed “letter of authorization” (LOA) to be submitted.
     */
    public suspend fun createRegistrationAttachment(input: CreateRegistrationAttachmentRequest = CreateRegistrationAttachmentRequest { }): CreateRegistrationAttachmentResponse

    /**
     * Create a new version of the registration and increase the **VersionNumber**. The previous version of the registration becomes read-only.
     */
    public suspend fun createRegistrationVersion(input: CreateRegistrationVersionRequest): CreateRegistrationVersionResponse

    /**
     * You can only send messages to verified destination numbers when your account is in the sandbox. You can add up to 10 verified destination numbers.
     */
    public suspend fun createVerifiedDestinationNumber(input: CreateVerifiedDestinationNumberRequest): CreateVerifiedDestinationNumberResponse

    /**
     * Removes the current account default protect configuration.
     */
    public suspend fun deleteAccountDefaultProtectConfiguration(input: DeleteAccountDefaultProtectConfigurationRequest = DeleteAccountDefaultProtectConfigurationRequest { }): DeleteAccountDefaultProtectConfigurationResponse

    /**
     * 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.
     */
    public suspend fun deleteConfigurationSet(input: DeleteConfigurationSetRequest): DeleteConfigurationSetResponse

    /**
     * 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.
     */
    public suspend fun deleteDefaultMessageType(input: DeleteDefaultMessageTypeRequest): DeleteDefaultMessageTypeResponse

    /**
     * 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.
     */
    public suspend fun deleteDefaultSenderId(input: DeleteDefaultSenderIdRequest): DeleteDefaultSenderIdResponse

    /**
     * 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.
     */
    public suspend fun deleteEventDestination(input: DeleteEventDestinationRequest): DeleteEventDestinationResponse

    /**
     * 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, AWS End User Messaging SMS and Voice responds with a customizable message.
     *
     * Keywords "HELP" and "STOP" can't be deleted or modified.
     */
    public suspend fun deleteKeyword(input: DeleteKeywordRequest): DeleteKeywordResponse

    /**
     * Deletes an account-level monthly spending limit override for sending multimedia messages (MMS). 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 [Quotas for Server Migration Service](https://docs.aws.amazon.com/sms-voice/latest/userguide/quotas.html) in the *Server Migration Service User Guide*.
     */
    public suspend fun deleteMediaMessageSpendLimitOverride(input: DeleteMediaMessageSpendLimitOverrideRequest = DeleteMediaMessageSpendLimitOverrideRequest { }): DeleteMediaMessageSpendLimitOverrideResponse

    /**
     * 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.
     */
    public suspend fun deleteOptOutList(input: DeleteOptOutListRequest): DeleteOptOutListResponse

    /**
     * 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.
     */
    public suspend fun deleteOptedOutNumber(input: DeleteOptedOutNumberRequest): DeleteOptedOutNumberResponse

    /**
     * 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.
     */
    public suspend fun deletePool(input: DeletePoolRequest): DeletePoolResponse

    /**
     * Permanently delete the protect configuration. The protect configuration must have deletion protection disabled and must not be associated as the account default protect configuration or associated with a configuration set.
     */
    public suspend fun deleteProtectConfiguration(input: DeleteProtectConfigurationRequest): DeleteProtectConfigurationResponse

    /**
     * Permanently delete an existing registration from your account.
     */
    public suspend fun deleteRegistration(input: DeleteRegistrationRequest): DeleteRegistrationResponse

    /**
     * Permanently delete the specified registration attachment.
     */
    public suspend fun deleteRegistrationAttachment(input: DeleteRegistrationAttachmentRequest): DeleteRegistrationAttachmentResponse

    /**
     * Delete the value in a registration form field.
     */
    public suspend fun deleteRegistrationFieldValue(input: DeleteRegistrationFieldValueRequest): DeleteRegistrationFieldValueResponse

    /**
     * Deletes the resource-based policy document attached to the AWS End User Messaging SMS and Voice resource. A shared resource can be a Pool, Opt-out list, Sender Id, or Phone number.
     */
    public suspend fun deleteResourcePolicy(input: DeleteResourcePolicyRequest): DeleteResourcePolicyResponse

    /**
     * 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 [Quotas ](https://docs.aws.amazon.com/sms-voice/latest/userguide/quotas.html) in the *AWS End User Messaging SMS User Guide*.
     */
    public suspend fun deleteTextMessageSpendLimitOverride(input: DeleteTextMessageSpendLimitOverrideRequest = DeleteTextMessageSpendLimitOverrideRequest { }): DeleteTextMessageSpendLimitOverrideResponse

    /**
     * Delete a verified destination phone number.
     */
    public suspend fun deleteVerifiedDestinationNumber(input: DeleteVerifiedDestinationNumberRequest): DeleteVerifiedDestinationNumberResponse

    /**
     * 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 [Quotas ](https://docs.aws.amazon.com/sms-voice/latest/userguide/quotas.html) in the *AWS End User Messaging SMS User Guide*.
     */
    public suspend fun deleteVoiceMessageSpendLimitOverride(input: DeleteVoiceMessageSpendLimitOverrideRequest = DeleteVoiceMessageSpendLimitOverrideRequest { }): DeleteVoiceMessageSpendLimitOverrideResponse

    /**
     * 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 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.
     */
    public suspend fun describeAccountAttributes(input: DescribeAccountAttributesRequest = DescribeAccountAttributesRequest { }): DescribeAccountAttributesResponse

    /**
     * Describes the current AWS End User Messaging SMS and Voice 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 [Quotas ](https://docs.aws.amazon.com/sms-voice/latest/userguide/quotas.html) in the *AWS End User Messaging SMS User Guide*.
     */
    public suspend fun describeAccountLimits(input: DescribeAccountLimitsRequest = DescribeAccountLimitsRequest { }): DescribeAccountLimitsResponse

    /**
     * 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.
     */
    public suspend fun describeConfigurationSets(input: DescribeConfigurationSetsRequest = DescribeConfigurationSetsRequest { }): DescribeConfigurationSetsResponse

    /**
     * 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, AWS End User Messaging SMS and Voice responds with a customizable message.
     *
     * If you specify a keyword that isn't valid, an error is returned.
     */
    public suspend fun describeKeywords(input: DescribeKeywordsRequest): DescribeKeywordsResponse

    /**
     * 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.
     */
    public suspend fun describeOptOutLists(input: DescribeOptOutListsRequest = DescribeOptOutListsRequest { }): DescribeOptOutListsResponse

    /**
     * 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.
     */
    public suspend fun describeOptedOutNumbers(input: DescribeOptedOutNumbersRequest): DescribeOptedOutNumbersResponse

    /**
     * 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.
     */
    public suspend fun describePhoneNumbers(input: DescribePhoneNumbersRequest = DescribePhoneNumbersRequest { }): DescribePhoneNumbersResponse

    /**
     * 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.
     */
    public suspend fun describePools(input: DescribePoolsRequest = DescribePoolsRequest { }): DescribePoolsResponse

    /**
     * Retrieves the protect configurations that match any of filters. If a filter isn’t provided then all protect configurations are returned.
     */
    public suspend fun describeProtectConfigurations(input: DescribeProtectConfigurationsRequest = DescribeProtectConfigurationsRequest { }): DescribeProtectConfigurationsResponse

    /**
     * Retrieves the specified registration attachments or all registration attachments associated with your Amazon Web Services account.
     */
    public suspend fun describeRegistrationAttachments(input: DescribeRegistrationAttachmentsRequest = DescribeRegistrationAttachmentsRequest { }): DescribeRegistrationAttachmentsResponse

    /**
     * Retrieves the specified registration type field definitions. You can use DescribeRegistrationFieldDefinitions to view the requirements for creating, filling out, and submitting each registration type.
     */
    public suspend fun describeRegistrationFieldDefinitions(input: DescribeRegistrationFieldDefinitionsRequest): DescribeRegistrationFieldDefinitionsResponse

    /**
     * Retrieves the specified registration field values.
     */
    public suspend fun describeRegistrationFieldValues(input: DescribeRegistrationFieldValuesRequest): DescribeRegistrationFieldValuesResponse

    /**
     * Retrieves the specified registration section definitions. You can use DescribeRegistrationSectionDefinitions to view the requirements for creating, filling out, and submitting each registration type.
     */
    public suspend fun describeRegistrationSectionDefinitions(input: DescribeRegistrationSectionDefinitionsRequest): DescribeRegistrationSectionDefinitionsResponse

    /**
     * Retrieves the specified registration type definitions. You can use DescribeRegistrationTypeDefinitions to view the requirements for creating, filling out, and submitting each registration type.
     */
    public suspend fun describeRegistrationTypeDefinitions(input: DescribeRegistrationTypeDefinitionsRequest = DescribeRegistrationTypeDefinitionsRequest { }): DescribeRegistrationTypeDefinitionsResponse

    /**
     * Retrieves the specified registration version.
     */
    public suspend fun describeRegistrationVersions(input: DescribeRegistrationVersionsRequest): DescribeRegistrationVersionsResponse

    /**
     * Retrieves the specified registrations.
     */
    public suspend fun describeRegistrations(input: DescribeRegistrationsRequest = DescribeRegistrationsRequest { }): DescribeRegistrationsResponse

    /**
     * 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.
     */
    public suspend fun describeSenderIds(input: DescribeSenderIdsRequest = DescribeSenderIdsRequest { }): DescribeSenderIdsResponse

    /**
     * Describes the current 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, MMS, or Voice spending quota ](https://docs.aws.amazon.com/sms-voice/latest/userguide/awssupport-spend-threshold.html) in the *AWS End User Messaging SMS User Guide*.
     */
    public suspend fun describeSpendLimits(input: DescribeSpendLimitsRequest = DescribeSpendLimitsRequest { }): DescribeSpendLimitsResponse

    /**
     * Retrieves the specified verified destiona numbers.
     */
    public suspend fun describeVerifiedDestinationNumbers(input: DescribeVerifiedDestinationNumbersRequest = DescribeVerifiedDestinationNumbersRequest { }): DescribeVerifiedDestinationNumbersResponse

    /**
     * Removes the specified origination identity from an existing pool.
     *
     * If the origination identity isn't associated with the specified pool, an error is returned.
     */
    public suspend fun disassociateOriginationIdentity(input: DisassociateOriginationIdentityRequest): DisassociateOriginationIdentityResponse

    /**
     * Disassociate a protect configuration from a configuration set.
     */
    public suspend fun disassociateProtectConfiguration(input: DisassociateProtectConfigurationRequest): DisassociateProtectConfigurationResponse

    /**
     * Discard the current version of the registration.
     */
    public suspend fun discardRegistrationVersion(input: DiscardRegistrationVersionRequest): DiscardRegistrationVersionResponse

    /**
     * Retrieve the CountryRuleSet for the specified NumberCapability from a protect configuration.
     */
    public suspend fun getProtectConfigurationCountryRuleSet(input: GetProtectConfigurationCountryRuleSetRequest): GetProtectConfigurationCountryRuleSetResponse

    /**
     * Retrieves the JSON text of the resource-based policy document attached to the AWS End User Messaging SMS and Voice resource. A shared resource can be a Pool, Opt-out list, Sender Id, or Phone number.
     */
    public suspend fun getResourcePolicy(input: GetResourcePolicyRequest): GetResourcePolicyResponse

    /**
     * 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.
     */
    public suspend fun listPoolOriginationIdentities(input: ListPoolOriginationIdentitiesRequest): ListPoolOriginationIdentitiesResponse

    /**
     * Retreive all of the origination identies that are associated with a registration.
     */
    public suspend fun listRegistrationAssociations(input: ListRegistrationAssociationsRequest): ListRegistrationAssociationsResponse

    /**
     * List all tags associated with a resource.
     */
    public suspend fun listTagsForResource(input: ListTagsForResourceRequest): ListTagsForResourceResponse

    /**
     * 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, AWS End User Messaging SMS and Voice responds with a customizable message.
     *
     * If you specify a keyword that isn't valid, an error is returned.
     */
    public suspend fun putKeyword(input: PutKeywordRequest): PutKeywordResponse

    /**
     * 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.
     */
    public suspend fun putOptedOutNumber(input: PutOptedOutNumberRequest): PutOptedOutNumberResponse

    /**
     * Creates or updates a field value for a registration.
     */
    public suspend fun putRegistrationFieldValue(input: PutRegistrationFieldValueRequest): PutRegistrationFieldValueResponse

    /**
     * Attaches a resource-based policy to a AWS End User Messaging SMS and Voice resource(phone number, sender Id, phone poll, or opt-out list) that is used for sharing the resource. A shared resource can be a Pool, Opt-out list, Sender Id, or Phone number. For more information about resource-based policies, see [Working with shared resources](https://docs.aws.amazon.com/sms-voice/latest/userguide/shared-resources.html) in the *AWS End User Messaging SMS User Guide*.
     */
    public suspend fun putResourcePolicy(input: PutResourcePolicyRequest): PutResourcePolicyResponse

    /**
     * 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.
     */
    public suspend fun releasePhoneNumber(input: ReleasePhoneNumberRequest): ReleasePhoneNumberResponse

    /**
     * Releases an existing sender ID in your account.
     */
    public suspend fun releaseSenderId(input: ReleaseSenderIdRequest): ReleaseSenderIdResponse

    /**
     * Request an origination phone number for use in your account. For more information on phone number request see [Request a phone number](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request.html) in the *AWS End User Messaging SMS User Guide*.
     */
    public suspend fun requestPhoneNumber(input: RequestPhoneNumberRequest): RequestPhoneNumberResponse

    /**
     * Request a new sender ID that doesn't require registration.
     */
    public suspend fun requestSenderId(input: RequestSenderIdRequest): RequestSenderIdResponse

    /**
     * Before you can send test messages to a verified destination phone number you need to opt-in the verified destination phone number. Creates a new text message with a verification code and send it to a verified destination phone number. Once you have the verification code use VerifyDestinationNumber to opt-in the verified destination phone number to receive messages.
     */
    public suspend fun sendDestinationNumberVerificationCode(input: SendDestinationNumberVerificationCodeRequest): SendDestinationNumberVerificationCodeResponse

    /**
     * Creates a new multimedia message (MMS) and sends it to a recipient's phone number.
     */
    public suspend fun sendMediaMessage(input: SendMediaMessageRequest): SendMediaMessageResponse

    /**
     * Creates a new text message and sends it to a recipient's phone number. SendTextMessage only sends an SMS message to one recipient each time it is invoked.
     *
     * 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 about MPS, see [Message Parts per Second (MPS) limits](https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations-mps.html) in the *AWS End User Messaging SMS User Guide*.
     */
    public suspend fun sendTextMessage(input: SendTextMessageRequest): SendTextMessageResponse

    /**
     * Allows you to send a request that sends a voice message. This operation uses [Amazon Polly](http://aws.amazon.com/polly/) to convert a text script into a voice message.
     */
    public suspend fun sendVoiceMessage(input: SendVoiceMessageRequest): SendVoiceMessageResponse

    /**
     * Set a protect configuration as your account default. You can only have one account default protect configuration at a time. The current account default protect configuration is replaced with the provided protect configuration.
     */
    public suspend fun setAccountDefaultProtectConfiguration(input: SetAccountDefaultProtectConfigurationRequest): SetAccountDefaultProtectConfigurationResponse

    /**
     * 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.
     */
    public suspend fun setDefaultMessageType(input: SetDefaultMessageTypeRequest): SetDefaultMessageTypeResponse

    /**
     * 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.
     */
    public suspend fun setDefaultSenderId(input: SetDefaultSenderIdRequest): SetDefaultSenderIdResponse

    /**
     * Sets an account level monthly spend limit override for sending MMS messages. The requested spend limit must be less than or equal to the `MaxLimit`, which is set by Amazon Web Services.
     */
    public suspend fun setMediaMessageSpendLimitOverride(input: SetMediaMessageSpendLimitOverrideRequest): SetMediaMessageSpendLimitOverrideResponse

    /**
     * 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.
     */
    public suspend fun setTextMessageSpendLimitOverride(input: SetTextMessageSpendLimitOverrideRequest): SetTextMessageSpendLimitOverrideResponse

    /**
     * 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.
     */
    public suspend fun setVoiceMessageSpendLimitOverride(input: SetVoiceMessageSpendLimitOverrideRequest): SetVoiceMessageSpendLimitOverrideResponse

    /**
     * Submit the specified registration for review and approval.
     */
    public suspend fun submitRegistrationVersion(input: SubmitRegistrationVersionRequest): SubmitRegistrationVersionResponse

    /**
     * Adds or overwrites only the specified tags for the specified 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 [Tags ](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-tags.html) in the *AWS End User Messaging SMS User Guide*.
     */
    public suspend fun tagResource(input: TagResourceRequest): TagResourceResponse

    /**
     * Removes the association of the specified tags from a resource. For more information on tags see [Tags ](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-tags.html) in the *AWS End User Messaging SMS User Guide*.
     */
    public suspend fun untagResource(input: UntagResourceRequest): UntagResourceResponse

    /**
     * Updates an existing event destination in a configuration set. You can update the IAM role ARN for CloudWatch Logs and 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, Firehose, and Amazon SNS.
     */
    public suspend fun updateEventDestination(input: UpdateEventDestinationRequest): UpdateEventDestinationResponse

    /**
     * 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.
     */
    public suspend fun updatePhoneNumber(input: UpdatePhoneNumberRequest): UpdatePhoneNumberResponse

    /**
     * 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.
     */
    public suspend fun updatePool(input: UpdatePoolRequest): UpdatePoolResponse

    /**
     * Update the setting for an existing protect configuration.
     */
    public suspend fun updateProtectConfiguration(input: UpdateProtectConfigurationRequest): UpdateProtectConfigurationResponse

    /**
     * Update a country rule set to `ALLOW` or `BLOCK` messages to be sent to the specified destination counties. You can update one or multiple countries at a time. The updates are only applied to the specified NumberCapability type.
     */
    public suspend fun updateProtectConfigurationCountryRuleSet(input: UpdateProtectConfigurationCountryRuleSetRequest): UpdateProtectConfigurationCountryRuleSetResponse

    /**
     * Updates the configuration of an existing sender ID.
     */
    public suspend fun updateSenderId(input: UpdateSenderIdRequest): UpdateSenderIdResponse

    /**
     * Use the verification code that was received by the verified destination phone number to opt-in the verified destination phone number to receive more messages.
     */
    public suspend fun verifyDestinationNumber(input: VerifyDestinationNumberRequest): VerifyDestinationNumberResponse
}

/**
 * Create a copy of the client with one or more configuration values overridden.
 * This method allows the caller to perform scoped config overrides for one or more client operations.
 *
 * Any resources created on your behalf will be shared between clients, and will only be closed when ALL clients using them are closed.
 * If you provide a resource (e.g. [HttpClientEngine]) to the SDK, you are responsible for managing the lifetime of that resource.
 */
public fun PinpointSmsVoiceV2Client.withConfig(block: PinpointSmsVoiceV2Client.Config.Builder.() -> Unit): PinpointSmsVoiceV2Client {
    val newConfig = config.toBuilder().apply(block).build()
    return DefaultPinpointSmsVoiceV2Client(newConfig)
}

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.associateOriginationIdentity(crossinline block: AssociateOriginationIdentityRequest.Builder.() -> Unit): AssociateOriginationIdentityResponse = associateOriginationIdentity(AssociateOriginationIdentityRequest.Builder().apply(block).build())

/**
 * Associate a protect configuration with a configuration set. This replaces the configuration sets current protect configuration. A configuration set can only be associated with one protect configuration at a time. A protect configuration can be associated with multiple configuration sets.
 */
public suspend inline fun PinpointSmsVoiceV2Client.associateProtectConfiguration(crossinline block: AssociateProtectConfigurationRequest.Builder.() -> Unit): AssociateProtectConfigurationResponse = associateProtectConfiguration(AssociateProtectConfigurationRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.createConfigurationSet(crossinline block: CreateConfigurationSetRequest.Builder.() -> Unit): CreateConfigurationSetResponse = createConfigurationSet(CreateConfigurationSetRequest.Builder().apply(block).build())

/**
 * 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 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 Firehose destination.
 */
public suspend inline fun PinpointSmsVoiceV2Client.createEventDestination(crossinline block: CreateEventDestinationRequest.Builder.() -> Unit): CreateEventDestinationResponse = createEventDestination(CreateEventDestinationRequest.Builder().apply(block).build())

/**
 * 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 ](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-manage.html#channels-sms-manage-optout) in the *AWS End User Messaging SMS User Guide*.
 */
public suspend inline fun PinpointSmsVoiceV2Client.createOptOutList(crossinline block: CreateOptOutListRequest.Builder.() -> Unit): CreateOptOutListResponse = createOptOutList(CreateOptOutListRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.createPool(crossinline block: CreatePoolRequest.Builder.() -> Unit): CreatePoolResponse = createPool(CreatePoolRequest.Builder().apply(block).build())

/**
 * Create a new protect configuration. By default all country rule sets for each capability are set to `ALLOW`. Update the country rule sets using `UpdateProtectConfigurationCountryRuleSet`. A protect configurations name is stored as a Tag with the key set to `Name` and value as the name of the protect configuration.
 */
public suspend inline fun PinpointSmsVoiceV2Client.createProtectConfiguration(crossinline block: CreateProtectConfigurationRequest.Builder.() -> Unit): CreateProtectConfigurationResponse = createProtectConfiguration(CreateProtectConfigurationRequest.Builder().apply(block).build())

/**
 * Creates a new registration based on the **RegistrationType** field.
 */
public suspend inline fun PinpointSmsVoiceV2Client.createRegistration(crossinline block: CreateRegistrationRequest.Builder.() -> Unit): CreateRegistrationResponse = createRegistration(CreateRegistrationRequest.Builder().apply(block).build())

/**
 * Associate the registration with an origination identity such as a phone number or sender ID.
 */
public suspend inline fun PinpointSmsVoiceV2Client.createRegistrationAssociation(crossinline block: CreateRegistrationAssociationRequest.Builder.() -> Unit): CreateRegistrationAssociationResponse = createRegistrationAssociation(CreateRegistrationAssociationRequest.Builder().apply(block).build())

/**
 * Create a new registration attachment to use for uploading a file or a URL to a file. The maximum file size is 1MiB and valid file extensions are PDF, JPEG and PNG. For example, many sender ID registrations require a signed “letter of authorization” (LOA) to be submitted.
 */
public suspend inline fun PinpointSmsVoiceV2Client.createRegistrationAttachment(crossinline block: CreateRegistrationAttachmentRequest.Builder.() -> Unit): CreateRegistrationAttachmentResponse = createRegistrationAttachment(CreateRegistrationAttachmentRequest.Builder().apply(block).build())

/**
 * Create a new version of the registration and increase the **VersionNumber**. The previous version of the registration becomes read-only.
 */
public suspend inline fun PinpointSmsVoiceV2Client.createRegistrationVersion(crossinline block: CreateRegistrationVersionRequest.Builder.() -> Unit): CreateRegistrationVersionResponse = createRegistrationVersion(CreateRegistrationVersionRequest.Builder().apply(block).build())

/**
 * You can only send messages to verified destination numbers when your account is in the sandbox. You can add up to 10 verified destination numbers.
 */
public suspend inline fun PinpointSmsVoiceV2Client.createVerifiedDestinationNumber(crossinline block: CreateVerifiedDestinationNumberRequest.Builder.() -> Unit): CreateVerifiedDestinationNumberResponse = createVerifiedDestinationNumber(CreateVerifiedDestinationNumberRequest.Builder().apply(block).build())

/**
 * Removes the current account default protect configuration.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteAccountDefaultProtectConfiguration(crossinline block: DeleteAccountDefaultProtectConfigurationRequest.Builder.() -> Unit): DeleteAccountDefaultProtectConfigurationResponse = deleteAccountDefaultProtectConfiguration(DeleteAccountDefaultProtectConfigurationRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteConfigurationSet(crossinline block: DeleteConfigurationSetRequest.Builder.() -> Unit): DeleteConfigurationSetResponse = deleteConfigurationSet(DeleteConfigurationSetRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteDefaultMessageType(crossinline block: DeleteDefaultMessageTypeRequest.Builder.() -> Unit): DeleteDefaultMessageTypeResponse = deleteDefaultMessageType(DeleteDefaultMessageTypeRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteDefaultSenderId(crossinline block: DeleteDefaultSenderIdRequest.Builder.() -> Unit): DeleteDefaultSenderIdResponse = deleteDefaultSenderId(DeleteDefaultSenderIdRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteEventDestination(crossinline block: DeleteEventDestinationRequest.Builder.() -> Unit): DeleteEventDestinationResponse = deleteEventDestination(DeleteEventDestinationRequest.Builder().apply(block).build())

/**
 * 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, AWS End User Messaging SMS and Voice responds with a customizable message.
 *
 * Keywords "HELP" and "STOP" can't be deleted or modified.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteKeyword(crossinline block: DeleteKeywordRequest.Builder.() -> Unit): DeleteKeywordResponse = deleteKeyword(DeleteKeywordRequest.Builder().apply(block).build())

/**
 * Deletes an account-level monthly spending limit override for sending multimedia messages (MMS). 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 [Quotas for Server Migration Service](https://docs.aws.amazon.com/sms-voice/latest/userguide/quotas.html) in the *Server Migration Service User Guide*.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteMediaMessageSpendLimitOverride(crossinline block: DeleteMediaMessageSpendLimitOverrideRequest.Builder.() -> Unit): DeleteMediaMessageSpendLimitOverrideResponse = deleteMediaMessageSpendLimitOverride(DeleteMediaMessageSpendLimitOverrideRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteOptOutList(crossinline block: DeleteOptOutListRequest.Builder.() -> Unit): DeleteOptOutListResponse = deleteOptOutList(DeleteOptOutListRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteOptedOutNumber(crossinline block: DeleteOptedOutNumberRequest.Builder.() -> Unit): DeleteOptedOutNumberResponse = deleteOptedOutNumber(DeleteOptedOutNumberRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deletePool(crossinline block: DeletePoolRequest.Builder.() -> Unit): DeletePoolResponse = deletePool(DeletePoolRequest.Builder().apply(block).build())

/**
 * Permanently delete the protect configuration. The protect configuration must have deletion protection disabled and must not be associated as the account default protect configuration or associated with a configuration set.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteProtectConfiguration(crossinline block: DeleteProtectConfigurationRequest.Builder.() -> Unit): DeleteProtectConfigurationResponse = deleteProtectConfiguration(DeleteProtectConfigurationRequest.Builder().apply(block).build())

/**
 * Permanently delete an existing registration from your account.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteRegistration(crossinline block: DeleteRegistrationRequest.Builder.() -> Unit): DeleteRegistrationResponse = deleteRegistration(DeleteRegistrationRequest.Builder().apply(block).build())

/**
 * Permanently delete the specified registration attachment.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteRegistrationAttachment(crossinline block: DeleteRegistrationAttachmentRequest.Builder.() -> Unit): DeleteRegistrationAttachmentResponse = deleteRegistrationAttachment(DeleteRegistrationAttachmentRequest.Builder().apply(block).build())

/**
 * Delete the value in a registration form field.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteRegistrationFieldValue(crossinline block: DeleteRegistrationFieldValueRequest.Builder.() -> Unit): DeleteRegistrationFieldValueResponse = deleteRegistrationFieldValue(DeleteRegistrationFieldValueRequest.Builder().apply(block).build())

/**
 * Deletes the resource-based policy document attached to the AWS End User Messaging SMS and Voice resource. A shared resource can be a Pool, Opt-out list, Sender Id, or Phone number.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteResourcePolicy(crossinline block: DeleteResourcePolicyRequest.Builder.() -> Unit): DeleteResourcePolicyResponse = deleteResourcePolicy(DeleteResourcePolicyRequest.Builder().apply(block).build())

/**
 * 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 [Quotas ](https://docs.aws.amazon.com/sms-voice/latest/userguide/quotas.html) in the *AWS End User Messaging SMS User Guide*.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteTextMessageSpendLimitOverride(crossinline block: DeleteTextMessageSpendLimitOverrideRequest.Builder.() -> Unit): DeleteTextMessageSpendLimitOverrideResponse = deleteTextMessageSpendLimitOverride(DeleteTextMessageSpendLimitOverrideRequest.Builder().apply(block).build())

/**
 * Delete a verified destination phone number.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteVerifiedDestinationNumber(crossinline block: DeleteVerifiedDestinationNumberRequest.Builder.() -> Unit): DeleteVerifiedDestinationNumberResponse = deleteVerifiedDestinationNumber(DeleteVerifiedDestinationNumberRequest.Builder().apply(block).build())

/**
 * 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 [Quotas ](https://docs.aws.amazon.com/sms-voice/latest/userguide/quotas.html) in the *AWS End User Messaging SMS User Guide*.
 */
public suspend inline fun PinpointSmsVoiceV2Client.deleteVoiceMessageSpendLimitOverride(crossinline block: DeleteVoiceMessageSpendLimitOverrideRequest.Builder.() -> Unit): DeleteVoiceMessageSpendLimitOverrideResponse = deleteVoiceMessageSpendLimitOverride(DeleteVoiceMessageSpendLimitOverrideRequest.Builder().apply(block).build())

/**
 * 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 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeAccountAttributes(crossinline block: DescribeAccountAttributesRequest.Builder.() -> Unit): DescribeAccountAttributesResponse = describeAccountAttributes(DescribeAccountAttributesRequest.Builder().apply(block).build())

/**
 * Describes the current AWS End User Messaging SMS and Voice 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 [Quotas ](https://docs.aws.amazon.com/sms-voice/latest/userguide/quotas.html) in the *AWS End User Messaging SMS User Guide*.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeAccountLimits(crossinline block: DescribeAccountLimitsRequest.Builder.() -> Unit): DescribeAccountLimitsResponse = describeAccountLimits(DescribeAccountLimitsRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeConfigurationSets(crossinline block: DescribeConfigurationSetsRequest.Builder.() -> Unit): DescribeConfigurationSetsResponse = describeConfigurationSets(DescribeConfigurationSetsRequest.Builder().apply(block).build())

/**
 * 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, AWS End User Messaging SMS and Voice responds with a customizable message.
 *
 * If you specify a keyword that isn't valid, an error is returned.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeKeywords(crossinline block: DescribeKeywordsRequest.Builder.() -> Unit): DescribeKeywordsResponse = describeKeywords(DescribeKeywordsRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeOptOutLists(crossinline block: DescribeOptOutListsRequest.Builder.() -> Unit): DescribeOptOutListsResponse = describeOptOutLists(DescribeOptOutListsRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeOptedOutNumbers(crossinline block: DescribeOptedOutNumbersRequest.Builder.() -> Unit): DescribeOptedOutNumbersResponse = describeOptedOutNumbers(DescribeOptedOutNumbersRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describePhoneNumbers(crossinline block: DescribePhoneNumbersRequest.Builder.() -> Unit): DescribePhoneNumbersResponse = describePhoneNumbers(DescribePhoneNumbersRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describePools(crossinline block: DescribePoolsRequest.Builder.() -> Unit): DescribePoolsResponse = describePools(DescribePoolsRequest.Builder().apply(block).build())

/**
 * Retrieves the protect configurations that match any of filters. If a filter isn’t provided then all protect configurations are returned.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeProtectConfigurations(crossinline block: DescribeProtectConfigurationsRequest.Builder.() -> Unit): DescribeProtectConfigurationsResponse = describeProtectConfigurations(DescribeProtectConfigurationsRequest.Builder().apply(block).build())

/**
 * Retrieves the specified registration attachments or all registration attachments associated with your Amazon Web Services account.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeRegistrationAttachments(crossinline block: DescribeRegistrationAttachmentsRequest.Builder.() -> Unit): DescribeRegistrationAttachmentsResponse = describeRegistrationAttachments(DescribeRegistrationAttachmentsRequest.Builder().apply(block).build())

/**
 * Retrieves the specified registration type field definitions. You can use DescribeRegistrationFieldDefinitions to view the requirements for creating, filling out, and submitting each registration type.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeRegistrationFieldDefinitions(crossinline block: DescribeRegistrationFieldDefinitionsRequest.Builder.() -> Unit): DescribeRegistrationFieldDefinitionsResponse = describeRegistrationFieldDefinitions(DescribeRegistrationFieldDefinitionsRequest.Builder().apply(block).build())

/**
 * Retrieves the specified registration field values.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeRegistrationFieldValues(crossinline block: DescribeRegistrationFieldValuesRequest.Builder.() -> Unit): DescribeRegistrationFieldValuesResponse = describeRegistrationFieldValues(DescribeRegistrationFieldValuesRequest.Builder().apply(block).build())

/**
 * Retrieves the specified registration section definitions. You can use DescribeRegistrationSectionDefinitions to view the requirements for creating, filling out, and submitting each registration type.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeRegistrationSectionDefinitions(crossinline block: DescribeRegistrationSectionDefinitionsRequest.Builder.() -> Unit): DescribeRegistrationSectionDefinitionsResponse = describeRegistrationSectionDefinitions(DescribeRegistrationSectionDefinitionsRequest.Builder().apply(block).build())

/**
 * Retrieves the specified registration type definitions. You can use DescribeRegistrationTypeDefinitions to view the requirements for creating, filling out, and submitting each registration type.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeRegistrationTypeDefinitions(crossinline block: DescribeRegistrationTypeDefinitionsRequest.Builder.() -> Unit): DescribeRegistrationTypeDefinitionsResponse = describeRegistrationTypeDefinitions(DescribeRegistrationTypeDefinitionsRequest.Builder().apply(block).build())

/**
 * Retrieves the specified registration version.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeRegistrationVersions(crossinline block: DescribeRegistrationVersionsRequest.Builder.() -> Unit): DescribeRegistrationVersionsResponse = describeRegistrationVersions(DescribeRegistrationVersionsRequest.Builder().apply(block).build())

/**
 * Retrieves the specified registrations.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeRegistrations(crossinline block: DescribeRegistrationsRequest.Builder.() -> Unit): DescribeRegistrationsResponse = describeRegistrations(DescribeRegistrationsRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeSenderIds(crossinline block: DescribeSenderIdsRequest.Builder.() -> Unit): DescribeSenderIdsResponse = describeSenderIds(DescribeSenderIdsRequest.Builder().apply(block).build())

/**
 * Describes the current 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, MMS, or Voice spending quota ](https://docs.aws.amazon.com/sms-voice/latest/userguide/awssupport-spend-threshold.html) in the *AWS End User Messaging SMS User Guide*.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeSpendLimits(crossinline block: DescribeSpendLimitsRequest.Builder.() -> Unit): DescribeSpendLimitsResponse = describeSpendLimits(DescribeSpendLimitsRequest.Builder().apply(block).build())

/**
 * Retrieves the specified verified destiona numbers.
 */
public suspend inline fun PinpointSmsVoiceV2Client.describeVerifiedDestinationNumbers(crossinline block: DescribeVerifiedDestinationNumbersRequest.Builder.() -> Unit): DescribeVerifiedDestinationNumbersResponse = describeVerifiedDestinationNumbers(DescribeVerifiedDestinationNumbersRequest.Builder().apply(block).build())

/**
 * Removes the specified origination identity from an existing pool.
 *
 * If the origination identity isn't associated with the specified pool, an error is returned.
 */
public suspend inline fun PinpointSmsVoiceV2Client.disassociateOriginationIdentity(crossinline block: DisassociateOriginationIdentityRequest.Builder.() -> Unit): DisassociateOriginationIdentityResponse = disassociateOriginationIdentity(DisassociateOriginationIdentityRequest.Builder().apply(block).build())

/**
 * Disassociate a protect configuration from a configuration set.
 */
public suspend inline fun PinpointSmsVoiceV2Client.disassociateProtectConfiguration(crossinline block: DisassociateProtectConfigurationRequest.Builder.() -> Unit): DisassociateProtectConfigurationResponse = disassociateProtectConfiguration(DisassociateProtectConfigurationRequest.Builder().apply(block).build())

/**
 * Discard the current version of the registration.
 */
public suspend inline fun PinpointSmsVoiceV2Client.discardRegistrationVersion(crossinline block: DiscardRegistrationVersionRequest.Builder.() -> Unit): DiscardRegistrationVersionResponse = discardRegistrationVersion(DiscardRegistrationVersionRequest.Builder().apply(block).build())

/**
 * Retrieve the CountryRuleSet for the specified NumberCapability from a protect configuration.
 */
public suspend inline fun PinpointSmsVoiceV2Client.getProtectConfigurationCountryRuleSet(crossinline block: GetProtectConfigurationCountryRuleSetRequest.Builder.() -> Unit): GetProtectConfigurationCountryRuleSetResponse = getProtectConfigurationCountryRuleSet(GetProtectConfigurationCountryRuleSetRequest.Builder().apply(block).build())

/**
 * Retrieves the JSON text of the resource-based policy document attached to the AWS End User Messaging SMS and Voice resource. A shared resource can be a Pool, Opt-out list, Sender Id, or Phone number.
 */
public suspend inline fun PinpointSmsVoiceV2Client.getResourcePolicy(crossinline block: GetResourcePolicyRequest.Builder.() -> Unit): GetResourcePolicyResponse = getResourcePolicy(GetResourcePolicyRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.listPoolOriginationIdentities(crossinline block: ListPoolOriginationIdentitiesRequest.Builder.() -> Unit): ListPoolOriginationIdentitiesResponse = listPoolOriginationIdentities(ListPoolOriginationIdentitiesRequest.Builder().apply(block).build())

/**
 * Retreive all of the origination identies that are associated with a registration.
 */
public suspend inline fun PinpointSmsVoiceV2Client.listRegistrationAssociations(crossinline block: ListRegistrationAssociationsRequest.Builder.() -> Unit): ListRegistrationAssociationsResponse = listRegistrationAssociations(ListRegistrationAssociationsRequest.Builder().apply(block).build())

/**
 * List all tags associated with a resource.
 */
public suspend inline fun PinpointSmsVoiceV2Client.listTagsForResource(crossinline block: ListTagsForResourceRequest.Builder.() -> Unit): ListTagsForResourceResponse = listTagsForResource(ListTagsForResourceRequest.Builder().apply(block).build())

/**
 * 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, AWS End User Messaging SMS and Voice responds with a customizable message.
 *
 * If you specify a keyword that isn't valid, an error is returned.
 */
public suspend inline fun PinpointSmsVoiceV2Client.putKeyword(crossinline block: PutKeywordRequest.Builder.() -> Unit): PutKeywordResponse = putKeyword(PutKeywordRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.putOptedOutNumber(crossinline block: PutOptedOutNumberRequest.Builder.() -> Unit): PutOptedOutNumberResponse = putOptedOutNumber(PutOptedOutNumberRequest.Builder().apply(block).build())

/**
 * Creates or updates a field value for a registration.
 */
public suspend inline fun PinpointSmsVoiceV2Client.putRegistrationFieldValue(crossinline block: PutRegistrationFieldValueRequest.Builder.() -> Unit): PutRegistrationFieldValueResponse = putRegistrationFieldValue(PutRegistrationFieldValueRequest.Builder().apply(block).build())

/**
 * Attaches a resource-based policy to a AWS End User Messaging SMS and Voice resource(phone number, sender Id, phone poll, or opt-out list) that is used for sharing the resource. A shared resource can be a Pool, Opt-out list, Sender Id, or Phone number. For more information about resource-based policies, see [Working with shared resources](https://docs.aws.amazon.com/sms-voice/latest/userguide/shared-resources.html) in the *AWS End User Messaging SMS User Guide*.
 */
public suspend inline fun PinpointSmsVoiceV2Client.putResourcePolicy(crossinline block: PutResourcePolicyRequest.Builder.() -> Unit): PutResourcePolicyResponse = putResourcePolicy(PutResourcePolicyRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.releasePhoneNumber(crossinline block: ReleasePhoneNumberRequest.Builder.() -> Unit): ReleasePhoneNumberResponse = releasePhoneNumber(ReleasePhoneNumberRequest.Builder().apply(block).build())

/**
 * Releases an existing sender ID in your account.
 */
public suspend inline fun PinpointSmsVoiceV2Client.releaseSenderId(crossinline block: ReleaseSenderIdRequest.Builder.() -> Unit): ReleaseSenderIdResponse = releaseSenderId(ReleaseSenderIdRequest.Builder().apply(block).build())

/**
 * Request an origination phone number for use in your account. For more information on phone number request see [Request a phone number](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request.html) in the *AWS End User Messaging SMS User Guide*.
 */
public suspend inline fun PinpointSmsVoiceV2Client.requestPhoneNumber(crossinline block: RequestPhoneNumberRequest.Builder.() -> Unit): RequestPhoneNumberResponse = requestPhoneNumber(RequestPhoneNumberRequest.Builder().apply(block).build())

/**
 * Request a new sender ID that doesn't require registration.
 */
public suspend inline fun PinpointSmsVoiceV2Client.requestSenderId(crossinline block: RequestSenderIdRequest.Builder.() -> Unit): RequestSenderIdResponse = requestSenderId(RequestSenderIdRequest.Builder().apply(block).build())

/**
 * Before you can send test messages to a verified destination phone number you need to opt-in the verified destination phone number. Creates a new text message with a verification code and send it to a verified destination phone number. Once you have the verification code use VerifyDestinationNumber to opt-in the verified destination phone number to receive messages.
 */
public suspend inline fun PinpointSmsVoiceV2Client.sendDestinationNumberVerificationCode(crossinline block: SendDestinationNumberVerificationCodeRequest.Builder.() -> Unit): SendDestinationNumberVerificationCodeResponse = sendDestinationNumberVerificationCode(SendDestinationNumberVerificationCodeRequest.Builder().apply(block).build())

/**
 * Creates a new multimedia message (MMS) and sends it to a recipient's phone number.
 */
public suspend inline fun PinpointSmsVoiceV2Client.sendMediaMessage(crossinline block: SendMediaMessageRequest.Builder.() -> Unit): SendMediaMessageResponse = sendMediaMessage(SendMediaMessageRequest.Builder().apply(block).build())

/**
 * Creates a new text message and sends it to a recipient's phone number. SendTextMessage only sends an SMS message to one recipient each time it is invoked.
 *
 * 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 about MPS, see [Message Parts per Second (MPS) limits](https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations-mps.html) in the *AWS End User Messaging SMS User Guide*.
 */
public suspend inline fun PinpointSmsVoiceV2Client.sendTextMessage(crossinline block: SendTextMessageRequest.Builder.() -> Unit): SendTextMessageResponse = sendTextMessage(SendTextMessageRequest.Builder().apply(block).build())

/**
 * Allows you to send a request that sends a voice message. This operation uses [Amazon Polly](http://aws.amazon.com/polly/) to convert a text script into a voice message.
 */
public suspend inline fun PinpointSmsVoiceV2Client.sendVoiceMessage(crossinline block: SendVoiceMessageRequest.Builder.() -> Unit): SendVoiceMessageResponse = sendVoiceMessage(SendVoiceMessageRequest.Builder().apply(block).build())

/**
 * Set a protect configuration as your account default. You can only have one account default protect configuration at a time. The current account default protect configuration is replaced with the provided protect configuration.
 */
public suspend inline fun PinpointSmsVoiceV2Client.setAccountDefaultProtectConfiguration(crossinline block: SetAccountDefaultProtectConfigurationRequest.Builder.() -> Unit): SetAccountDefaultProtectConfigurationResponse = setAccountDefaultProtectConfiguration(SetAccountDefaultProtectConfigurationRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.setDefaultMessageType(crossinline block: SetDefaultMessageTypeRequest.Builder.() -> Unit): SetDefaultMessageTypeResponse = setDefaultMessageType(SetDefaultMessageTypeRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.setDefaultSenderId(crossinline block: SetDefaultSenderIdRequest.Builder.() -> Unit): SetDefaultSenderIdResponse = setDefaultSenderId(SetDefaultSenderIdRequest.Builder().apply(block).build())

/**
 * Sets an account level monthly spend limit override for sending MMS messages. The requested spend limit must be less than or equal to the `MaxLimit`, which is set by Amazon Web Services.
 */
public suspend inline fun PinpointSmsVoiceV2Client.setMediaMessageSpendLimitOverride(crossinline block: SetMediaMessageSpendLimitOverrideRequest.Builder.() -> Unit): SetMediaMessageSpendLimitOverrideResponse = setMediaMessageSpendLimitOverride(SetMediaMessageSpendLimitOverrideRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.setTextMessageSpendLimitOverride(crossinline block: SetTextMessageSpendLimitOverrideRequest.Builder.() -> Unit): SetTextMessageSpendLimitOverrideResponse = setTextMessageSpendLimitOverride(SetTextMessageSpendLimitOverrideRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.setVoiceMessageSpendLimitOverride(crossinline block: SetVoiceMessageSpendLimitOverrideRequest.Builder.() -> Unit): SetVoiceMessageSpendLimitOverrideResponse = setVoiceMessageSpendLimitOverride(SetVoiceMessageSpendLimitOverrideRequest.Builder().apply(block).build())

/**
 * Submit the specified registration for review and approval.
 */
public suspend inline fun PinpointSmsVoiceV2Client.submitRegistrationVersion(crossinline block: SubmitRegistrationVersionRequest.Builder.() -> Unit): SubmitRegistrationVersionResponse = submitRegistrationVersion(SubmitRegistrationVersionRequest.Builder().apply(block).build())

/**
 * Adds or overwrites only the specified tags for the specified 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 [Tags ](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-tags.html) in the *AWS End User Messaging SMS User Guide*.
 */
public suspend inline fun PinpointSmsVoiceV2Client.tagResource(crossinline block: TagResourceRequest.Builder.() -> Unit): TagResourceResponse = tagResource(TagResourceRequest.Builder().apply(block).build())

/**
 * Removes the association of the specified tags from a resource. For more information on tags see [Tags ](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-tags.html) in the *AWS End User Messaging SMS User Guide*.
 */
public suspend inline fun PinpointSmsVoiceV2Client.untagResource(crossinline block: UntagResourceRequest.Builder.() -> Unit): UntagResourceResponse = untagResource(UntagResourceRequest.Builder().apply(block).build())

/**
 * Updates an existing event destination in a configuration set. You can update the IAM role ARN for CloudWatch Logs and 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, Firehose, and Amazon SNS.
 */
public suspend inline fun PinpointSmsVoiceV2Client.updateEventDestination(crossinline block: UpdateEventDestinationRequest.Builder.() -> Unit): UpdateEventDestinationResponse = updateEventDestination(UpdateEventDestinationRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.updatePhoneNumber(crossinline block: UpdatePhoneNumberRequest.Builder.() -> Unit): UpdatePhoneNumberResponse = updatePhoneNumber(UpdatePhoneNumberRequest.Builder().apply(block).build())

/**
 * 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.
 */
public suspend inline fun PinpointSmsVoiceV2Client.updatePool(crossinline block: UpdatePoolRequest.Builder.() -> Unit): UpdatePoolResponse = updatePool(UpdatePoolRequest.Builder().apply(block).build())

/**
 * Update the setting for an existing protect configuration.
 */
public suspend inline fun PinpointSmsVoiceV2Client.updateProtectConfiguration(crossinline block: UpdateProtectConfigurationRequest.Builder.() -> Unit): UpdateProtectConfigurationResponse = updateProtectConfiguration(UpdateProtectConfigurationRequest.Builder().apply(block).build())

/**
 * Update a country rule set to `ALLOW` or `BLOCK` messages to be sent to the specified destination counties. You can update one or multiple countries at a time. The updates are only applied to the specified NumberCapability type.
 */
public suspend inline fun PinpointSmsVoiceV2Client.updateProtectConfigurationCountryRuleSet(crossinline block: UpdateProtectConfigurationCountryRuleSetRequest.Builder.() -> Unit): UpdateProtectConfigurationCountryRuleSetResponse = updateProtectConfigurationCountryRuleSet(UpdateProtectConfigurationCountryRuleSetRequest.Builder().apply(block).build())

/**
 * Updates the configuration of an existing sender ID.
 */
public suspend inline fun PinpointSmsVoiceV2Client.updateSenderId(crossinline block: UpdateSenderIdRequest.Builder.() -> Unit): UpdateSenderIdResponse = updateSenderId(UpdateSenderIdRequest.Builder().apply(block).build())

/**
 * Use the verification code that was received by the verified destination phone number to opt-in the verified destination phone number to receive more messages.
 */
public suspend inline fun PinpointSmsVoiceV2Client.verifyDestinationNumber(crossinline block: VerifyDestinationNumberRequest.Builder.() -> Unit): VerifyDestinationNumberResponse = verifyDestinationNumber(VerifyDestinationNumberRequest.Builder().apply(block).build())




© 2015 - 2024 Weber Informatics LLC | Privacy Policy