404 Not Found


nginx
beegazpacho.com - GrazzMean
Uname: Linux in-mum-web1557.main-hosting.eu 5.14.0-611.42.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 24 05:30:20 EDT 2026 x86_64
Software: LiteSpeed
PHP version: 8.2.30 [ PHP INFO ] PHP os: Linux
Server Ip: 93.127.173.175
Your Ip: 216.73.216.168
User: u848900432 (848900432) | Group: o51372345 (1051372345)
Safe Mode: OFF
Disable Function:
NONE

name : api.go
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.

package chime

import (
	"fmt"
	"time"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/awsutil"
	"github.com/aws/aws-sdk-go/aws/request"
	"github.com/aws/aws-sdk-go/private/protocol"
	"github.com/aws/aws-sdk-go/private/protocol/restjson"
)

const opAssociatePhoneNumberWithUser = "AssociatePhoneNumberWithUser"

// AssociatePhoneNumberWithUserRequest generates a "aws/request.Request" representing the
// client's request for the AssociatePhoneNumberWithUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See AssociatePhoneNumberWithUser for more information on using the AssociatePhoneNumberWithUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the AssociatePhoneNumberWithUserRequest method.
//	req, resp := client.AssociatePhoneNumberWithUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/AssociatePhoneNumberWithUser
func (c *Chime) AssociatePhoneNumberWithUserRequest(input *AssociatePhoneNumberWithUserInput) (req *request.Request, output *AssociatePhoneNumberWithUserOutput) {
	op := &request.Operation{
		Name:       opAssociatePhoneNumberWithUser,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/users/{userId}?operation=associate-phone-number",
	}

	if input == nil {
		input = &AssociatePhoneNumberWithUserInput{}
	}

	output = &AssociatePhoneNumberWithUserOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// AssociatePhoneNumberWithUser API operation for Amazon Chime.
//
// Associates a phone number with the specified Amazon Chime user.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation AssociatePhoneNumberWithUser for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/AssociatePhoneNumberWithUser
func (c *Chime) AssociatePhoneNumberWithUser(input *AssociatePhoneNumberWithUserInput) (*AssociatePhoneNumberWithUserOutput, error) {
	req, out := c.AssociatePhoneNumberWithUserRequest(input)
	return out, req.Send()
}

// AssociatePhoneNumberWithUserWithContext is the same as AssociatePhoneNumberWithUser with the addition of
// the ability to pass a context and additional request options.
//
// See AssociatePhoneNumberWithUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) AssociatePhoneNumberWithUserWithContext(ctx aws.Context, input *AssociatePhoneNumberWithUserInput, opts ...request.Option) (*AssociatePhoneNumberWithUserOutput, error) {
	req, out := c.AssociatePhoneNumberWithUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opAssociatePhoneNumbersWithVoiceConnector = "AssociatePhoneNumbersWithVoiceConnector"

// AssociatePhoneNumbersWithVoiceConnectorRequest generates a "aws/request.Request" representing the
// client's request for the AssociatePhoneNumbersWithVoiceConnector operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See AssociatePhoneNumbersWithVoiceConnector for more information on using the AssociatePhoneNumbersWithVoiceConnector
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the AssociatePhoneNumbersWithVoiceConnectorRequest method.
//	req, resp := client.AssociatePhoneNumbersWithVoiceConnectorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/AssociatePhoneNumbersWithVoiceConnector
//
// Deprecated: Replaced by AssociatePhoneNumbersWithVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) AssociatePhoneNumbersWithVoiceConnectorRequest(input *AssociatePhoneNumbersWithVoiceConnectorInput) (req *request.Request, output *AssociatePhoneNumbersWithVoiceConnectorOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, AssociatePhoneNumbersWithVoiceConnector, has been deprecated")
	}
	op := &request.Operation{
		Name:       opAssociatePhoneNumbersWithVoiceConnector,
		HTTPMethod: "POST",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}?operation=associate-phone-numbers",
	}

	if input == nil {
		input = &AssociatePhoneNumbersWithVoiceConnectorInput{}
	}

	output = &AssociatePhoneNumbersWithVoiceConnectorOutput{}
	req = c.newRequest(op, input, output)
	return
}

// AssociatePhoneNumbersWithVoiceConnector API operation for Amazon Chime.
//
// Associates phone numbers with the specified Amazon Chime Voice Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, AssociatePhoneNumbersWithVoiceConnector (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_AssociatePhoneNumbersWithVoiceConnector.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation AssociatePhoneNumbersWithVoiceConnector for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/AssociatePhoneNumbersWithVoiceConnector
//
// Deprecated: Replaced by AssociatePhoneNumbersWithVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) AssociatePhoneNumbersWithVoiceConnector(input *AssociatePhoneNumbersWithVoiceConnectorInput) (*AssociatePhoneNumbersWithVoiceConnectorOutput, error) {
	req, out := c.AssociatePhoneNumbersWithVoiceConnectorRequest(input)
	return out, req.Send()
}

// AssociatePhoneNumbersWithVoiceConnectorWithContext is the same as AssociatePhoneNumbersWithVoiceConnector with the addition of
// the ability to pass a context and additional request options.
//
// See AssociatePhoneNumbersWithVoiceConnector for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by AssociatePhoneNumbersWithVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) AssociatePhoneNumbersWithVoiceConnectorWithContext(ctx aws.Context, input *AssociatePhoneNumbersWithVoiceConnectorInput, opts ...request.Option) (*AssociatePhoneNumbersWithVoiceConnectorOutput, error) {
	req, out := c.AssociatePhoneNumbersWithVoiceConnectorRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opAssociatePhoneNumbersWithVoiceConnectorGroup = "AssociatePhoneNumbersWithVoiceConnectorGroup"

// AssociatePhoneNumbersWithVoiceConnectorGroupRequest generates a "aws/request.Request" representing the
// client's request for the AssociatePhoneNumbersWithVoiceConnectorGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See AssociatePhoneNumbersWithVoiceConnectorGroup for more information on using the AssociatePhoneNumbersWithVoiceConnectorGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the AssociatePhoneNumbersWithVoiceConnectorGroupRequest method.
//	req, resp := client.AssociatePhoneNumbersWithVoiceConnectorGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/AssociatePhoneNumbersWithVoiceConnectorGroup
//
// Deprecated: Replaced by AssociatePhoneNumbersWithVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) AssociatePhoneNumbersWithVoiceConnectorGroupRequest(input *AssociatePhoneNumbersWithVoiceConnectorGroupInput) (req *request.Request, output *AssociatePhoneNumbersWithVoiceConnectorGroupOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, AssociatePhoneNumbersWithVoiceConnectorGroup, has been deprecated")
	}
	op := &request.Operation{
		Name:       opAssociatePhoneNumbersWithVoiceConnectorGroup,
		HTTPMethod: "POST",
		HTTPPath:   "/voice-connector-groups/{voiceConnectorGroupId}?operation=associate-phone-numbers",
	}

	if input == nil {
		input = &AssociatePhoneNumbersWithVoiceConnectorGroupInput{}
	}

	output = &AssociatePhoneNumbersWithVoiceConnectorGroupOutput{}
	req = c.newRequest(op, input, output)
	return
}

// AssociatePhoneNumbersWithVoiceConnectorGroup API operation for Amazon Chime.
//
// Associates phone numbers with the specified Amazon Chime Voice Connector
// group.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, AssociatePhoneNumbersWithVoiceConnectorGroup (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_AssociatePhoneNumbersWithVoiceConnectorGroup.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation AssociatePhoneNumbersWithVoiceConnectorGroup for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/AssociatePhoneNumbersWithVoiceConnectorGroup
//
// Deprecated: Replaced by AssociatePhoneNumbersWithVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) AssociatePhoneNumbersWithVoiceConnectorGroup(input *AssociatePhoneNumbersWithVoiceConnectorGroupInput) (*AssociatePhoneNumbersWithVoiceConnectorGroupOutput, error) {
	req, out := c.AssociatePhoneNumbersWithVoiceConnectorGroupRequest(input)
	return out, req.Send()
}

// AssociatePhoneNumbersWithVoiceConnectorGroupWithContext is the same as AssociatePhoneNumbersWithVoiceConnectorGroup with the addition of
// the ability to pass a context and additional request options.
//
// See AssociatePhoneNumbersWithVoiceConnectorGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by AssociatePhoneNumbersWithVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) AssociatePhoneNumbersWithVoiceConnectorGroupWithContext(ctx aws.Context, input *AssociatePhoneNumbersWithVoiceConnectorGroupInput, opts ...request.Option) (*AssociatePhoneNumbersWithVoiceConnectorGroupOutput, error) {
	req, out := c.AssociatePhoneNumbersWithVoiceConnectorGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opAssociateSigninDelegateGroupsWithAccount = "AssociateSigninDelegateGroupsWithAccount"

// AssociateSigninDelegateGroupsWithAccountRequest generates a "aws/request.Request" representing the
// client's request for the AssociateSigninDelegateGroupsWithAccount operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See AssociateSigninDelegateGroupsWithAccount for more information on using the AssociateSigninDelegateGroupsWithAccount
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the AssociateSigninDelegateGroupsWithAccountRequest method.
//	req, resp := client.AssociateSigninDelegateGroupsWithAccountRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/AssociateSigninDelegateGroupsWithAccount
func (c *Chime) AssociateSigninDelegateGroupsWithAccountRequest(input *AssociateSigninDelegateGroupsWithAccountInput) (req *request.Request, output *AssociateSigninDelegateGroupsWithAccountOutput) {
	op := &request.Operation{
		Name:       opAssociateSigninDelegateGroupsWithAccount,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}?operation=associate-signin-delegate-groups",
	}

	if input == nil {
		input = &AssociateSigninDelegateGroupsWithAccountInput{}
	}

	output = &AssociateSigninDelegateGroupsWithAccountOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// AssociateSigninDelegateGroupsWithAccount API operation for Amazon Chime.
//
// Associates the specified sign-in delegate groups with the specified Amazon
// Chime account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation AssociateSigninDelegateGroupsWithAccount for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/AssociateSigninDelegateGroupsWithAccount
func (c *Chime) AssociateSigninDelegateGroupsWithAccount(input *AssociateSigninDelegateGroupsWithAccountInput) (*AssociateSigninDelegateGroupsWithAccountOutput, error) {
	req, out := c.AssociateSigninDelegateGroupsWithAccountRequest(input)
	return out, req.Send()
}

// AssociateSigninDelegateGroupsWithAccountWithContext is the same as AssociateSigninDelegateGroupsWithAccount with the addition of
// the ability to pass a context and additional request options.
//
// See AssociateSigninDelegateGroupsWithAccount for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) AssociateSigninDelegateGroupsWithAccountWithContext(ctx aws.Context, input *AssociateSigninDelegateGroupsWithAccountInput, opts ...request.Option) (*AssociateSigninDelegateGroupsWithAccountOutput, error) {
	req, out := c.AssociateSigninDelegateGroupsWithAccountRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opBatchCreateAttendee = "BatchCreateAttendee"

// BatchCreateAttendeeRequest generates a "aws/request.Request" representing the
// client's request for the BatchCreateAttendee operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See BatchCreateAttendee for more information on using the BatchCreateAttendee
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the BatchCreateAttendeeRequest method.
//	req, resp := client.BatchCreateAttendeeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchCreateAttendee
//
// Deprecated: Replaced by BatchCreateAttendee in the Amazon Chime SDK Meetings Namespace
func (c *Chime) BatchCreateAttendeeRequest(input *BatchCreateAttendeeInput) (req *request.Request, output *BatchCreateAttendeeOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, BatchCreateAttendee, has been deprecated")
	}
	op := &request.Operation{
		Name:       opBatchCreateAttendee,
		HTTPMethod: "POST",
		HTTPPath:   "/meetings/{meetingId}/attendees?operation=batch-create",
	}

	if input == nil {
		input = &BatchCreateAttendeeInput{}
	}

	output = &BatchCreateAttendeeOutput{}
	req = c.newRequest(op, input, output)
	return
}

// BatchCreateAttendee API operation for Amazon Chime.
//
// Creates up to 100 new attendees for an active Amazon Chime SDK meeting.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, BatchCreateAttendee (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_BatchCreateAttendee.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// For more information about the Amazon Chime SDK, see Using the Amazon Chime
// SDK (https://docs.aws.amazon.com/chime-sdk/latest/dg/meetings-sdk.html) in
// the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation BatchCreateAttendee for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchCreateAttendee
//
// Deprecated: Replaced by BatchCreateAttendee in the Amazon Chime SDK Meetings Namespace
func (c *Chime) BatchCreateAttendee(input *BatchCreateAttendeeInput) (*BatchCreateAttendeeOutput, error) {
	req, out := c.BatchCreateAttendeeRequest(input)
	return out, req.Send()
}

// BatchCreateAttendeeWithContext is the same as BatchCreateAttendee with the addition of
// the ability to pass a context and additional request options.
//
// See BatchCreateAttendee for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by BatchCreateAttendee in the Amazon Chime SDK Meetings Namespace
func (c *Chime) BatchCreateAttendeeWithContext(ctx aws.Context, input *BatchCreateAttendeeInput, opts ...request.Option) (*BatchCreateAttendeeOutput, error) {
	req, out := c.BatchCreateAttendeeRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opBatchCreateChannelMembership = "BatchCreateChannelMembership"

// BatchCreateChannelMembershipRequest generates a "aws/request.Request" representing the
// client's request for the BatchCreateChannelMembership operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See BatchCreateChannelMembership for more information on using the BatchCreateChannelMembership
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the BatchCreateChannelMembershipRequest method.
//	req, resp := client.BatchCreateChannelMembershipRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchCreateChannelMembership
//
// Deprecated: Replaced by BatchCreateChannelMembership in the Amazon Chime SDK Messaging Namespace
func (c *Chime) BatchCreateChannelMembershipRequest(input *BatchCreateChannelMembershipInput) (req *request.Request, output *BatchCreateChannelMembershipOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, BatchCreateChannelMembership, has been deprecated")
	}
	op := &request.Operation{
		Name:       opBatchCreateChannelMembership,
		HTTPMethod: "POST",
		HTTPPath:   "/channels/{channelArn}/memberships?operation=batch-create",
	}

	if input == nil {
		input = &BatchCreateChannelMembershipInput{}
	}

	output = &BatchCreateChannelMembershipOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// BatchCreateChannelMembership API operation for Amazon Chime.
//
// Adds a specified number of users to a channel.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, BatchCreateChannelMembership (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_BatchCreateChannelMembership.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation BatchCreateChannelMembership for usage and error information.
//
// Returned Error Types:
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchCreateChannelMembership
//
// Deprecated: Replaced by BatchCreateChannelMembership in the Amazon Chime SDK Messaging Namespace
func (c *Chime) BatchCreateChannelMembership(input *BatchCreateChannelMembershipInput) (*BatchCreateChannelMembershipOutput, error) {
	req, out := c.BatchCreateChannelMembershipRequest(input)
	return out, req.Send()
}

// BatchCreateChannelMembershipWithContext is the same as BatchCreateChannelMembership with the addition of
// the ability to pass a context and additional request options.
//
// See BatchCreateChannelMembership for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by BatchCreateChannelMembership in the Amazon Chime SDK Messaging Namespace
func (c *Chime) BatchCreateChannelMembershipWithContext(ctx aws.Context, input *BatchCreateChannelMembershipInput, opts ...request.Option) (*BatchCreateChannelMembershipOutput, error) {
	req, out := c.BatchCreateChannelMembershipRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opBatchCreateRoomMembership = "BatchCreateRoomMembership"

// BatchCreateRoomMembershipRequest generates a "aws/request.Request" representing the
// client's request for the BatchCreateRoomMembership operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See BatchCreateRoomMembership for more information on using the BatchCreateRoomMembership
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the BatchCreateRoomMembershipRequest method.
//	req, resp := client.BatchCreateRoomMembershipRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchCreateRoomMembership
func (c *Chime) BatchCreateRoomMembershipRequest(input *BatchCreateRoomMembershipInput) (req *request.Request, output *BatchCreateRoomMembershipOutput) {
	op := &request.Operation{
		Name:       opBatchCreateRoomMembership,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/rooms/{roomId}/memberships?operation=batch-create",
	}

	if input == nil {
		input = &BatchCreateRoomMembershipInput{}
	}

	output = &BatchCreateRoomMembershipOutput{}
	req = c.newRequest(op, input, output)
	return
}

// BatchCreateRoomMembership API operation for Amazon Chime.
//
// Adds up to 50 members to a chat room in an Amazon Chime Enterprise account.
// Members can be users or bots. The member role designates whether the member
// is a chat room administrator or a general chat room member.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation BatchCreateRoomMembership for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchCreateRoomMembership
func (c *Chime) BatchCreateRoomMembership(input *BatchCreateRoomMembershipInput) (*BatchCreateRoomMembershipOutput, error) {
	req, out := c.BatchCreateRoomMembershipRequest(input)
	return out, req.Send()
}

// BatchCreateRoomMembershipWithContext is the same as BatchCreateRoomMembership with the addition of
// the ability to pass a context and additional request options.
//
// See BatchCreateRoomMembership for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) BatchCreateRoomMembershipWithContext(ctx aws.Context, input *BatchCreateRoomMembershipInput, opts ...request.Option) (*BatchCreateRoomMembershipOutput, error) {
	req, out := c.BatchCreateRoomMembershipRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opBatchDeletePhoneNumber = "BatchDeletePhoneNumber"

// BatchDeletePhoneNumberRequest generates a "aws/request.Request" representing the
// client's request for the BatchDeletePhoneNumber operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See BatchDeletePhoneNumber for more information on using the BatchDeletePhoneNumber
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the BatchDeletePhoneNumberRequest method.
//	req, resp := client.BatchDeletePhoneNumberRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchDeletePhoneNumber
func (c *Chime) BatchDeletePhoneNumberRequest(input *BatchDeletePhoneNumberInput) (req *request.Request, output *BatchDeletePhoneNumberOutput) {
	op := &request.Operation{
		Name:       opBatchDeletePhoneNumber,
		HTTPMethod: "POST",
		HTTPPath:   "/phone-numbers?operation=batch-delete",
	}

	if input == nil {
		input = &BatchDeletePhoneNumberInput{}
	}

	output = &BatchDeletePhoneNumberOutput{}
	req = c.newRequest(op, input, output)
	return
}

// BatchDeletePhoneNumber API operation for Amazon Chime.
//
// Moves phone numbers into the Deletion queue. Phone numbers must be disassociated
// from any users or Amazon Chime Voice Connectors before they can be deleted.
//
// Phone numbers remain in the Deletion queue for 7 days before they are deleted
// permanently.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation BatchDeletePhoneNumber for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchDeletePhoneNumber
func (c *Chime) BatchDeletePhoneNumber(input *BatchDeletePhoneNumberInput) (*BatchDeletePhoneNumberOutput, error) {
	req, out := c.BatchDeletePhoneNumberRequest(input)
	return out, req.Send()
}

// BatchDeletePhoneNumberWithContext is the same as BatchDeletePhoneNumber with the addition of
// the ability to pass a context and additional request options.
//
// See BatchDeletePhoneNumber for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) BatchDeletePhoneNumberWithContext(ctx aws.Context, input *BatchDeletePhoneNumberInput, opts ...request.Option) (*BatchDeletePhoneNumberOutput, error) {
	req, out := c.BatchDeletePhoneNumberRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opBatchSuspendUser = "BatchSuspendUser"

// BatchSuspendUserRequest generates a "aws/request.Request" representing the
// client's request for the BatchSuspendUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See BatchSuspendUser for more information on using the BatchSuspendUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the BatchSuspendUserRequest method.
//	req, resp := client.BatchSuspendUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchSuspendUser
func (c *Chime) BatchSuspendUserRequest(input *BatchSuspendUserInput) (req *request.Request, output *BatchSuspendUserOutput) {
	op := &request.Operation{
		Name:       opBatchSuspendUser,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/users?operation=suspend",
	}

	if input == nil {
		input = &BatchSuspendUserInput{}
	}

	output = &BatchSuspendUserOutput{}
	req = c.newRequest(op, input, output)
	return
}

// BatchSuspendUser API operation for Amazon Chime.
//
// Suspends up to 50 users from a Team or EnterpriseLWA Amazon Chime account.
// For more information about different account types, see Managing Your Amazon
// Chime Accounts (https://docs.aws.amazon.com/chime/latest/ag/manage-chime-account.html)
// in the Amazon Chime Administration Guide.
//
// Users suspended from a Team account are disassociated from the account,but
// they can continue to use Amazon Chime as free users. To remove the suspension
// from suspended Team account users, invite them to the Team account again.
// You can use the InviteUsers action to do so.
//
// Users suspended from an EnterpriseLWA account are immediately signed out
// of Amazon Chime and can no longer sign in. To remove the suspension from
// suspended EnterpriseLWA account users, use the BatchUnsuspendUser action.
//
// To sign out users without suspending them, use the LogoutUser action.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation BatchSuspendUser for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchSuspendUser
func (c *Chime) BatchSuspendUser(input *BatchSuspendUserInput) (*BatchSuspendUserOutput, error) {
	req, out := c.BatchSuspendUserRequest(input)
	return out, req.Send()
}

// BatchSuspendUserWithContext is the same as BatchSuspendUser with the addition of
// the ability to pass a context and additional request options.
//
// See BatchSuspendUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) BatchSuspendUserWithContext(ctx aws.Context, input *BatchSuspendUserInput, opts ...request.Option) (*BatchSuspendUserOutput, error) {
	req, out := c.BatchSuspendUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opBatchUnsuspendUser = "BatchUnsuspendUser"

// BatchUnsuspendUserRequest generates a "aws/request.Request" representing the
// client's request for the BatchUnsuspendUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See BatchUnsuspendUser for more information on using the BatchUnsuspendUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the BatchUnsuspendUserRequest method.
//	req, resp := client.BatchUnsuspendUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchUnsuspendUser
func (c *Chime) BatchUnsuspendUserRequest(input *BatchUnsuspendUserInput) (req *request.Request, output *BatchUnsuspendUserOutput) {
	op := &request.Operation{
		Name:       opBatchUnsuspendUser,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/users?operation=unsuspend",
	}

	if input == nil {
		input = &BatchUnsuspendUserInput{}
	}

	output = &BatchUnsuspendUserOutput{}
	req = c.newRequest(op, input, output)
	return
}

// BatchUnsuspendUser API operation for Amazon Chime.
//
// Removes the suspension from up to 50 previously suspended users for the specified
// Amazon Chime EnterpriseLWA account. Only users on EnterpriseLWA accounts
// can be unsuspended using this action. For more information about different
// account types, see Managing Your Amazon Chime Accounts (https://docs.aws.amazon.com/chime/latest/ag/manage-chime-account.html)
// in the account types, in the Amazon Chime Administration Guide.
//
// Previously suspended users who are unsuspended using this action are returned
// to Registered status. Users who are not previously suspended are ignored.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation BatchUnsuspendUser for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchUnsuspendUser
func (c *Chime) BatchUnsuspendUser(input *BatchUnsuspendUserInput) (*BatchUnsuspendUserOutput, error) {
	req, out := c.BatchUnsuspendUserRequest(input)
	return out, req.Send()
}

// BatchUnsuspendUserWithContext is the same as BatchUnsuspendUser with the addition of
// the ability to pass a context and additional request options.
//
// See BatchUnsuspendUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) BatchUnsuspendUserWithContext(ctx aws.Context, input *BatchUnsuspendUserInput, opts ...request.Option) (*BatchUnsuspendUserOutput, error) {
	req, out := c.BatchUnsuspendUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opBatchUpdatePhoneNumber = "BatchUpdatePhoneNumber"

// BatchUpdatePhoneNumberRequest generates a "aws/request.Request" representing the
// client's request for the BatchUpdatePhoneNumber operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See BatchUpdatePhoneNumber for more information on using the BatchUpdatePhoneNumber
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the BatchUpdatePhoneNumberRequest method.
//	req, resp := client.BatchUpdatePhoneNumberRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchUpdatePhoneNumber
func (c *Chime) BatchUpdatePhoneNumberRequest(input *BatchUpdatePhoneNumberInput) (req *request.Request, output *BatchUpdatePhoneNumberOutput) {
	op := &request.Operation{
		Name:       opBatchUpdatePhoneNumber,
		HTTPMethod: "POST",
		HTTPPath:   "/phone-numbers?operation=batch-update",
	}

	if input == nil {
		input = &BatchUpdatePhoneNumberInput{}
	}

	output = &BatchUpdatePhoneNumberOutput{}
	req = c.newRequest(op, input, output)
	return
}

// BatchUpdatePhoneNumber API operation for Amazon Chime.
//
// Updates phone number product types or calling names. You can update one attribute
// at a time for each UpdatePhoneNumberRequestItem. For example, you can update
// the product type or the calling name.
//
// For toll-free numbers, you cannot use the Amazon Chime Business Calling product
// type. For numbers outside the U.S., you must use the Amazon Chime SIP Media
// Application Dial-In product type.
//
// Updates to outbound calling names can take up to 72 hours to complete. Pending
// updates to outbound calling names must be complete before you can request
// another update.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation BatchUpdatePhoneNumber for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchUpdatePhoneNumber
func (c *Chime) BatchUpdatePhoneNumber(input *BatchUpdatePhoneNumberInput) (*BatchUpdatePhoneNumberOutput, error) {
	req, out := c.BatchUpdatePhoneNumberRequest(input)
	return out, req.Send()
}

// BatchUpdatePhoneNumberWithContext is the same as BatchUpdatePhoneNumber with the addition of
// the ability to pass a context and additional request options.
//
// See BatchUpdatePhoneNumber for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) BatchUpdatePhoneNumberWithContext(ctx aws.Context, input *BatchUpdatePhoneNumberInput, opts ...request.Option) (*BatchUpdatePhoneNumberOutput, error) {
	req, out := c.BatchUpdatePhoneNumberRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opBatchUpdateUser = "BatchUpdateUser"

// BatchUpdateUserRequest generates a "aws/request.Request" representing the
// client's request for the BatchUpdateUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See BatchUpdateUser for more information on using the BatchUpdateUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the BatchUpdateUserRequest method.
//	req, resp := client.BatchUpdateUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchUpdateUser
func (c *Chime) BatchUpdateUserRequest(input *BatchUpdateUserInput) (req *request.Request, output *BatchUpdateUserOutput) {
	op := &request.Operation{
		Name:       opBatchUpdateUser,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/users",
	}

	if input == nil {
		input = &BatchUpdateUserInput{}
	}

	output = &BatchUpdateUserOutput{}
	req = c.newRequest(op, input, output)
	return
}

// BatchUpdateUser API operation for Amazon Chime.
//
// Updates user details within the UpdateUserRequestItem object for up to 20
// users for the specified Amazon Chime account. Currently, only LicenseType
// updates are supported for this action.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation BatchUpdateUser for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/BatchUpdateUser
func (c *Chime) BatchUpdateUser(input *BatchUpdateUserInput) (*BatchUpdateUserOutput, error) {
	req, out := c.BatchUpdateUserRequest(input)
	return out, req.Send()
}

// BatchUpdateUserWithContext is the same as BatchUpdateUser with the addition of
// the ability to pass a context and additional request options.
//
// See BatchUpdateUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) BatchUpdateUserWithContext(ctx aws.Context, input *BatchUpdateUserInput, opts ...request.Option) (*BatchUpdateUserOutput, error) {
	req, out := c.BatchUpdateUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateAccount = "CreateAccount"

// CreateAccountRequest generates a "aws/request.Request" representing the
// client's request for the CreateAccount operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateAccount for more information on using the CreateAccount
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateAccountRequest method.
//	req, resp := client.CreateAccountRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateAccount
func (c *Chime) CreateAccountRequest(input *CreateAccountInput) (req *request.Request, output *CreateAccountOutput) {
	op := &request.Operation{
		Name:       opCreateAccount,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts",
	}

	if input == nil {
		input = &CreateAccountInput{}
	}

	output = &CreateAccountOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateAccount API operation for Amazon Chime.
//
// Creates an Amazon Chime account under the administrator's AWS account. Only
// Team account types are currently supported for this action. For more information
// about different account types, see Managing Your Amazon Chime Accounts (https://docs.aws.amazon.com/chime/latest/ag/manage-chime-account.html)
// in the Amazon Chime Administration Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateAccount for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateAccount
func (c *Chime) CreateAccount(input *CreateAccountInput) (*CreateAccountOutput, error) {
	req, out := c.CreateAccountRequest(input)
	return out, req.Send()
}

// CreateAccountWithContext is the same as CreateAccount with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAccount for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) CreateAccountWithContext(ctx aws.Context, input *CreateAccountInput, opts ...request.Option) (*CreateAccountOutput, error) {
	req, out := c.CreateAccountRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateAppInstance = "CreateAppInstance"

// CreateAppInstanceRequest generates a "aws/request.Request" representing the
// client's request for the CreateAppInstance operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateAppInstance for more information on using the CreateAppInstance
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateAppInstanceRequest method.
//	req, resp := client.CreateAppInstanceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateAppInstance
//
// Deprecated: Replaced by CreateAppInstance in the Amazon Chime SDK Identity Namespace
func (c *Chime) CreateAppInstanceRequest(input *CreateAppInstanceInput) (req *request.Request, output *CreateAppInstanceOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateAppInstance, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateAppInstance,
		HTTPMethod: "POST",
		HTTPPath:   "/app-instances",
	}

	if input == nil {
		input = &CreateAppInstanceInput{}
	}

	output = &CreateAppInstanceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// CreateAppInstance API operation for Amazon Chime.
//
// Creates an Amazon Chime SDK messaging AppInstance under an AWS account. Only
// SDK messaging customers use this API. CreateAppInstance supports idempotency
// behavior as described in the AWS API Standard.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateAppInstance (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_CreateAppInstance.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateAppInstance for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateAppInstance
//
// Deprecated: Replaced by CreateAppInstance in the Amazon Chime SDK Identity Namespace
func (c *Chime) CreateAppInstance(input *CreateAppInstanceInput) (*CreateAppInstanceOutput, error) {
	req, out := c.CreateAppInstanceRequest(input)
	return out, req.Send()
}

// CreateAppInstanceWithContext is the same as CreateAppInstance with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAppInstance for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateAppInstance in the Amazon Chime SDK Identity Namespace
func (c *Chime) CreateAppInstanceWithContext(ctx aws.Context, input *CreateAppInstanceInput, opts ...request.Option) (*CreateAppInstanceOutput, error) {
	req, out := c.CreateAppInstanceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateAppInstanceAdmin = "CreateAppInstanceAdmin"

// CreateAppInstanceAdminRequest generates a "aws/request.Request" representing the
// client's request for the CreateAppInstanceAdmin operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateAppInstanceAdmin for more information on using the CreateAppInstanceAdmin
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateAppInstanceAdminRequest method.
//	req, resp := client.CreateAppInstanceAdminRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateAppInstanceAdmin
//
// Deprecated: Replaced by CreateAppInstanceAdmin in the Amazon Chime SDK Identity Namespace
func (c *Chime) CreateAppInstanceAdminRequest(input *CreateAppInstanceAdminInput) (req *request.Request, output *CreateAppInstanceAdminOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateAppInstanceAdmin, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateAppInstanceAdmin,
		HTTPMethod: "POST",
		HTTPPath:   "/app-instances/{appInstanceArn}/admins",
	}

	if input == nil {
		input = &CreateAppInstanceAdminInput{}
	}

	output = &CreateAppInstanceAdminOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// CreateAppInstanceAdmin API operation for Amazon Chime.
//
// Promotes an AppInstanceUser to an AppInstanceAdmin. The promoted user can
// perform the following actions.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateAppInstanceAdmin (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_CreateAppInstanceAdmin.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
//   - ChannelModerator actions across all channels in the AppInstance.
//
//   - DeleteChannelMessage actions.
//
// Only an AppInstanceUser can be promoted to an AppInstanceAdmin role.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateAppInstanceAdmin for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateAppInstanceAdmin
//
// Deprecated: Replaced by CreateAppInstanceAdmin in the Amazon Chime SDK Identity Namespace
func (c *Chime) CreateAppInstanceAdmin(input *CreateAppInstanceAdminInput) (*CreateAppInstanceAdminOutput, error) {
	req, out := c.CreateAppInstanceAdminRequest(input)
	return out, req.Send()
}

// CreateAppInstanceAdminWithContext is the same as CreateAppInstanceAdmin with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAppInstanceAdmin for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateAppInstanceAdmin in the Amazon Chime SDK Identity Namespace
func (c *Chime) CreateAppInstanceAdminWithContext(ctx aws.Context, input *CreateAppInstanceAdminInput, opts ...request.Option) (*CreateAppInstanceAdminOutput, error) {
	req, out := c.CreateAppInstanceAdminRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateAppInstanceUser = "CreateAppInstanceUser"

// CreateAppInstanceUserRequest generates a "aws/request.Request" representing the
// client's request for the CreateAppInstanceUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateAppInstanceUser for more information on using the CreateAppInstanceUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateAppInstanceUserRequest method.
//	req, resp := client.CreateAppInstanceUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateAppInstanceUser
//
// Deprecated: Replaced by CreateAppInstanceUser in the Amazon Chime SDK Identity Namespace
func (c *Chime) CreateAppInstanceUserRequest(input *CreateAppInstanceUserInput) (req *request.Request, output *CreateAppInstanceUserOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateAppInstanceUser, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateAppInstanceUser,
		HTTPMethod: "POST",
		HTTPPath:   "/app-instance-users",
	}

	if input == nil {
		input = &CreateAppInstanceUserInput{}
	}

	output = &CreateAppInstanceUserOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// CreateAppInstanceUser API operation for Amazon Chime.
//
// Creates a user under an Amazon Chime AppInstance. The request consists of
// a unique appInstanceUserId and Name for that user.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateAppInstanceUser (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_CreateAppInstanceUser.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateAppInstanceUser for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateAppInstanceUser
//
// Deprecated: Replaced by CreateAppInstanceUser in the Amazon Chime SDK Identity Namespace
func (c *Chime) CreateAppInstanceUser(input *CreateAppInstanceUserInput) (*CreateAppInstanceUserOutput, error) {
	req, out := c.CreateAppInstanceUserRequest(input)
	return out, req.Send()
}

// CreateAppInstanceUserWithContext is the same as CreateAppInstanceUser with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAppInstanceUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateAppInstanceUser in the Amazon Chime SDK Identity Namespace
func (c *Chime) CreateAppInstanceUserWithContext(ctx aws.Context, input *CreateAppInstanceUserInput, opts ...request.Option) (*CreateAppInstanceUserOutput, error) {
	req, out := c.CreateAppInstanceUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateAttendee = "CreateAttendee"

// CreateAttendeeRequest generates a "aws/request.Request" representing the
// client's request for the CreateAttendee operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateAttendee for more information on using the CreateAttendee
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateAttendeeRequest method.
//	req, resp := client.CreateAttendeeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateAttendee
//
// Deprecated: Replaced by CreateAttendee in the Amazon Chime SDK Meetings Namespace
func (c *Chime) CreateAttendeeRequest(input *CreateAttendeeInput) (req *request.Request, output *CreateAttendeeOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateAttendee, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateAttendee,
		HTTPMethod: "POST",
		HTTPPath:   "/meetings/{meetingId}/attendees",
	}

	if input == nil {
		input = &CreateAttendeeInput{}
	}

	output = &CreateAttendeeOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateAttendee API operation for Amazon Chime.
//
// Creates a new attendee for an active Amazon Chime SDK meeting. For more information
// about the Amazon Chime SDK, see Using the Amazon Chime SDK (https://docs.aws.amazon.com/chime-sdk/latest/dg/meetings-sdk.html)
// in the Amazon Chime SDK Developer Guide.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateAttendee (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateAttendee.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateAttendee for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateAttendee
//
// Deprecated: Replaced by CreateAttendee in the Amazon Chime SDK Meetings Namespace
func (c *Chime) CreateAttendee(input *CreateAttendeeInput) (*CreateAttendeeOutput, error) {
	req, out := c.CreateAttendeeRequest(input)
	return out, req.Send()
}

// CreateAttendeeWithContext is the same as CreateAttendee with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAttendee for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateAttendee in the Amazon Chime SDK Meetings Namespace
func (c *Chime) CreateAttendeeWithContext(ctx aws.Context, input *CreateAttendeeInput, opts ...request.Option) (*CreateAttendeeOutput, error) {
	req, out := c.CreateAttendeeRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateBot = "CreateBot"

// CreateBotRequest generates a "aws/request.Request" representing the
// client's request for the CreateBot operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateBot for more information on using the CreateBot
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateBotRequest method.
//	req, resp := client.CreateBotRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateBot
func (c *Chime) CreateBotRequest(input *CreateBotInput) (req *request.Request, output *CreateBotOutput) {
	op := &request.Operation{
		Name:       opCreateBot,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/bots",
	}

	if input == nil {
		input = &CreateBotInput{}
	}

	output = &CreateBotOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateBot API operation for Amazon Chime.
//
// Creates a bot for an Amazon Chime Enterprise account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateBot for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateBot
func (c *Chime) CreateBot(input *CreateBotInput) (*CreateBotOutput, error) {
	req, out := c.CreateBotRequest(input)
	return out, req.Send()
}

// CreateBotWithContext is the same as CreateBot with the addition of
// the ability to pass a context and additional request options.
//
// See CreateBot for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) CreateBotWithContext(ctx aws.Context, input *CreateBotInput, opts ...request.Option) (*CreateBotOutput, error) {
	req, out := c.CreateBotRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateChannel = "CreateChannel"

// CreateChannelRequest generates a "aws/request.Request" representing the
// client's request for the CreateChannel operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateChannel for more information on using the CreateChannel
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateChannelRequest method.
//	req, resp := client.CreateChannelRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateChannel
//
// Deprecated: Replaced by CreateChannel in the Amazon Chime SDK Messaging Namespace
func (c *Chime) CreateChannelRequest(input *CreateChannelInput) (req *request.Request, output *CreateChannelOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateChannel, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateChannel,
		HTTPMethod: "POST",
		HTTPPath:   "/channels",
	}

	if input == nil {
		input = &CreateChannelInput{}
	}

	output = &CreateChannelOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// CreateChannel API operation for Amazon Chime.
//
// Creates a channel to which you can add users and send messages.
//
// Restriction: You can't change a channel's privacy.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateChannel (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateChannel for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateChannel
//
// Deprecated: Replaced by CreateChannel in the Amazon Chime SDK Messaging Namespace
func (c *Chime) CreateChannel(input *CreateChannelInput) (*CreateChannelOutput, error) {
	req, out := c.CreateChannelRequest(input)
	return out, req.Send()
}

// CreateChannelWithContext is the same as CreateChannel with the addition of
// the ability to pass a context and additional request options.
//
// See CreateChannel for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateChannel in the Amazon Chime SDK Messaging Namespace
func (c *Chime) CreateChannelWithContext(ctx aws.Context, input *CreateChannelInput, opts ...request.Option) (*CreateChannelOutput, error) {
	req, out := c.CreateChannelRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateChannelBan = "CreateChannelBan"

// CreateChannelBanRequest generates a "aws/request.Request" representing the
// client's request for the CreateChannelBan operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateChannelBan for more information on using the CreateChannelBan
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateChannelBanRequest method.
//	req, resp := client.CreateChannelBanRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateChannelBan
//
// Deprecated: Replaced by CreateChannelBan in the Amazon Chime SDK Messaging Namespace
func (c *Chime) CreateChannelBanRequest(input *CreateChannelBanInput) (req *request.Request, output *CreateChannelBanOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateChannelBan, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateChannelBan,
		HTTPMethod: "POST",
		HTTPPath:   "/channels/{channelArn}/bans",
	}

	if input == nil {
		input = &CreateChannelBanInput{}
	}

	output = &CreateChannelBanOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// CreateChannelBan API operation for Amazon Chime.
//
// Permanently bans a member from a channel. Moderators can't add banned members
// to a channel. To undo a ban, you first have to DeleteChannelBan, and then
// CreateChannelMembership. Bans are cleaned up when you delete users or channels.
//
// If you ban a user who is already part of a channel, that user is automatically
// kicked from the channel.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateChannelBan (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelBan.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateChannelBan for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateChannelBan
//
// Deprecated: Replaced by CreateChannelBan in the Amazon Chime SDK Messaging Namespace
func (c *Chime) CreateChannelBan(input *CreateChannelBanInput) (*CreateChannelBanOutput, error) {
	req, out := c.CreateChannelBanRequest(input)
	return out, req.Send()
}

// CreateChannelBanWithContext is the same as CreateChannelBan with the addition of
// the ability to pass a context and additional request options.
//
// See CreateChannelBan for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateChannelBan in the Amazon Chime SDK Messaging Namespace
func (c *Chime) CreateChannelBanWithContext(ctx aws.Context, input *CreateChannelBanInput, opts ...request.Option) (*CreateChannelBanOutput, error) {
	req, out := c.CreateChannelBanRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateChannelMembership = "CreateChannelMembership"

// CreateChannelMembershipRequest generates a "aws/request.Request" representing the
// client's request for the CreateChannelMembership operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateChannelMembership for more information on using the CreateChannelMembership
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateChannelMembershipRequest method.
//	req, resp := client.CreateChannelMembershipRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateChannelMembership
//
// Deprecated: Replaced by CreateChannelMembership in the Amazon Chime SDK Messaging Namespace
func (c *Chime) CreateChannelMembershipRequest(input *CreateChannelMembershipInput) (req *request.Request, output *CreateChannelMembershipOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateChannelMembership, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateChannelMembership,
		HTTPMethod: "POST",
		HTTPPath:   "/channels/{channelArn}/memberships",
	}

	if input == nil {
		input = &CreateChannelMembershipInput{}
	}

	output = &CreateChannelMembershipOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// CreateChannelMembership API operation for Amazon Chime.
//
// Adds a user to a channel. The InvitedBy response field is derived from the
// request header. A channel member can:
//
//   - List messages
//
//   - Send messages
//
//   - Receive messages
//
//   - Edit their own messages
//
//   - Leave the channel
//
// Privacy settings impact this action as follows:
//
//   - Public Channels: You do not need to be a member to list messages, but
//     you must be a member to send messages.
//
//   - Private Channels: You must be a member to list or send messages.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateChannelMembership (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateChannelMembership for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateChannelMembership
//
// Deprecated: Replaced by CreateChannelMembership in the Amazon Chime SDK Messaging Namespace
func (c *Chime) CreateChannelMembership(input *CreateChannelMembershipInput) (*CreateChannelMembershipOutput, error) {
	req, out := c.CreateChannelMembershipRequest(input)
	return out, req.Send()
}

// CreateChannelMembershipWithContext is the same as CreateChannelMembership with the addition of
// the ability to pass a context and additional request options.
//
// See CreateChannelMembership for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateChannelMembership in the Amazon Chime SDK Messaging Namespace
func (c *Chime) CreateChannelMembershipWithContext(ctx aws.Context, input *CreateChannelMembershipInput, opts ...request.Option) (*CreateChannelMembershipOutput, error) {
	req, out := c.CreateChannelMembershipRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateChannelModerator = "CreateChannelModerator"

// CreateChannelModeratorRequest generates a "aws/request.Request" representing the
// client's request for the CreateChannelModerator operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateChannelModerator for more information on using the CreateChannelModerator
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateChannelModeratorRequest method.
//	req, resp := client.CreateChannelModeratorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateChannelModerator
//
// Deprecated: Replaced by CreateChannelModerator in the Amazon Chime SDK Messaging Namespace
func (c *Chime) CreateChannelModeratorRequest(input *CreateChannelModeratorInput) (req *request.Request, output *CreateChannelModeratorOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateChannelModerator, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateChannelModerator,
		HTTPMethod: "POST",
		HTTPPath:   "/channels/{channelArn}/moderators",
	}

	if input == nil {
		input = &CreateChannelModeratorInput{}
	}

	output = &CreateChannelModeratorOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// CreateChannelModerator API operation for Amazon Chime.
//
// Creates a new ChannelModerator. A channel moderator can:
//
//   - Add and remove other members of the channel.
//
//   - Add and remove other moderators of the channel.
//
//   - Add and remove user bans for the channel.
//
//   - Redact messages in the channel.
//
//   - List messages in the channel.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateChannelModerator (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelModerator.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateChannelModerator for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateChannelModerator
//
// Deprecated: Replaced by CreateChannelModerator in the Amazon Chime SDK Messaging Namespace
func (c *Chime) CreateChannelModerator(input *CreateChannelModeratorInput) (*CreateChannelModeratorOutput, error) {
	req, out := c.CreateChannelModeratorRequest(input)
	return out, req.Send()
}

// CreateChannelModeratorWithContext is the same as CreateChannelModerator with the addition of
// the ability to pass a context and additional request options.
//
// See CreateChannelModerator for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateChannelModerator in the Amazon Chime SDK Messaging Namespace
func (c *Chime) CreateChannelModeratorWithContext(ctx aws.Context, input *CreateChannelModeratorInput, opts ...request.Option) (*CreateChannelModeratorOutput, error) {
	req, out := c.CreateChannelModeratorRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateMediaCapturePipeline = "CreateMediaCapturePipeline"

// CreateMediaCapturePipelineRequest generates a "aws/request.Request" representing the
// client's request for the CreateMediaCapturePipeline operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateMediaCapturePipeline for more information on using the CreateMediaCapturePipeline
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateMediaCapturePipelineRequest method.
//	req, resp := client.CreateMediaCapturePipelineRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateMediaCapturePipeline
//
// Deprecated: Replaced by CreateMediaCapturePipeline in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) CreateMediaCapturePipelineRequest(input *CreateMediaCapturePipelineInput) (req *request.Request, output *CreateMediaCapturePipelineOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateMediaCapturePipeline, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateMediaCapturePipeline,
		HTTPMethod: "POST",
		HTTPPath:   "/media-capture-pipelines",
	}

	if input == nil {
		input = &CreateMediaCapturePipelineInput{}
	}

	output = &CreateMediaCapturePipelineOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateMediaCapturePipeline API operation for Amazon Chime.
//
// Creates a media capture pipeline.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateMediaCapturePipeline (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateMediaCapturePipeline for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateMediaCapturePipeline
//
// Deprecated: Replaced by CreateMediaCapturePipeline in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) CreateMediaCapturePipeline(input *CreateMediaCapturePipelineInput) (*CreateMediaCapturePipelineOutput, error) {
	req, out := c.CreateMediaCapturePipelineRequest(input)
	return out, req.Send()
}

// CreateMediaCapturePipelineWithContext is the same as CreateMediaCapturePipeline with the addition of
// the ability to pass a context and additional request options.
//
// See CreateMediaCapturePipeline for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateMediaCapturePipeline in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) CreateMediaCapturePipelineWithContext(ctx aws.Context, input *CreateMediaCapturePipelineInput, opts ...request.Option) (*CreateMediaCapturePipelineOutput, error) {
	req, out := c.CreateMediaCapturePipelineRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateMeeting = "CreateMeeting"

// CreateMeetingRequest generates a "aws/request.Request" representing the
// client's request for the CreateMeeting operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateMeeting for more information on using the CreateMeeting
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateMeetingRequest method.
//	req, resp := client.CreateMeetingRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateMeeting
//
// Deprecated: Replaced by CreateMeeting in the Amazon Chime SDK Meetings Namespace
func (c *Chime) CreateMeetingRequest(input *CreateMeetingInput) (req *request.Request, output *CreateMeetingOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateMeeting, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateMeeting,
		HTTPMethod: "POST",
		HTTPPath:   "/meetings",
	}

	if input == nil {
		input = &CreateMeetingInput{}
	}

	output = &CreateMeetingOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateMeeting API operation for Amazon Chime.
//
// Creates a new Amazon Chime SDK meeting in the specified media Region with
// no initial attendees. For more information about specifying media Regions,
// see Amazon Chime SDK Media Regions (https://docs.aws.amazon.com/chime-sdk/latest/dg/chime-sdk-meetings-regions.html)
// in the Amazon Chime SDK Developer Guide . For more information about the
// Amazon Chime SDK, see Using the Amazon Chime SDK (https://docs.aws.amazon.com/chime-sdk/latest/dg/meetings-sdk.html)
// in the Amazon Chime SDK Developer Guide.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateMeeting (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateMeeting for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateMeeting
//
// Deprecated: Replaced by CreateMeeting in the Amazon Chime SDK Meetings Namespace
func (c *Chime) CreateMeeting(input *CreateMeetingInput) (*CreateMeetingOutput, error) {
	req, out := c.CreateMeetingRequest(input)
	return out, req.Send()
}

// CreateMeetingWithContext is the same as CreateMeeting with the addition of
// the ability to pass a context and additional request options.
//
// See CreateMeeting for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateMeeting in the Amazon Chime SDK Meetings Namespace
func (c *Chime) CreateMeetingWithContext(ctx aws.Context, input *CreateMeetingInput, opts ...request.Option) (*CreateMeetingOutput, error) {
	req, out := c.CreateMeetingRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateMeetingDialOut = "CreateMeetingDialOut"

// CreateMeetingDialOutRequest generates a "aws/request.Request" representing the
// client's request for the CreateMeetingDialOut operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateMeetingDialOut for more information on using the CreateMeetingDialOut
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateMeetingDialOutRequest method.
//	req, resp := client.CreateMeetingDialOutRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateMeetingDialOut
func (c *Chime) CreateMeetingDialOutRequest(input *CreateMeetingDialOutInput) (req *request.Request, output *CreateMeetingDialOutOutput) {
	op := &request.Operation{
		Name:       opCreateMeetingDialOut,
		HTTPMethod: "POST",
		HTTPPath:   "/meetings/{meetingId}/dial-outs",
	}

	if input == nil {
		input = &CreateMeetingDialOutInput{}
	}

	output = &CreateMeetingDialOutOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateMeetingDialOut API operation for Amazon Chime.
//
// Uses the join token and call metadata in a meeting request (From number,
// To number, and so forth) to initiate an outbound call to a public switched
// telephone network (PSTN) and join them into a Chime meeting. Also ensures
// that the From number belongs to the customer.
//
// To play welcome audio or implement an interactive voice response (IVR), use
// the CreateSipMediaApplicationCall action with the corresponding SIP media
// application ID.
//
// This API is is not available in a dedicated namespace.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateMeetingDialOut for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateMeetingDialOut
func (c *Chime) CreateMeetingDialOut(input *CreateMeetingDialOutInput) (*CreateMeetingDialOutOutput, error) {
	req, out := c.CreateMeetingDialOutRequest(input)
	return out, req.Send()
}

// CreateMeetingDialOutWithContext is the same as CreateMeetingDialOut with the addition of
// the ability to pass a context and additional request options.
//
// See CreateMeetingDialOut for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) CreateMeetingDialOutWithContext(ctx aws.Context, input *CreateMeetingDialOutInput, opts ...request.Option) (*CreateMeetingDialOutOutput, error) {
	req, out := c.CreateMeetingDialOutRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateMeetingWithAttendees = "CreateMeetingWithAttendees"

// CreateMeetingWithAttendeesRequest generates a "aws/request.Request" representing the
// client's request for the CreateMeetingWithAttendees operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateMeetingWithAttendees for more information on using the CreateMeetingWithAttendees
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateMeetingWithAttendeesRequest method.
//	req, resp := client.CreateMeetingWithAttendeesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateMeetingWithAttendees
//
// Deprecated: Replaced by CreateMeetingWithAttendees in the Amazon Chime SDK Meetings Namespace
func (c *Chime) CreateMeetingWithAttendeesRequest(input *CreateMeetingWithAttendeesInput) (req *request.Request, output *CreateMeetingWithAttendeesOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateMeetingWithAttendees, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateMeetingWithAttendees,
		HTTPMethod: "POST",
		HTTPPath:   "/meetings?operation=create-attendees",
	}

	if input == nil {
		input = &CreateMeetingWithAttendeesInput{}
	}

	output = &CreateMeetingWithAttendeesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateMeetingWithAttendees API operation for Amazon Chime.
//
// Creates a new Amazon Chime SDK meeting in the specified media Region, with
// attendees. For more information about specifying media Regions, see Amazon
// Chime SDK Media Regions (https://docs.aws.amazon.com/chime-sdk/latest/dg/chime-sdk-meetings-regions.html)
// in the Amazon Chime SDK Developer Guide . For more information about the
// Amazon Chime SDK, see Using the Amazon Chime SDK (https://docs.aws.amazon.com/chime-sdk/latest/dg/meetings-sdk.html)
// in the Amazon Chime SDK Developer Guide .
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateMeetingWithAttendees (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateMeetingWithAttendees for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateMeetingWithAttendees
//
// Deprecated: Replaced by CreateMeetingWithAttendees in the Amazon Chime SDK Meetings Namespace
func (c *Chime) CreateMeetingWithAttendees(input *CreateMeetingWithAttendeesInput) (*CreateMeetingWithAttendeesOutput, error) {
	req, out := c.CreateMeetingWithAttendeesRequest(input)
	return out, req.Send()
}

// CreateMeetingWithAttendeesWithContext is the same as CreateMeetingWithAttendees with the addition of
// the ability to pass a context and additional request options.
//
// See CreateMeetingWithAttendees for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateMeetingWithAttendees in the Amazon Chime SDK Meetings Namespace
func (c *Chime) CreateMeetingWithAttendeesWithContext(ctx aws.Context, input *CreateMeetingWithAttendeesInput, opts ...request.Option) (*CreateMeetingWithAttendeesOutput, error) {
	req, out := c.CreateMeetingWithAttendeesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreatePhoneNumberOrder = "CreatePhoneNumberOrder"

// CreatePhoneNumberOrderRequest generates a "aws/request.Request" representing the
// client's request for the CreatePhoneNumberOrder operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreatePhoneNumberOrder for more information on using the CreatePhoneNumberOrder
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreatePhoneNumberOrderRequest method.
//	req, resp := client.CreatePhoneNumberOrderRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreatePhoneNumberOrder
func (c *Chime) CreatePhoneNumberOrderRequest(input *CreatePhoneNumberOrderInput) (req *request.Request, output *CreatePhoneNumberOrderOutput) {
	op := &request.Operation{
		Name:       opCreatePhoneNumberOrder,
		HTTPMethod: "POST",
		HTTPPath:   "/phone-number-orders",
	}

	if input == nil {
		input = &CreatePhoneNumberOrderInput{}
	}

	output = &CreatePhoneNumberOrderOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreatePhoneNumberOrder API operation for Amazon Chime.
//
// Creates an order for phone numbers to be provisioned. For toll-free numbers,
// you cannot use the Amazon Chime Business Calling product type. For numbers
// outside the U.S., you must use the Amazon Chime SIP Media Application Dial-In
// product type.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreatePhoneNumberOrder for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreatePhoneNumberOrder
func (c *Chime) CreatePhoneNumberOrder(input *CreatePhoneNumberOrderInput) (*CreatePhoneNumberOrderOutput, error) {
	req, out := c.CreatePhoneNumberOrderRequest(input)
	return out, req.Send()
}

// CreatePhoneNumberOrderWithContext is the same as CreatePhoneNumberOrder with the addition of
// the ability to pass a context and additional request options.
//
// See CreatePhoneNumberOrder for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) CreatePhoneNumberOrderWithContext(ctx aws.Context, input *CreatePhoneNumberOrderInput, opts ...request.Option) (*CreatePhoneNumberOrderOutput, error) {
	req, out := c.CreatePhoneNumberOrderRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateProxySession = "CreateProxySession"

// CreateProxySessionRequest generates a "aws/request.Request" representing the
// client's request for the CreateProxySession operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateProxySession for more information on using the CreateProxySession
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateProxySessionRequest method.
//	req, resp := client.CreateProxySessionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateProxySession
//
// Deprecated: Replaced by CreateProxySession in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateProxySessionRequest(input *CreateProxySessionInput) (req *request.Request, output *CreateProxySessionOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateProxySession, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateProxySession,
		HTTPMethod: "POST",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/proxy-sessions",
	}

	if input == nil {
		input = &CreateProxySessionInput{}
	}

	output = &CreateProxySessionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateProxySession API operation for Amazon Chime.
//
// Creates a proxy session on the specified Amazon Chime Voice Connector for
// the specified participant phone numbers.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateProxySession (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateProxySession.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateProxySession for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateProxySession
//
// Deprecated: Replaced by CreateProxySession in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateProxySession(input *CreateProxySessionInput) (*CreateProxySessionOutput, error) {
	req, out := c.CreateProxySessionRequest(input)
	return out, req.Send()
}

// CreateProxySessionWithContext is the same as CreateProxySession with the addition of
// the ability to pass a context and additional request options.
//
// See CreateProxySession for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateProxySession in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateProxySessionWithContext(ctx aws.Context, input *CreateProxySessionInput, opts ...request.Option) (*CreateProxySessionOutput, error) {
	req, out := c.CreateProxySessionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateRoom = "CreateRoom"

// CreateRoomRequest generates a "aws/request.Request" representing the
// client's request for the CreateRoom operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateRoom for more information on using the CreateRoom
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateRoomRequest method.
//	req, resp := client.CreateRoomRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateRoom
func (c *Chime) CreateRoomRequest(input *CreateRoomInput) (req *request.Request, output *CreateRoomOutput) {
	op := &request.Operation{
		Name:       opCreateRoom,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/rooms",
	}

	if input == nil {
		input = &CreateRoomInput{}
	}

	output = &CreateRoomOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateRoom API operation for Amazon Chime.
//
// Creates a chat room for the specified Amazon Chime Enterprise account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateRoom for usage and error information.
//
// Returned Error Types:
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateRoom
func (c *Chime) CreateRoom(input *CreateRoomInput) (*CreateRoomOutput, error) {
	req, out := c.CreateRoomRequest(input)
	return out, req.Send()
}

// CreateRoomWithContext is the same as CreateRoom with the addition of
// the ability to pass a context and additional request options.
//
// See CreateRoom for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) CreateRoomWithContext(ctx aws.Context, input *CreateRoomInput, opts ...request.Option) (*CreateRoomOutput, error) {
	req, out := c.CreateRoomRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateRoomMembership = "CreateRoomMembership"

// CreateRoomMembershipRequest generates a "aws/request.Request" representing the
// client's request for the CreateRoomMembership operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateRoomMembership for more information on using the CreateRoomMembership
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateRoomMembershipRequest method.
//	req, resp := client.CreateRoomMembershipRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateRoomMembership
func (c *Chime) CreateRoomMembershipRequest(input *CreateRoomMembershipInput) (req *request.Request, output *CreateRoomMembershipOutput) {
	op := &request.Operation{
		Name:       opCreateRoomMembership,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/rooms/{roomId}/memberships",
	}

	if input == nil {
		input = &CreateRoomMembershipInput{}
	}

	output = &CreateRoomMembershipOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateRoomMembership API operation for Amazon Chime.
//
// Adds a member to a chat room in an Amazon Chime Enterprise account. A member
// can be either a user or a bot. The member role designates whether the member
// is a chat room administrator or a general chat room member.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateRoomMembership for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateRoomMembership
func (c *Chime) CreateRoomMembership(input *CreateRoomMembershipInput) (*CreateRoomMembershipOutput, error) {
	req, out := c.CreateRoomMembershipRequest(input)
	return out, req.Send()
}

// CreateRoomMembershipWithContext is the same as CreateRoomMembership with the addition of
// the ability to pass a context and additional request options.
//
// See CreateRoomMembership for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) CreateRoomMembershipWithContext(ctx aws.Context, input *CreateRoomMembershipInput, opts ...request.Option) (*CreateRoomMembershipOutput, error) {
	req, out := c.CreateRoomMembershipRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateSipMediaApplication = "CreateSipMediaApplication"

// CreateSipMediaApplicationRequest generates a "aws/request.Request" representing the
// client's request for the CreateSipMediaApplication operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateSipMediaApplication for more information on using the CreateSipMediaApplication
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateSipMediaApplicationRequest method.
//	req, resp := client.CreateSipMediaApplicationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateSipMediaApplication
//
// Deprecated: Replaced by CreateSipMediaApplication in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateSipMediaApplicationRequest(input *CreateSipMediaApplicationInput) (req *request.Request, output *CreateSipMediaApplicationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateSipMediaApplication, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateSipMediaApplication,
		HTTPMethod: "POST",
		HTTPPath:   "/sip-media-applications",
	}

	if input == nil {
		input = &CreateSipMediaApplicationInput{}
	}

	output = &CreateSipMediaApplicationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateSipMediaApplication API operation for Amazon Chime.
//
// Creates a SIP media application.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateSipMediaApplication (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplication.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateSipMediaApplication for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateSipMediaApplication
//
// Deprecated: Replaced by CreateSipMediaApplication in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateSipMediaApplication(input *CreateSipMediaApplicationInput) (*CreateSipMediaApplicationOutput, error) {
	req, out := c.CreateSipMediaApplicationRequest(input)
	return out, req.Send()
}

// CreateSipMediaApplicationWithContext is the same as CreateSipMediaApplication with the addition of
// the ability to pass a context and additional request options.
//
// See CreateSipMediaApplication for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateSipMediaApplication in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateSipMediaApplicationWithContext(ctx aws.Context, input *CreateSipMediaApplicationInput, opts ...request.Option) (*CreateSipMediaApplicationOutput, error) {
	req, out := c.CreateSipMediaApplicationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateSipMediaApplicationCall = "CreateSipMediaApplicationCall"

// CreateSipMediaApplicationCallRequest generates a "aws/request.Request" representing the
// client's request for the CreateSipMediaApplicationCall operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateSipMediaApplicationCall for more information on using the CreateSipMediaApplicationCall
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateSipMediaApplicationCallRequest method.
//	req, resp := client.CreateSipMediaApplicationCallRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateSipMediaApplicationCall
//
// Deprecated: Replaced by CreateSipMediaApplicationCall in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateSipMediaApplicationCallRequest(input *CreateSipMediaApplicationCallInput) (req *request.Request, output *CreateSipMediaApplicationCallOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateSipMediaApplicationCall, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateSipMediaApplicationCall,
		HTTPMethod: "POST",
		HTTPPath:   "/sip-media-applications/{sipMediaApplicationId}/calls",
	}

	if input == nil {
		input = &CreateSipMediaApplicationCallInput{}
	}

	output = &CreateSipMediaApplicationCallOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateSipMediaApplicationCall API operation for Amazon Chime.
//
// Creates an outbound call to a phone number from the phone number specified
// in the request, and it invokes the endpoint of the specified sipMediaApplicationId.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateSipMediaApplicationCall (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateSipMediaApplicationCall for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateSipMediaApplicationCall
//
// Deprecated: Replaced by CreateSipMediaApplicationCall in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateSipMediaApplicationCall(input *CreateSipMediaApplicationCallInput) (*CreateSipMediaApplicationCallOutput, error) {
	req, out := c.CreateSipMediaApplicationCallRequest(input)
	return out, req.Send()
}

// CreateSipMediaApplicationCallWithContext is the same as CreateSipMediaApplicationCall with the addition of
// the ability to pass a context and additional request options.
//
// See CreateSipMediaApplicationCall for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateSipMediaApplicationCall in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateSipMediaApplicationCallWithContext(ctx aws.Context, input *CreateSipMediaApplicationCallInput, opts ...request.Option) (*CreateSipMediaApplicationCallOutput, error) {
	req, out := c.CreateSipMediaApplicationCallRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateSipRule = "CreateSipRule"

// CreateSipRuleRequest generates a "aws/request.Request" representing the
// client's request for the CreateSipRule operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateSipRule for more information on using the CreateSipRule
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateSipRuleRequest method.
//	req, resp := client.CreateSipRuleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateSipRule
//
// Deprecated: Replaced by CreateSipRule in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateSipRuleRequest(input *CreateSipRuleInput) (req *request.Request, output *CreateSipRuleOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateSipRule, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateSipRule,
		HTTPMethod: "POST",
		HTTPPath:   "/sip-rules",
	}

	if input == nil {
		input = &CreateSipRuleInput{}
	}

	output = &CreateSipRuleOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateSipRule API operation for Amazon Chime.
//
// Creates a SIP rule which can be used to run a SIP media application as a
// target for a specific trigger type.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateSipRule (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipRule.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateSipRule for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateSipRule
//
// Deprecated: Replaced by CreateSipRule in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateSipRule(input *CreateSipRuleInput) (*CreateSipRuleOutput, error) {
	req, out := c.CreateSipRuleRequest(input)
	return out, req.Send()
}

// CreateSipRuleWithContext is the same as CreateSipRule with the addition of
// the ability to pass a context and additional request options.
//
// See CreateSipRule for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateSipRule in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateSipRuleWithContext(ctx aws.Context, input *CreateSipRuleInput, opts ...request.Option) (*CreateSipRuleOutput, error) {
	req, out := c.CreateSipRuleRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateUser = "CreateUser"

// CreateUserRequest generates a "aws/request.Request" representing the
// client's request for the CreateUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateUser for more information on using the CreateUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateUserRequest method.
//	req, resp := client.CreateUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateUser
func (c *Chime) CreateUserRequest(input *CreateUserInput) (req *request.Request, output *CreateUserOutput) {
	op := &request.Operation{
		Name:       opCreateUser,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/users?operation=create",
	}

	if input == nil {
		input = &CreateUserInput{}
	}

	output = &CreateUserOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateUser API operation for Amazon Chime.
//
// Creates a user under the specified Amazon Chime account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateUser for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateUser
func (c *Chime) CreateUser(input *CreateUserInput) (*CreateUserOutput, error) {
	req, out := c.CreateUserRequest(input)
	return out, req.Send()
}

// CreateUserWithContext is the same as CreateUser with the addition of
// the ability to pass a context and additional request options.
//
// See CreateUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) CreateUserWithContext(ctx aws.Context, input *CreateUserInput, opts ...request.Option) (*CreateUserOutput, error) {
	req, out := c.CreateUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateVoiceConnector = "CreateVoiceConnector"

// CreateVoiceConnectorRequest generates a "aws/request.Request" representing the
// client's request for the CreateVoiceConnector operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateVoiceConnector for more information on using the CreateVoiceConnector
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateVoiceConnectorRequest method.
//	req, resp := client.CreateVoiceConnectorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateVoiceConnector
//
// Deprecated: Replaced by CreateVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateVoiceConnectorRequest(input *CreateVoiceConnectorInput) (req *request.Request, output *CreateVoiceConnectorOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateVoiceConnector, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateVoiceConnector,
		HTTPMethod: "POST",
		HTTPPath:   "/voice-connectors",
	}

	if input == nil {
		input = &CreateVoiceConnectorInput{}
	}

	output = &CreateVoiceConnectorOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateVoiceConnector API operation for Amazon Chime.
//
// Creates an Amazon Chime Voice Connector under the administrator's AWS account.
// You can choose to create an Amazon Chime Voice Connector in a specific AWS
// Region.
//
// Enabling CreateVoiceConnectorRequest$RequireEncryption configures your Amazon
// Chime Voice Connector to use TLS transport for SIP signaling and Secure RTP
// (SRTP) for media. Inbound calls use TLS transport, and unencrypted outbound
// calls are blocked.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateVoiceConnector (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateVoiceConnector.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateVoiceConnector for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateVoiceConnector
//
// Deprecated: Replaced by CreateVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateVoiceConnector(input *CreateVoiceConnectorInput) (*CreateVoiceConnectorOutput, error) {
	req, out := c.CreateVoiceConnectorRequest(input)
	return out, req.Send()
}

// CreateVoiceConnectorWithContext is the same as CreateVoiceConnector with the addition of
// the ability to pass a context and additional request options.
//
// See CreateVoiceConnector for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateVoiceConnectorWithContext(ctx aws.Context, input *CreateVoiceConnectorInput, opts ...request.Option) (*CreateVoiceConnectorOutput, error) {
	req, out := c.CreateVoiceConnectorRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateVoiceConnectorGroup = "CreateVoiceConnectorGroup"

// CreateVoiceConnectorGroupRequest generates a "aws/request.Request" representing the
// client's request for the CreateVoiceConnectorGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateVoiceConnectorGroup for more information on using the CreateVoiceConnectorGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateVoiceConnectorGroupRequest method.
//	req, resp := client.CreateVoiceConnectorGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateVoiceConnectorGroup
//
// Deprecated: Replaced by CreateVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateVoiceConnectorGroupRequest(input *CreateVoiceConnectorGroupInput) (req *request.Request, output *CreateVoiceConnectorGroupOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, CreateVoiceConnectorGroup, has been deprecated")
	}
	op := &request.Operation{
		Name:       opCreateVoiceConnectorGroup,
		HTTPMethod: "POST",
		HTTPPath:   "/voice-connector-groups",
	}

	if input == nil {
		input = &CreateVoiceConnectorGroupInput{}
	}

	output = &CreateVoiceConnectorGroupOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateVoiceConnectorGroup API operation for Amazon Chime.
//
// Creates an Amazon Chime Voice Connector group under the administrator's AWS
// account. You can associate Amazon Chime Voice Connectors with the Amazon
// Chime Voice Connector group by including VoiceConnectorItems in the request.
//
// You can include Amazon Chime Voice Connectors from different AWS Regions
// in your group. This creates a fault tolerant mechanism for fallback in case
// of availability events.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, CreateVoiceConnectorGroup (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateVoiceConnectorGroup.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation CreateVoiceConnectorGroup for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/CreateVoiceConnectorGroup
//
// Deprecated: Replaced by CreateVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateVoiceConnectorGroup(input *CreateVoiceConnectorGroupInput) (*CreateVoiceConnectorGroupOutput, error) {
	req, out := c.CreateVoiceConnectorGroupRequest(input)
	return out, req.Send()
}

// CreateVoiceConnectorGroupWithContext is the same as CreateVoiceConnectorGroup with the addition of
// the ability to pass a context and additional request options.
//
// See CreateVoiceConnectorGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by CreateVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) CreateVoiceConnectorGroupWithContext(ctx aws.Context, input *CreateVoiceConnectorGroupInput, opts ...request.Option) (*CreateVoiceConnectorGroupOutput, error) {
	req, out := c.CreateVoiceConnectorGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAccount = "DeleteAccount"

// DeleteAccountRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAccount operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteAccount for more information on using the DeleteAccount
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteAccountRequest method.
//	req, resp := client.DeleteAccountRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteAccount
func (c *Chime) DeleteAccountRequest(input *DeleteAccountInput) (req *request.Request, output *DeleteAccountOutput) {
	op := &request.Operation{
		Name:       opDeleteAccount,
		HTTPMethod: "DELETE",
		HTTPPath:   "/accounts/{accountId}",
	}

	if input == nil {
		input = &DeleteAccountInput{}
	}

	output = &DeleteAccountOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteAccount API operation for Amazon Chime.
//
// Deletes the specified Amazon Chime account. You must suspend all users before
// deleting Team account. You can use the BatchSuspendUser action to dodo.
//
// For EnterpriseLWA and EnterpriseAD accounts, you must release the claimed
// domains for your Amazon Chime account before deletion. As soon as you release
// the domain, all users under that account are suspended.
//
// Deleted accounts appear in your Disabled accounts list for 90 days. To restore
// deleted account from your Disabled accounts list, you must contact AWS Support.
//
// After 90 days, deleted accounts are permanently removed from your Disabled
// accounts list.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteAccount for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnprocessableEntityException
//     The request was well-formed but was unable to be followed due to semantic
//     errors.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteAccount
func (c *Chime) DeleteAccount(input *DeleteAccountInput) (*DeleteAccountOutput, error) {
	req, out := c.DeleteAccountRequest(input)
	return out, req.Send()
}

// DeleteAccountWithContext is the same as DeleteAccount with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAccount for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) DeleteAccountWithContext(ctx aws.Context, input *DeleteAccountInput, opts ...request.Option) (*DeleteAccountOutput, error) {
	req, out := c.DeleteAccountRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAppInstance = "DeleteAppInstance"

// DeleteAppInstanceRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAppInstance operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteAppInstance for more information on using the DeleteAppInstance
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteAppInstanceRequest method.
//	req, resp := client.DeleteAppInstanceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteAppInstance
//
// Deprecated: Replaced by DeleteAppInstance in the Amazon Chime SDK Identity Namespace
func (c *Chime) DeleteAppInstanceRequest(input *DeleteAppInstanceInput) (req *request.Request, output *DeleteAppInstanceOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteAppInstance, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteAppInstance,
		HTTPMethod: "DELETE",
		HTTPPath:   "/app-instances/{appInstanceArn}",
	}

	if input == nil {
		input = &DeleteAppInstanceInput{}
	}

	output = &DeleteAppInstanceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DeleteAppInstance API operation for Amazon Chime.
//
// Deletes an AppInstance and all associated data asynchronously.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteAppInstance (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_DeleteAppInstance.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteAppInstance for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteAppInstance
//
// Deprecated: Replaced by DeleteAppInstance in the Amazon Chime SDK Identity Namespace
func (c *Chime) DeleteAppInstance(input *DeleteAppInstanceInput) (*DeleteAppInstanceOutput, error) {
	req, out := c.DeleteAppInstanceRequest(input)
	return out, req.Send()
}

// DeleteAppInstanceWithContext is the same as DeleteAppInstance with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAppInstance for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteAppInstance in the Amazon Chime SDK Identity Namespace
func (c *Chime) DeleteAppInstanceWithContext(ctx aws.Context, input *DeleteAppInstanceInput, opts ...request.Option) (*DeleteAppInstanceOutput, error) {
	req, out := c.DeleteAppInstanceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAppInstanceAdmin = "DeleteAppInstanceAdmin"

// DeleteAppInstanceAdminRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAppInstanceAdmin operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteAppInstanceAdmin for more information on using the DeleteAppInstanceAdmin
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteAppInstanceAdminRequest method.
//	req, resp := client.DeleteAppInstanceAdminRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteAppInstanceAdmin
//
// Deprecated: Replaced by DeleteAppInstanceAdmin in the Amazon Chime SDK Identity Namespace
func (c *Chime) DeleteAppInstanceAdminRequest(input *DeleteAppInstanceAdminInput) (req *request.Request, output *DeleteAppInstanceAdminOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteAppInstanceAdmin, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteAppInstanceAdmin,
		HTTPMethod: "DELETE",
		HTTPPath:   "/app-instances/{appInstanceArn}/admins/{appInstanceAdminArn}",
	}

	if input == nil {
		input = &DeleteAppInstanceAdminInput{}
	}

	output = &DeleteAppInstanceAdminOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DeleteAppInstanceAdmin API operation for Amazon Chime.
//
// Demotes an AppInstanceAdmin to an AppInstanceUser. This action does not delete
// the user.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteAppInstanceAdmin (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_DeleteAppInstanceAdmin.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteAppInstanceAdmin for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteAppInstanceAdmin
//
// Deprecated: Replaced by DeleteAppInstanceAdmin in the Amazon Chime SDK Identity Namespace
func (c *Chime) DeleteAppInstanceAdmin(input *DeleteAppInstanceAdminInput) (*DeleteAppInstanceAdminOutput, error) {
	req, out := c.DeleteAppInstanceAdminRequest(input)
	return out, req.Send()
}

// DeleteAppInstanceAdminWithContext is the same as DeleteAppInstanceAdmin with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAppInstanceAdmin for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteAppInstanceAdmin in the Amazon Chime SDK Identity Namespace
func (c *Chime) DeleteAppInstanceAdminWithContext(ctx aws.Context, input *DeleteAppInstanceAdminInput, opts ...request.Option) (*DeleteAppInstanceAdminOutput, error) {
	req, out := c.DeleteAppInstanceAdminRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAppInstanceStreamingConfigurations = "DeleteAppInstanceStreamingConfigurations"

// DeleteAppInstanceStreamingConfigurationsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAppInstanceStreamingConfigurations operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteAppInstanceStreamingConfigurations for more information on using the DeleteAppInstanceStreamingConfigurations
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteAppInstanceStreamingConfigurationsRequest method.
//	req, resp := client.DeleteAppInstanceStreamingConfigurationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteAppInstanceStreamingConfigurations
//
// Deprecated: Replaced by DeleteAppInstanceStreamingConfigurations in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteAppInstanceStreamingConfigurationsRequest(input *DeleteAppInstanceStreamingConfigurationsInput) (req *request.Request, output *DeleteAppInstanceStreamingConfigurationsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteAppInstanceStreamingConfigurations, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteAppInstanceStreamingConfigurations,
		HTTPMethod: "DELETE",
		HTTPPath:   "/app-instances/{appInstanceArn}/streaming-configurations",
	}

	if input == nil {
		input = &DeleteAppInstanceStreamingConfigurationsInput{}
	}

	output = &DeleteAppInstanceStreamingConfigurationsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteAppInstanceStreamingConfigurations API operation for Amazon Chime.
//
// Deletes the streaming configurations of an AppInstance.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteAppInstanceStreamingConfigurations (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_DeleteAppInstanceStreamingConfigurations.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteAppInstanceStreamingConfigurations for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteAppInstanceStreamingConfigurations
//
// Deprecated: Replaced by DeleteAppInstanceStreamingConfigurations in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteAppInstanceStreamingConfigurations(input *DeleteAppInstanceStreamingConfigurationsInput) (*DeleteAppInstanceStreamingConfigurationsOutput, error) {
	req, out := c.DeleteAppInstanceStreamingConfigurationsRequest(input)
	return out, req.Send()
}

// DeleteAppInstanceStreamingConfigurationsWithContext is the same as DeleteAppInstanceStreamingConfigurations with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAppInstanceStreamingConfigurations for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteAppInstanceStreamingConfigurations in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteAppInstanceStreamingConfigurationsWithContext(ctx aws.Context, input *DeleteAppInstanceStreamingConfigurationsInput, opts ...request.Option) (*DeleteAppInstanceStreamingConfigurationsOutput, error) {
	req, out := c.DeleteAppInstanceStreamingConfigurationsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAppInstanceUser = "DeleteAppInstanceUser"

// DeleteAppInstanceUserRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAppInstanceUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteAppInstanceUser for more information on using the DeleteAppInstanceUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteAppInstanceUserRequest method.
//	req, resp := client.DeleteAppInstanceUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteAppInstanceUser
//
// Deprecated: Replaced by DeleteAppInstanceUser in the Amazon Chime SDK Identity Namespace
func (c *Chime) DeleteAppInstanceUserRequest(input *DeleteAppInstanceUserInput) (req *request.Request, output *DeleteAppInstanceUserOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteAppInstanceUser, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteAppInstanceUser,
		HTTPMethod: "DELETE",
		HTTPPath:   "/app-instance-users/{appInstanceUserArn}",
	}

	if input == nil {
		input = &DeleteAppInstanceUserInput{}
	}

	output = &DeleteAppInstanceUserOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DeleteAppInstanceUser API operation for Amazon Chime.
//
// Deletes an AppInstanceUser.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteAppInstanceUser (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_DeleteAppInstanceUser.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteAppInstanceUser for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteAppInstanceUser
//
// Deprecated: Replaced by DeleteAppInstanceUser in the Amazon Chime SDK Identity Namespace
func (c *Chime) DeleteAppInstanceUser(input *DeleteAppInstanceUserInput) (*DeleteAppInstanceUserOutput, error) {
	req, out := c.DeleteAppInstanceUserRequest(input)
	return out, req.Send()
}

// DeleteAppInstanceUserWithContext is the same as DeleteAppInstanceUser with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAppInstanceUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteAppInstanceUser in the Amazon Chime SDK Identity Namespace
func (c *Chime) DeleteAppInstanceUserWithContext(ctx aws.Context, input *DeleteAppInstanceUserInput, opts ...request.Option) (*DeleteAppInstanceUserOutput, error) {
	req, out := c.DeleteAppInstanceUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAttendee = "DeleteAttendee"

// DeleteAttendeeRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAttendee operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteAttendee for more information on using the DeleteAttendee
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteAttendeeRequest method.
//	req, resp := client.DeleteAttendeeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteAttendee
//
// Deprecated: Replaced by DeleteAttendee in the Amazon Chime SDK Meetings Namespace
func (c *Chime) DeleteAttendeeRequest(input *DeleteAttendeeInput) (req *request.Request, output *DeleteAttendeeOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteAttendee, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteAttendee,
		HTTPMethod: "DELETE",
		HTTPPath:   "/meetings/{meetingId}/attendees/{attendeeId}",
	}

	if input == nil {
		input = &DeleteAttendeeInput{}
	}

	output = &DeleteAttendeeOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteAttendee API operation for Amazon Chime.
//
// Deletes an attendee from the specified Amazon Chime SDK meeting and deletes
// their JoinToken. Attendees are automatically deleted when a Amazon Chime
// SDK meeting is deleted. For more information about the Amazon Chime SDK,
// see Using the Amazon Chime SDK (https://docs.aws.amazon.com/chime-sdk/latest/dg/meetings-sdk.html)
// in the Amazon Chime SDK Developer Guide.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteAttendee (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteAttendee.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteAttendee for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteAttendee
//
// Deprecated: Replaced by DeleteAttendee in the Amazon Chime SDK Meetings Namespace
func (c *Chime) DeleteAttendee(input *DeleteAttendeeInput) (*DeleteAttendeeOutput, error) {
	req, out := c.DeleteAttendeeRequest(input)
	return out, req.Send()
}

// DeleteAttendeeWithContext is the same as DeleteAttendee with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAttendee for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteAttendee in the Amazon Chime SDK Meetings Namespace
func (c *Chime) DeleteAttendeeWithContext(ctx aws.Context, input *DeleteAttendeeInput, opts ...request.Option) (*DeleteAttendeeOutput, error) {
	req, out := c.DeleteAttendeeRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteChannel = "DeleteChannel"

// DeleteChannelRequest generates a "aws/request.Request" representing the
// client's request for the DeleteChannel operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteChannel for more information on using the DeleteChannel
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteChannelRequest method.
//	req, resp := client.DeleteChannelRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteChannel
//
// Deprecated: Replaced by DeleteChannel in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelRequest(input *DeleteChannelInput) (req *request.Request, output *DeleteChannelOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteChannel, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteChannel,
		HTTPMethod: "DELETE",
		HTTPPath:   "/channels/{channelArn}",
	}

	if input == nil {
		input = &DeleteChannelInput{}
	}

	output = &DeleteChannelOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DeleteChannel API operation for Amazon Chime.
//
// Immediately makes a channel and its memberships inaccessible and marks them
// for deletion. This is an irreversible process.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteChannel (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DeleteChannel.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteChannel for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteChannel
//
// Deprecated: Replaced by DeleteChannel in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannel(input *DeleteChannelInput) (*DeleteChannelOutput, error) {
	req, out := c.DeleteChannelRequest(input)
	return out, req.Send()
}

// DeleteChannelWithContext is the same as DeleteChannel with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteChannel for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteChannel in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelWithContext(ctx aws.Context, input *DeleteChannelInput, opts ...request.Option) (*DeleteChannelOutput, error) {
	req, out := c.DeleteChannelRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteChannelBan = "DeleteChannelBan"

// DeleteChannelBanRequest generates a "aws/request.Request" representing the
// client's request for the DeleteChannelBan operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteChannelBan for more information on using the DeleteChannelBan
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteChannelBanRequest method.
//	req, resp := client.DeleteChannelBanRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteChannelBan
//
// Deprecated: Replaced by DeleteChannelBan in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelBanRequest(input *DeleteChannelBanInput) (req *request.Request, output *DeleteChannelBanOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteChannelBan, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteChannelBan,
		HTTPMethod: "DELETE",
		HTTPPath:   "/channels/{channelArn}/bans/{memberArn}",
	}

	if input == nil {
		input = &DeleteChannelBanInput{}
	}

	output = &DeleteChannelBanOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DeleteChannelBan API operation for Amazon Chime.
//
// Removes a user from a channel's ban list.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteChannelBan (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DeleteChannelBan.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteChannelBan for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteChannelBan
//
// Deprecated: Replaced by DeleteChannelBan in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelBan(input *DeleteChannelBanInput) (*DeleteChannelBanOutput, error) {
	req, out := c.DeleteChannelBanRequest(input)
	return out, req.Send()
}

// DeleteChannelBanWithContext is the same as DeleteChannelBan with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteChannelBan for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteChannelBan in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelBanWithContext(ctx aws.Context, input *DeleteChannelBanInput, opts ...request.Option) (*DeleteChannelBanOutput, error) {
	req, out := c.DeleteChannelBanRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteChannelMembership = "DeleteChannelMembership"

// DeleteChannelMembershipRequest generates a "aws/request.Request" representing the
// client's request for the DeleteChannelMembership operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteChannelMembership for more information on using the DeleteChannelMembership
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteChannelMembershipRequest method.
//	req, resp := client.DeleteChannelMembershipRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteChannelMembership
//
// Deprecated: Replaced by DeleteChannelMembership in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelMembershipRequest(input *DeleteChannelMembershipInput) (req *request.Request, output *DeleteChannelMembershipOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteChannelMembership, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteChannelMembership,
		HTTPMethod: "DELETE",
		HTTPPath:   "/channels/{channelArn}/memberships/{memberArn}",
	}

	if input == nil {
		input = &DeleteChannelMembershipInput{}
	}

	output = &DeleteChannelMembershipOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DeleteChannelMembership API operation for Amazon Chime.
//
// Removes a member from a channel.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteChannelMembership (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DeleteChannelMembership.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteChannelMembership for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteChannelMembership
//
// Deprecated: Replaced by DeleteChannelMembership in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelMembership(input *DeleteChannelMembershipInput) (*DeleteChannelMembershipOutput, error) {
	req, out := c.DeleteChannelMembershipRequest(input)
	return out, req.Send()
}

// DeleteChannelMembershipWithContext is the same as DeleteChannelMembership with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteChannelMembership for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteChannelMembership in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelMembershipWithContext(ctx aws.Context, input *DeleteChannelMembershipInput, opts ...request.Option) (*DeleteChannelMembershipOutput, error) {
	req, out := c.DeleteChannelMembershipRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteChannelMessage = "DeleteChannelMessage"

// DeleteChannelMessageRequest generates a "aws/request.Request" representing the
// client's request for the DeleteChannelMessage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteChannelMessage for more information on using the DeleteChannelMessage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteChannelMessageRequest method.
//	req, resp := client.DeleteChannelMessageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteChannelMessage
//
// Deprecated: Replaced by DeleteChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelMessageRequest(input *DeleteChannelMessageInput) (req *request.Request, output *DeleteChannelMessageOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteChannelMessage, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteChannelMessage,
		HTTPMethod: "DELETE",
		HTTPPath:   "/channels/{channelArn}/messages/{messageId}",
	}

	if input == nil {
		input = &DeleteChannelMessageInput{}
	}

	output = &DeleteChannelMessageOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DeleteChannelMessage API operation for Amazon Chime.
//
// Deletes a channel message. Only admins can perform this action. Deletion
// makes messages inaccessible immediately. A background process deletes any
// revisions created by UpdateChannelMessage.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteChannelMessage (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DeleteChannelMessage.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteChannelMessage for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteChannelMessage
//
// Deprecated: Replaced by DeleteChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelMessage(input *DeleteChannelMessageInput) (*DeleteChannelMessageOutput, error) {
	req, out := c.DeleteChannelMessageRequest(input)
	return out, req.Send()
}

// DeleteChannelMessageWithContext is the same as DeleteChannelMessage with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteChannelMessage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelMessageWithContext(ctx aws.Context, input *DeleteChannelMessageInput, opts ...request.Option) (*DeleteChannelMessageOutput, error) {
	req, out := c.DeleteChannelMessageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteChannelModerator = "DeleteChannelModerator"

// DeleteChannelModeratorRequest generates a "aws/request.Request" representing the
// client's request for the DeleteChannelModerator operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteChannelModerator for more information on using the DeleteChannelModerator
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteChannelModeratorRequest method.
//	req, resp := client.DeleteChannelModeratorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteChannelModerator
//
// Deprecated: Replaced by DeleteChannelModerator in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelModeratorRequest(input *DeleteChannelModeratorInput) (req *request.Request, output *DeleteChannelModeratorOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteChannelModerator, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteChannelModerator,
		HTTPMethod: "DELETE",
		HTTPPath:   "/channels/{channelArn}/moderators/{channelModeratorArn}",
	}

	if input == nil {
		input = &DeleteChannelModeratorInput{}
	}

	output = &DeleteChannelModeratorOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DeleteChannelModerator API operation for Amazon Chime.
//
// Deletes a channel moderator.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteChannelModerator (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DeleteChannelModerator.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteChannelModerator for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteChannelModerator
//
// Deprecated: Replaced by DeleteChannelModerator in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelModerator(input *DeleteChannelModeratorInput) (*DeleteChannelModeratorOutput, error) {
	req, out := c.DeleteChannelModeratorRequest(input)
	return out, req.Send()
}

// DeleteChannelModeratorWithContext is the same as DeleteChannelModerator with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteChannelModerator for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteChannelModerator in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DeleteChannelModeratorWithContext(ctx aws.Context, input *DeleteChannelModeratorInput, opts ...request.Option) (*DeleteChannelModeratorOutput, error) {
	req, out := c.DeleteChannelModeratorRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteEventsConfiguration = "DeleteEventsConfiguration"

// DeleteEventsConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteEventsConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteEventsConfiguration for more information on using the DeleteEventsConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteEventsConfigurationRequest method.
//	req, resp := client.DeleteEventsConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteEventsConfiguration
func (c *Chime) DeleteEventsConfigurationRequest(input *DeleteEventsConfigurationInput) (req *request.Request, output *DeleteEventsConfigurationOutput) {
	op := &request.Operation{
		Name:       opDeleteEventsConfiguration,
		HTTPMethod: "DELETE",
		HTTPPath:   "/accounts/{accountId}/bots/{botId}/events-configuration",
	}

	if input == nil {
		input = &DeleteEventsConfigurationInput{}
	}

	output = &DeleteEventsConfigurationOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteEventsConfiguration API operation for Amazon Chime.
//
// Deletes the events configuration that allows a bot to receive outgoing events.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteEventsConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteEventsConfiguration
func (c *Chime) DeleteEventsConfiguration(input *DeleteEventsConfigurationInput) (*DeleteEventsConfigurationOutput, error) {
	req, out := c.DeleteEventsConfigurationRequest(input)
	return out, req.Send()
}

// DeleteEventsConfigurationWithContext is the same as DeleteEventsConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteEventsConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) DeleteEventsConfigurationWithContext(ctx aws.Context, input *DeleteEventsConfigurationInput, opts ...request.Option) (*DeleteEventsConfigurationOutput, error) {
	req, out := c.DeleteEventsConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteMediaCapturePipeline = "DeleteMediaCapturePipeline"

// DeleteMediaCapturePipelineRequest generates a "aws/request.Request" representing the
// client's request for the DeleteMediaCapturePipeline operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteMediaCapturePipeline for more information on using the DeleteMediaCapturePipeline
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteMediaCapturePipelineRequest method.
//	req, resp := client.DeleteMediaCapturePipelineRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteMediaCapturePipeline
//
// Deprecated: Replaced by DeleteMediaCapturePipeline in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) DeleteMediaCapturePipelineRequest(input *DeleteMediaCapturePipelineInput) (req *request.Request, output *DeleteMediaCapturePipelineOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteMediaCapturePipeline, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteMediaCapturePipeline,
		HTTPMethod: "DELETE",
		HTTPPath:   "/media-capture-pipelines/{mediaPipelineId}",
	}

	if input == nil {
		input = &DeleteMediaCapturePipelineInput{}
	}

	output = &DeleteMediaCapturePipelineOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteMediaCapturePipeline API operation for Amazon Chime.
//
// Deletes the media capture pipeline.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteMediaCapturePipeline (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaCapturePipeline.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteMediaCapturePipeline for usage and error information.
//
// Returned Error Types:
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteMediaCapturePipeline
//
// Deprecated: Replaced by DeleteMediaCapturePipeline in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) DeleteMediaCapturePipeline(input *DeleteMediaCapturePipelineInput) (*DeleteMediaCapturePipelineOutput, error) {
	req, out := c.DeleteMediaCapturePipelineRequest(input)
	return out, req.Send()
}

// DeleteMediaCapturePipelineWithContext is the same as DeleteMediaCapturePipeline with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteMediaCapturePipeline for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteMediaCapturePipeline in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) DeleteMediaCapturePipelineWithContext(ctx aws.Context, input *DeleteMediaCapturePipelineInput, opts ...request.Option) (*DeleteMediaCapturePipelineOutput, error) {
	req, out := c.DeleteMediaCapturePipelineRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteMeeting = "DeleteMeeting"

// DeleteMeetingRequest generates a "aws/request.Request" representing the
// client's request for the DeleteMeeting operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteMeeting for more information on using the DeleteMeeting
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteMeetingRequest method.
//	req, resp := client.DeleteMeetingRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteMeeting
//
// Deprecated: Replaced by DeleteMeeting in the Amazon Chime SDK Meetings Namespace
func (c *Chime) DeleteMeetingRequest(input *DeleteMeetingInput) (req *request.Request, output *DeleteMeetingOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteMeeting, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteMeeting,
		HTTPMethod: "DELETE",
		HTTPPath:   "/meetings/{meetingId}",
	}

	if input == nil {
		input = &DeleteMeetingInput{}
	}

	output = &DeleteMeetingOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteMeeting API operation for Amazon Chime.
//
// Deletes the specified Amazon Chime SDK meeting. The operation deletes all
// attendees, disconnects all clients, and prevents new clients from joining
// the meeting. For more information about the Amazon Chime SDK, see Using the
// Amazon Chime SDK (https://docs.aws.amazon.com/chime-sdk/latest/dg/meetings-sdk.html)
// in the Amazon Chime SDK Developer Guide.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteMeeting (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteMeeting.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteMeeting for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteMeeting
//
// Deprecated: Replaced by DeleteMeeting in the Amazon Chime SDK Meetings Namespace
func (c *Chime) DeleteMeeting(input *DeleteMeetingInput) (*DeleteMeetingOutput, error) {
	req, out := c.DeleteMeetingRequest(input)
	return out, req.Send()
}

// DeleteMeetingWithContext is the same as DeleteMeeting with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteMeeting for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteMeeting in the Amazon Chime SDK Meetings Namespace
func (c *Chime) DeleteMeetingWithContext(ctx aws.Context, input *DeleteMeetingInput, opts ...request.Option) (*DeleteMeetingOutput, error) {
	req, out := c.DeleteMeetingRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeletePhoneNumber = "DeletePhoneNumber"

// DeletePhoneNumberRequest generates a "aws/request.Request" representing the
// client's request for the DeletePhoneNumber operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeletePhoneNumber for more information on using the DeletePhoneNumber
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeletePhoneNumberRequest method.
//	req, resp := client.DeletePhoneNumberRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeletePhoneNumber
func (c *Chime) DeletePhoneNumberRequest(input *DeletePhoneNumberInput) (req *request.Request, output *DeletePhoneNumberOutput) {
	op := &request.Operation{
		Name:       opDeletePhoneNumber,
		HTTPMethod: "DELETE",
		HTTPPath:   "/phone-numbers/{phoneNumberId}",
	}

	if input == nil {
		input = &DeletePhoneNumberInput{}
	}

	output = &DeletePhoneNumberOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeletePhoneNumber API operation for Amazon Chime.
//
// Moves the specified phone number into the Deletion queue. A phone number
// must be disassociated from any users or Amazon Chime Voice Connectors before
// it can be deleted.
//
// Deleted phone numbers remain in the Deletion queue for 7 days before they
// are deleted permanently.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeletePhoneNumber for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeletePhoneNumber
func (c *Chime) DeletePhoneNumber(input *DeletePhoneNumberInput) (*DeletePhoneNumberOutput, error) {
	req, out := c.DeletePhoneNumberRequest(input)
	return out, req.Send()
}

// DeletePhoneNumberWithContext is the same as DeletePhoneNumber with the addition of
// the ability to pass a context and additional request options.
//
// See DeletePhoneNumber for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) DeletePhoneNumberWithContext(ctx aws.Context, input *DeletePhoneNumberInput, opts ...request.Option) (*DeletePhoneNumberOutput, error) {
	req, out := c.DeletePhoneNumberRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteProxySession = "DeleteProxySession"

// DeleteProxySessionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteProxySession operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteProxySession for more information on using the DeleteProxySession
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteProxySessionRequest method.
//	req, resp := client.DeleteProxySessionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteProxySession
//
// Deprecated: Replaced by DeleteProxySession in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteProxySessionRequest(input *DeleteProxySessionInput) (req *request.Request, output *DeleteProxySessionOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteProxySession, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteProxySession,
		HTTPMethod: "DELETE",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/proxy-sessions/{proxySessionId}",
	}

	if input == nil {
		input = &DeleteProxySessionInput{}
	}

	output = &DeleteProxySessionOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteProxySession API operation for Amazon Chime.
//
// Deletes the specified proxy session from the specified Amazon Chime Voice
// Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteProxySession (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteProxySession.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteProxySession for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteProxySession
//
// Deprecated: Replaced by DeleteProxySession in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteProxySession(input *DeleteProxySessionInput) (*DeleteProxySessionOutput, error) {
	req, out := c.DeleteProxySessionRequest(input)
	return out, req.Send()
}

// DeleteProxySessionWithContext is the same as DeleteProxySession with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteProxySession for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteProxySession in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteProxySessionWithContext(ctx aws.Context, input *DeleteProxySessionInput, opts ...request.Option) (*DeleteProxySessionOutput, error) {
	req, out := c.DeleteProxySessionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteRoom = "DeleteRoom"

// DeleteRoomRequest generates a "aws/request.Request" representing the
// client's request for the DeleteRoom operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteRoom for more information on using the DeleteRoom
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteRoomRequest method.
//	req, resp := client.DeleteRoomRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteRoom
func (c *Chime) DeleteRoomRequest(input *DeleteRoomInput) (req *request.Request, output *DeleteRoomOutput) {
	op := &request.Operation{
		Name:       opDeleteRoom,
		HTTPMethod: "DELETE",
		HTTPPath:   "/accounts/{accountId}/rooms/{roomId}",
	}

	if input == nil {
		input = &DeleteRoomInput{}
	}

	output = &DeleteRoomOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteRoom API operation for Amazon Chime.
//
// Deletes a chat room in an Amazon Chime Enterprise account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteRoom for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteRoom
func (c *Chime) DeleteRoom(input *DeleteRoomInput) (*DeleteRoomOutput, error) {
	req, out := c.DeleteRoomRequest(input)
	return out, req.Send()
}

// DeleteRoomWithContext is the same as DeleteRoom with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteRoom for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) DeleteRoomWithContext(ctx aws.Context, input *DeleteRoomInput, opts ...request.Option) (*DeleteRoomOutput, error) {
	req, out := c.DeleteRoomRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteRoomMembership = "DeleteRoomMembership"

// DeleteRoomMembershipRequest generates a "aws/request.Request" representing the
// client's request for the DeleteRoomMembership operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteRoomMembership for more information on using the DeleteRoomMembership
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteRoomMembershipRequest method.
//	req, resp := client.DeleteRoomMembershipRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteRoomMembership
func (c *Chime) DeleteRoomMembershipRequest(input *DeleteRoomMembershipInput) (req *request.Request, output *DeleteRoomMembershipOutput) {
	op := &request.Operation{
		Name:       opDeleteRoomMembership,
		HTTPMethod: "DELETE",
		HTTPPath:   "/accounts/{accountId}/rooms/{roomId}/memberships/{memberId}",
	}

	if input == nil {
		input = &DeleteRoomMembershipInput{}
	}

	output = &DeleteRoomMembershipOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteRoomMembership API operation for Amazon Chime.
//
// Removes a member from a chat room in an Amazon Chime Enterprise account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteRoomMembership for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteRoomMembership
func (c *Chime) DeleteRoomMembership(input *DeleteRoomMembershipInput) (*DeleteRoomMembershipOutput, error) {
	req, out := c.DeleteRoomMembershipRequest(input)
	return out, req.Send()
}

// DeleteRoomMembershipWithContext is the same as DeleteRoomMembership with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteRoomMembership for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) DeleteRoomMembershipWithContext(ctx aws.Context, input *DeleteRoomMembershipInput, opts ...request.Option) (*DeleteRoomMembershipOutput, error) {
	req, out := c.DeleteRoomMembershipRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteSipMediaApplication = "DeleteSipMediaApplication"

// DeleteSipMediaApplicationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteSipMediaApplication operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteSipMediaApplication for more information on using the DeleteSipMediaApplication
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteSipMediaApplicationRequest method.
//	req, resp := client.DeleteSipMediaApplicationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteSipMediaApplication
//
// Deprecated: Replaced by DeleteSipMediaApplication in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteSipMediaApplicationRequest(input *DeleteSipMediaApplicationInput) (req *request.Request, output *DeleteSipMediaApplicationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteSipMediaApplication, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteSipMediaApplication,
		HTTPMethod: "DELETE",
		HTTPPath:   "/sip-media-applications/{sipMediaApplicationId}",
	}

	if input == nil {
		input = &DeleteSipMediaApplicationInput{}
	}

	output = &DeleteSipMediaApplicationOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteSipMediaApplication API operation for Amazon Chime.
//
// Deletes a SIP media application.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteSipMediaApplication (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteSipMediaApplication.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteSipMediaApplication for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteSipMediaApplication
//
// Deprecated: Replaced by DeleteSipMediaApplication in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteSipMediaApplication(input *DeleteSipMediaApplicationInput) (*DeleteSipMediaApplicationOutput, error) {
	req, out := c.DeleteSipMediaApplicationRequest(input)
	return out, req.Send()
}

// DeleteSipMediaApplicationWithContext is the same as DeleteSipMediaApplication with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteSipMediaApplication for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteSipMediaApplication in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteSipMediaApplicationWithContext(ctx aws.Context, input *DeleteSipMediaApplicationInput, opts ...request.Option) (*DeleteSipMediaApplicationOutput, error) {
	req, out := c.DeleteSipMediaApplicationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteSipRule = "DeleteSipRule"

// DeleteSipRuleRequest generates a "aws/request.Request" representing the
// client's request for the DeleteSipRule operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteSipRule for more information on using the DeleteSipRule
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteSipRuleRequest method.
//	req, resp := client.DeleteSipRuleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteSipRule
//
// Deprecated: Replaced by DeleteSipRule in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteSipRuleRequest(input *DeleteSipRuleInput) (req *request.Request, output *DeleteSipRuleOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteSipRule, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteSipRule,
		HTTPMethod: "DELETE",
		HTTPPath:   "/sip-rules/{sipRuleId}",
	}

	if input == nil {
		input = &DeleteSipRuleInput{}
	}

	output = &DeleteSipRuleOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteSipRule API operation for Amazon Chime.
//
// Deletes a SIP rule. You must disable a SIP rule before you can delete it.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteSipRule (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteSipRule.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteSipRule for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteSipRule
//
// Deprecated: Replaced by DeleteSipRule in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteSipRule(input *DeleteSipRuleInput) (*DeleteSipRuleOutput, error) {
	req, out := c.DeleteSipRuleRequest(input)
	return out, req.Send()
}

// DeleteSipRuleWithContext is the same as DeleteSipRule with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteSipRule for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteSipRule in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteSipRuleWithContext(ctx aws.Context, input *DeleteSipRuleInput, opts ...request.Option) (*DeleteSipRuleOutput, error) {
	req, out := c.DeleteSipRuleRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteVoiceConnector = "DeleteVoiceConnector"

// DeleteVoiceConnectorRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVoiceConnector operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteVoiceConnector for more information on using the DeleteVoiceConnector
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteVoiceConnectorRequest method.
//	req, resp := client.DeleteVoiceConnectorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnector
//
// Deprecated: Replaced by DeleteVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorRequest(input *DeleteVoiceConnectorInput) (req *request.Request, output *DeleteVoiceConnectorOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteVoiceConnector, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteVoiceConnector,
		HTTPMethod: "DELETE",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}",
	}

	if input == nil {
		input = &DeleteVoiceConnectorInput{}
	}

	output = &DeleteVoiceConnectorOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteVoiceConnector API operation for Amazon Chime.
//
// Deletes the specified Amazon Chime Voice Connector. Any phone numbers associated
// with the Amazon Chime Voice Connector must be disassociated from it before
// it can be deleted.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteVoiceConnector (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteVoiceConnector.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteVoiceConnector for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnector
//
// Deprecated: Replaced by DeleteVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnector(input *DeleteVoiceConnectorInput) (*DeleteVoiceConnectorOutput, error) {
	req, out := c.DeleteVoiceConnectorRequest(input)
	return out, req.Send()
}

// DeleteVoiceConnectorWithContext is the same as DeleteVoiceConnector with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteVoiceConnector for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorWithContext(ctx aws.Context, input *DeleteVoiceConnectorInput, opts ...request.Option) (*DeleteVoiceConnectorOutput, error) {
	req, out := c.DeleteVoiceConnectorRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteVoiceConnectorEmergencyCallingConfiguration = "DeleteVoiceConnectorEmergencyCallingConfiguration"

// DeleteVoiceConnectorEmergencyCallingConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVoiceConnectorEmergencyCallingConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteVoiceConnectorEmergencyCallingConfiguration for more information on using the DeleteVoiceConnectorEmergencyCallingConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteVoiceConnectorEmergencyCallingConfigurationRequest method.
//	req, resp := client.DeleteVoiceConnectorEmergencyCallingConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorEmergencyCallingConfiguration
//
// Deprecated: Replaced by DeleteVoiceConnectorEmergencyCallingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorEmergencyCallingConfigurationRequest(input *DeleteVoiceConnectorEmergencyCallingConfigurationInput) (req *request.Request, output *DeleteVoiceConnectorEmergencyCallingConfigurationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteVoiceConnectorEmergencyCallingConfiguration, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteVoiceConnectorEmergencyCallingConfiguration,
		HTTPMethod: "DELETE",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/emergency-calling-configuration",
	}

	if input == nil {
		input = &DeleteVoiceConnectorEmergencyCallingConfigurationInput{}
	}

	output = &DeleteVoiceConnectorEmergencyCallingConfigurationOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteVoiceConnectorEmergencyCallingConfiguration API operation for Amazon Chime.
//
// Deletes the emergency calling configuration details from the specified Amazon
// Chime Voice Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteVoiceConnectorEmergencyCallingConfiguration
// (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteVoiceConnectorEmergencyCallingConfiguration.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteVoiceConnectorEmergencyCallingConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorEmergencyCallingConfiguration
//
// Deprecated: Replaced by DeleteVoiceConnectorEmergencyCallingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorEmergencyCallingConfiguration(input *DeleteVoiceConnectorEmergencyCallingConfigurationInput) (*DeleteVoiceConnectorEmergencyCallingConfigurationOutput, error) {
	req, out := c.DeleteVoiceConnectorEmergencyCallingConfigurationRequest(input)
	return out, req.Send()
}

// DeleteVoiceConnectorEmergencyCallingConfigurationWithContext is the same as DeleteVoiceConnectorEmergencyCallingConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteVoiceConnectorEmergencyCallingConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteVoiceConnectorEmergencyCallingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorEmergencyCallingConfigurationWithContext(ctx aws.Context, input *DeleteVoiceConnectorEmergencyCallingConfigurationInput, opts ...request.Option) (*DeleteVoiceConnectorEmergencyCallingConfigurationOutput, error) {
	req, out := c.DeleteVoiceConnectorEmergencyCallingConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteVoiceConnectorGroup = "DeleteVoiceConnectorGroup"

// DeleteVoiceConnectorGroupRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVoiceConnectorGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteVoiceConnectorGroup for more information on using the DeleteVoiceConnectorGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteVoiceConnectorGroupRequest method.
//	req, resp := client.DeleteVoiceConnectorGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorGroup
//
// Deprecated: Replaced by DeleteVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorGroupRequest(input *DeleteVoiceConnectorGroupInput) (req *request.Request, output *DeleteVoiceConnectorGroupOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteVoiceConnectorGroup, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteVoiceConnectorGroup,
		HTTPMethod: "DELETE",
		HTTPPath:   "/voice-connector-groups/{voiceConnectorGroupId}",
	}

	if input == nil {
		input = &DeleteVoiceConnectorGroupInput{}
	}

	output = &DeleteVoiceConnectorGroupOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteVoiceConnectorGroup API operation for Amazon Chime.
//
// Deletes the specified Amazon Chime Voice Connector group. Any VoiceConnectorItems
// and phone numbers associated with the group must be removed before it can
// be deleted.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteVoiceConnectorGroup (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteVoiceConnectorGroup.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteVoiceConnectorGroup for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorGroup
//
// Deprecated: Replaced by DeleteVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorGroup(input *DeleteVoiceConnectorGroupInput) (*DeleteVoiceConnectorGroupOutput, error) {
	req, out := c.DeleteVoiceConnectorGroupRequest(input)
	return out, req.Send()
}

// DeleteVoiceConnectorGroupWithContext is the same as DeleteVoiceConnectorGroup with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteVoiceConnectorGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorGroupWithContext(ctx aws.Context, input *DeleteVoiceConnectorGroupInput, opts ...request.Option) (*DeleteVoiceConnectorGroupOutput, error) {
	req, out := c.DeleteVoiceConnectorGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteVoiceConnectorOrigination = "DeleteVoiceConnectorOrigination"

// DeleteVoiceConnectorOriginationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVoiceConnectorOrigination operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteVoiceConnectorOrigination for more information on using the DeleteVoiceConnectorOrigination
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteVoiceConnectorOriginationRequest method.
//	req, resp := client.DeleteVoiceConnectorOriginationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorOrigination
//
// Deprecated: Replaced by DeleteVoiceConnectorOrigination in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorOriginationRequest(input *DeleteVoiceConnectorOriginationInput) (req *request.Request, output *DeleteVoiceConnectorOriginationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteVoiceConnectorOrigination, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteVoiceConnectorOrigination,
		HTTPMethod: "DELETE",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/origination",
	}

	if input == nil {
		input = &DeleteVoiceConnectorOriginationInput{}
	}

	output = &DeleteVoiceConnectorOriginationOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteVoiceConnectorOrigination API operation for Amazon Chime.
//
// Deletes the origination settings for the specified Amazon Chime Voice Connector.
//
// If emergency calling is configured for the Amazon Chime Voice Connector,
// it must be deleted prior to deleting the origination settings.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteVoiceConnectorOrigination (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteVoiceConnectorOrigination.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteVoiceConnectorOrigination for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorOrigination
//
// Deprecated: Replaced by DeleteVoiceConnectorOrigination in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorOrigination(input *DeleteVoiceConnectorOriginationInput) (*DeleteVoiceConnectorOriginationOutput, error) {
	req, out := c.DeleteVoiceConnectorOriginationRequest(input)
	return out, req.Send()
}

// DeleteVoiceConnectorOriginationWithContext is the same as DeleteVoiceConnectorOrigination with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteVoiceConnectorOrigination for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteVoiceConnectorOrigination in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorOriginationWithContext(ctx aws.Context, input *DeleteVoiceConnectorOriginationInput, opts ...request.Option) (*DeleteVoiceConnectorOriginationOutput, error) {
	req, out := c.DeleteVoiceConnectorOriginationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteVoiceConnectorProxy = "DeleteVoiceConnectorProxy"

// DeleteVoiceConnectorProxyRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVoiceConnectorProxy operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteVoiceConnectorProxy for more information on using the DeleteVoiceConnectorProxy
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteVoiceConnectorProxyRequest method.
//	req, resp := client.DeleteVoiceConnectorProxyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorProxy
//
// Deprecated: Replaced by DeleteVoiceConnectorProxy in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorProxyRequest(input *DeleteVoiceConnectorProxyInput) (req *request.Request, output *DeleteVoiceConnectorProxyOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteVoiceConnectorProxy, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteVoiceConnectorProxy,
		HTTPMethod: "DELETE",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/programmable-numbers/proxy",
	}

	if input == nil {
		input = &DeleteVoiceConnectorProxyInput{}
	}

	output = &DeleteVoiceConnectorProxyOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteVoiceConnectorProxy API operation for Amazon Chime.
//
// Deletes the proxy configuration from the specified Amazon Chime Voice Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteVoiceProxy (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteVoiceConnectorProxy.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteVoiceConnectorProxy for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorProxy
//
// Deprecated: Replaced by DeleteVoiceConnectorProxy in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorProxy(input *DeleteVoiceConnectorProxyInput) (*DeleteVoiceConnectorProxyOutput, error) {
	req, out := c.DeleteVoiceConnectorProxyRequest(input)
	return out, req.Send()
}

// DeleteVoiceConnectorProxyWithContext is the same as DeleteVoiceConnectorProxy with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteVoiceConnectorProxy for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteVoiceConnectorProxy in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorProxyWithContext(ctx aws.Context, input *DeleteVoiceConnectorProxyInput, opts ...request.Option) (*DeleteVoiceConnectorProxyOutput, error) {
	req, out := c.DeleteVoiceConnectorProxyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteVoiceConnectorStreamingConfiguration = "DeleteVoiceConnectorStreamingConfiguration"

// DeleteVoiceConnectorStreamingConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVoiceConnectorStreamingConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteVoiceConnectorStreamingConfiguration for more information on using the DeleteVoiceConnectorStreamingConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteVoiceConnectorStreamingConfigurationRequest method.
//	req, resp := client.DeleteVoiceConnectorStreamingConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorStreamingConfiguration
//
// Deprecated: Replaced by DeleteVoiceConnectorStreamingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorStreamingConfigurationRequest(input *DeleteVoiceConnectorStreamingConfigurationInput) (req *request.Request, output *DeleteVoiceConnectorStreamingConfigurationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteVoiceConnectorStreamingConfiguration, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteVoiceConnectorStreamingConfiguration,
		HTTPMethod: "DELETE",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/streaming-configuration",
	}

	if input == nil {
		input = &DeleteVoiceConnectorStreamingConfigurationInput{}
	}

	output = &DeleteVoiceConnectorStreamingConfigurationOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteVoiceConnectorStreamingConfiguration API operation for Amazon Chime.
//
// Deletes the streaming configuration for the specified Amazon Chime Voice
// Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteVoiceConnectorStreamingConfiguration (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteVoiceConnectorStreamingConfiguration.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteVoiceConnectorStreamingConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorStreamingConfiguration
//
// Deprecated: Replaced by DeleteVoiceConnectorStreamingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorStreamingConfiguration(input *DeleteVoiceConnectorStreamingConfigurationInput) (*DeleteVoiceConnectorStreamingConfigurationOutput, error) {
	req, out := c.DeleteVoiceConnectorStreamingConfigurationRequest(input)
	return out, req.Send()
}

// DeleteVoiceConnectorStreamingConfigurationWithContext is the same as DeleteVoiceConnectorStreamingConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteVoiceConnectorStreamingConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteVoiceConnectorStreamingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorStreamingConfigurationWithContext(ctx aws.Context, input *DeleteVoiceConnectorStreamingConfigurationInput, opts ...request.Option) (*DeleteVoiceConnectorStreamingConfigurationOutput, error) {
	req, out := c.DeleteVoiceConnectorStreamingConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteVoiceConnectorTermination = "DeleteVoiceConnectorTermination"

// DeleteVoiceConnectorTerminationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVoiceConnectorTermination operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteVoiceConnectorTermination for more information on using the DeleteVoiceConnectorTermination
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteVoiceConnectorTerminationRequest method.
//	req, resp := client.DeleteVoiceConnectorTerminationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorTermination
//
// Deprecated: Replaced by DeleteVoiceConnectorTermination in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorTerminationRequest(input *DeleteVoiceConnectorTerminationInput) (req *request.Request, output *DeleteVoiceConnectorTerminationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteVoiceConnectorTermination, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteVoiceConnectorTermination,
		HTTPMethod: "DELETE",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/termination",
	}

	if input == nil {
		input = &DeleteVoiceConnectorTerminationInput{}
	}

	output = &DeleteVoiceConnectorTerminationOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteVoiceConnectorTermination API operation for Amazon Chime.
//
// Deletes the termination settings for the specified Amazon Chime Voice Connector.
//
// If emergency calling is configured for the Amazon Chime Voice Connector,
// it must be deleted prior to deleting the termination settings.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteVoiceConnectorTermination (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteVoiceConnectorTermination.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteVoiceConnectorTermination for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorTermination
//
// Deprecated: Replaced by DeleteVoiceConnectorTermination in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorTermination(input *DeleteVoiceConnectorTerminationInput) (*DeleteVoiceConnectorTerminationOutput, error) {
	req, out := c.DeleteVoiceConnectorTerminationRequest(input)
	return out, req.Send()
}

// DeleteVoiceConnectorTerminationWithContext is the same as DeleteVoiceConnectorTermination with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteVoiceConnectorTermination for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteVoiceConnectorTermination in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorTerminationWithContext(ctx aws.Context, input *DeleteVoiceConnectorTerminationInput, opts ...request.Option) (*DeleteVoiceConnectorTerminationOutput, error) {
	req, out := c.DeleteVoiceConnectorTerminationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteVoiceConnectorTerminationCredentials = "DeleteVoiceConnectorTerminationCredentials"

// DeleteVoiceConnectorTerminationCredentialsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVoiceConnectorTerminationCredentials operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteVoiceConnectorTerminationCredentials for more information on using the DeleteVoiceConnectorTerminationCredentials
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteVoiceConnectorTerminationCredentialsRequest method.
//	req, resp := client.DeleteVoiceConnectorTerminationCredentialsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorTerminationCredentials
//
// Deprecated: Replaced by DeleteVoiceConnectorTerminationCredentials in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorTerminationCredentialsRequest(input *DeleteVoiceConnectorTerminationCredentialsInput) (req *request.Request, output *DeleteVoiceConnectorTerminationCredentialsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DeleteVoiceConnectorTerminationCredentials, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDeleteVoiceConnectorTerminationCredentials,
		HTTPMethod: "POST",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/termination/credentials?operation=delete",
	}

	if input == nil {
		input = &DeleteVoiceConnectorTerminationCredentialsInput{}
	}

	output = &DeleteVoiceConnectorTerminationCredentialsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteVoiceConnectorTerminationCredentials API operation for Amazon Chime.
//
// Deletes the specified SIP credentials used by your equipment to authenticate
// during call termination.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DeleteVoiceConnectorTerminationCredentials (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteVoiceConnectorTerminationCredentials.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DeleteVoiceConnectorTerminationCredentials for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DeleteVoiceConnectorTerminationCredentials
//
// Deprecated: Replaced by DeleteVoiceConnectorTerminationCredentials in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorTerminationCredentials(input *DeleteVoiceConnectorTerminationCredentialsInput) (*DeleteVoiceConnectorTerminationCredentialsOutput, error) {
	req, out := c.DeleteVoiceConnectorTerminationCredentialsRequest(input)
	return out, req.Send()
}

// DeleteVoiceConnectorTerminationCredentialsWithContext is the same as DeleteVoiceConnectorTerminationCredentials with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteVoiceConnectorTerminationCredentials for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DeleteVoiceConnectorTerminationCredentials in the Amazon Chime SDK Voice Namespace
func (c *Chime) DeleteVoiceConnectorTerminationCredentialsWithContext(ctx aws.Context, input *DeleteVoiceConnectorTerminationCredentialsInput, opts ...request.Option) (*DeleteVoiceConnectorTerminationCredentialsOutput, error) {
	req, out := c.DeleteVoiceConnectorTerminationCredentialsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeAppInstance = "DescribeAppInstance"

// DescribeAppInstanceRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAppInstance operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeAppInstance for more information on using the DescribeAppInstance
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeAppInstanceRequest method.
//	req, resp := client.DescribeAppInstanceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeAppInstance
//
// Deprecated: Replaced by DescribeAppInstance in the Amazon Chime SDK Identity Namespace
func (c *Chime) DescribeAppInstanceRequest(input *DescribeAppInstanceInput) (req *request.Request, output *DescribeAppInstanceOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DescribeAppInstance, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDescribeAppInstance,
		HTTPMethod: "GET",
		HTTPPath:   "/app-instances/{appInstanceArn}",
	}

	if input == nil {
		input = &DescribeAppInstanceInput{}
	}

	output = &DescribeAppInstanceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DescribeAppInstance API operation for Amazon Chime.
//
// Returns the full details of an AppInstance.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DescribeAppInstance (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_DescribeAppInstance.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DescribeAppInstance for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeAppInstance
//
// Deprecated: Replaced by DescribeAppInstance in the Amazon Chime SDK Identity Namespace
func (c *Chime) DescribeAppInstance(input *DescribeAppInstanceInput) (*DescribeAppInstanceOutput, error) {
	req, out := c.DescribeAppInstanceRequest(input)
	return out, req.Send()
}

// DescribeAppInstanceWithContext is the same as DescribeAppInstance with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeAppInstance for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DescribeAppInstance in the Amazon Chime SDK Identity Namespace
func (c *Chime) DescribeAppInstanceWithContext(ctx aws.Context, input *DescribeAppInstanceInput, opts ...request.Option) (*DescribeAppInstanceOutput, error) {
	req, out := c.DescribeAppInstanceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeAppInstanceAdmin = "DescribeAppInstanceAdmin"

// DescribeAppInstanceAdminRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAppInstanceAdmin operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeAppInstanceAdmin for more information on using the DescribeAppInstanceAdmin
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeAppInstanceAdminRequest method.
//	req, resp := client.DescribeAppInstanceAdminRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeAppInstanceAdmin
//
// Deprecated: Replaced by DescribeAppInstanceAdmin in the Amazon Chime SDK Identity Namespace
func (c *Chime) DescribeAppInstanceAdminRequest(input *DescribeAppInstanceAdminInput) (req *request.Request, output *DescribeAppInstanceAdminOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DescribeAppInstanceAdmin, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDescribeAppInstanceAdmin,
		HTTPMethod: "GET",
		HTTPPath:   "/app-instances/{appInstanceArn}/admins/{appInstanceAdminArn}",
	}

	if input == nil {
		input = &DescribeAppInstanceAdminInput{}
	}

	output = &DescribeAppInstanceAdminOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DescribeAppInstanceAdmin API operation for Amazon Chime.
//
// Returns the full details of an AppInstanceAdmin.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DescribeAppInstanceAdmin (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_DescribeAppInstanceAdmin.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DescribeAppInstanceAdmin for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeAppInstanceAdmin
//
// Deprecated: Replaced by DescribeAppInstanceAdmin in the Amazon Chime SDK Identity Namespace
func (c *Chime) DescribeAppInstanceAdmin(input *DescribeAppInstanceAdminInput) (*DescribeAppInstanceAdminOutput, error) {
	req, out := c.DescribeAppInstanceAdminRequest(input)
	return out, req.Send()
}

// DescribeAppInstanceAdminWithContext is the same as DescribeAppInstanceAdmin with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeAppInstanceAdmin for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DescribeAppInstanceAdmin in the Amazon Chime SDK Identity Namespace
func (c *Chime) DescribeAppInstanceAdminWithContext(ctx aws.Context, input *DescribeAppInstanceAdminInput, opts ...request.Option) (*DescribeAppInstanceAdminOutput, error) {
	req, out := c.DescribeAppInstanceAdminRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeAppInstanceUser = "DescribeAppInstanceUser"

// DescribeAppInstanceUserRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAppInstanceUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeAppInstanceUser for more information on using the DescribeAppInstanceUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeAppInstanceUserRequest method.
//	req, resp := client.DescribeAppInstanceUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeAppInstanceUser
//
// Deprecated: Replaced by DescribeAppInstanceUser in the Amazon Chime SDK Identity Namespace
func (c *Chime) DescribeAppInstanceUserRequest(input *DescribeAppInstanceUserInput) (req *request.Request, output *DescribeAppInstanceUserOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DescribeAppInstanceUser, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDescribeAppInstanceUser,
		HTTPMethod: "GET",
		HTTPPath:   "/app-instance-users/{appInstanceUserArn}",
	}

	if input == nil {
		input = &DescribeAppInstanceUserInput{}
	}

	output = &DescribeAppInstanceUserOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DescribeAppInstanceUser API operation for Amazon Chime.
//
// Returns the full details of an AppInstanceUser.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DescribeAppInstanceUser (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_DescribeAppInstanceUser.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DescribeAppInstanceUser for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeAppInstanceUser
//
// Deprecated: Replaced by DescribeAppInstanceUser in the Amazon Chime SDK Identity Namespace
func (c *Chime) DescribeAppInstanceUser(input *DescribeAppInstanceUserInput) (*DescribeAppInstanceUserOutput, error) {
	req, out := c.DescribeAppInstanceUserRequest(input)
	return out, req.Send()
}

// DescribeAppInstanceUserWithContext is the same as DescribeAppInstanceUser with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeAppInstanceUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DescribeAppInstanceUser in the Amazon Chime SDK Identity Namespace
func (c *Chime) DescribeAppInstanceUserWithContext(ctx aws.Context, input *DescribeAppInstanceUserInput, opts ...request.Option) (*DescribeAppInstanceUserOutput, error) {
	req, out := c.DescribeAppInstanceUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeChannel = "DescribeChannel"

// DescribeChannelRequest generates a "aws/request.Request" representing the
// client's request for the DescribeChannel operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeChannel for more information on using the DescribeChannel
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeChannelRequest method.
//	req, resp := client.DescribeChannelRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeChannel
//
// Deprecated: Replaced by DescribeChannel in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelRequest(input *DescribeChannelInput) (req *request.Request, output *DescribeChannelOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DescribeChannel, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDescribeChannel,
		HTTPMethod: "GET",
		HTTPPath:   "/channels/{channelArn}",
	}

	if input == nil {
		input = &DescribeChannelInput{}
	}

	output = &DescribeChannelOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DescribeChannel API operation for Amazon Chime.
//
// Returns the full details of a channel in an Amazon Chime AppInstance.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DescribeChannel (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DescribeChannel.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DescribeChannel for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeChannel
//
// Deprecated: Replaced by DescribeChannel in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannel(input *DescribeChannelInput) (*DescribeChannelOutput, error) {
	req, out := c.DescribeChannelRequest(input)
	return out, req.Send()
}

// DescribeChannelWithContext is the same as DescribeChannel with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeChannel for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DescribeChannel in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelWithContext(ctx aws.Context, input *DescribeChannelInput, opts ...request.Option) (*DescribeChannelOutput, error) {
	req, out := c.DescribeChannelRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeChannelBan = "DescribeChannelBan"

// DescribeChannelBanRequest generates a "aws/request.Request" representing the
// client's request for the DescribeChannelBan operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeChannelBan for more information on using the DescribeChannelBan
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeChannelBanRequest method.
//	req, resp := client.DescribeChannelBanRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeChannelBan
//
// Deprecated: Replaced by DescribeChannelBan in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelBanRequest(input *DescribeChannelBanInput) (req *request.Request, output *DescribeChannelBanOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DescribeChannelBan, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDescribeChannelBan,
		HTTPMethod: "GET",
		HTTPPath:   "/channels/{channelArn}/bans/{memberArn}",
	}

	if input == nil {
		input = &DescribeChannelBanInput{}
	}

	output = &DescribeChannelBanOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DescribeChannelBan API operation for Amazon Chime.
//
// Returns the full details of a channel ban.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DescribeChannelBan (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DescribeChannelBan.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DescribeChannelBan for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeChannelBan
//
// Deprecated: Replaced by DescribeChannelBan in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelBan(input *DescribeChannelBanInput) (*DescribeChannelBanOutput, error) {
	req, out := c.DescribeChannelBanRequest(input)
	return out, req.Send()
}

// DescribeChannelBanWithContext is the same as DescribeChannelBan with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeChannelBan for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DescribeChannelBan in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelBanWithContext(ctx aws.Context, input *DescribeChannelBanInput, opts ...request.Option) (*DescribeChannelBanOutput, error) {
	req, out := c.DescribeChannelBanRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeChannelMembership = "DescribeChannelMembership"

// DescribeChannelMembershipRequest generates a "aws/request.Request" representing the
// client's request for the DescribeChannelMembership operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeChannelMembership for more information on using the DescribeChannelMembership
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeChannelMembershipRequest method.
//	req, resp := client.DescribeChannelMembershipRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeChannelMembership
//
// Deprecated: Replaced by DescribeChannelMembership in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelMembershipRequest(input *DescribeChannelMembershipInput) (req *request.Request, output *DescribeChannelMembershipOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DescribeChannelMembership, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDescribeChannelMembership,
		HTTPMethod: "GET",
		HTTPPath:   "/channels/{channelArn}/memberships/{memberArn}",
	}

	if input == nil {
		input = &DescribeChannelMembershipInput{}
	}

	output = &DescribeChannelMembershipOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DescribeChannelMembership API operation for Amazon Chime.
//
// Returns the full details of a user's channel membership.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DescribeChannelMembership (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DescribeChannelMembership.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DescribeChannelMembership for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeChannelMembership
//
// Deprecated: Replaced by DescribeChannelMembership in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelMembership(input *DescribeChannelMembershipInput) (*DescribeChannelMembershipOutput, error) {
	req, out := c.DescribeChannelMembershipRequest(input)
	return out, req.Send()
}

// DescribeChannelMembershipWithContext is the same as DescribeChannelMembership with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeChannelMembership for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DescribeChannelMembership in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelMembershipWithContext(ctx aws.Context, input *DescribeChannelMembershipInput, opts ...request.Option) (*DescribeChannelMembershipOutput, error) {
	req, out := c.DescribeChannelMembershipRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeChannelMembershipForAppInstanceUser = "DescribeChannelMembershipForAppInstanceUser"

// DescribeChannelMembershipForAppInstanceUserRequest generates a "aws/request.Request" representing the
// client's request for the DescribeChannelMembershipForAppInstanceUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeChannelMembershipForAppInstanceUser for more information on using the DescribeChannelMembershipForAppInstanceUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeChannelMembershipForAppInstanceUserRequest method.
//	req, resp := client.DescribeChannelMembershipForAppInstanceUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeChannelMembershipForAppInstanceUser
//
// Deprecated: Replaced by DescribeChannelMembershipForAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelMembershipForAppInstanceUserRequest(input *DescribeChannelMembershipForAppInstanceUserInput) (req *request.Request, output *DescribeChannelMembershipForAppInstanceUserOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DescribeChannelMembershipForAppInstanceUser, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDescribeChannelMembershipForAppInstanceUser,
		HTTPMethod: "GET",
		HTTPPath:   "/channels/{channelArn}?scope=app-instance-user-membership",
	}

	if input == nil {
		input = &DescribeChannelMembershipForAppInstanceUserInput{}
	}

	output = &DescribeChannelMembershipForAppInstanceUserOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DescribeChannelMembershipForAppInstanceUser API operation for Amazon Chime.
//
// Returns the details of a channel based on the membership of the specified
// AppInstanceUser.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DescribeChannelMembershipForAppInstanceUser (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DescribeChannelMembershipForAppInstanceUser.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DescribeChannelMembershipForAppInstanceUser for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeChannelMembershipForAppInstanceUser
//
// Deprecated: Replaced by DescribeChannelMembershipForAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelMembershipForAppInstanceUser(input *DescribeChannelMembershipForAppInstanceUserInput) (*DescribeChannelMembershipForAppInstanceUserOutput, error) {
	req, out := c.DescribeChannelMembershipForAppInstanceUserRequest(input)
	return out, req.Send()
}

// DescribeChannelMembershipForAppInstanceUserWithContext is the same as DescribeChannelMembershipForAppInstanceUser with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeChannelMembershipForAppInstanceUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DescribeChannelMembershipForAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelMembershipForAppInstanceUserWithContext(ctx aws.Context, input *DescribeChannelMembershipForAppInstanceUserInput, opts ...request.Option) (*DescribeChannelMembershipForAppInstanceUserOutput, error) {
	req, out := c.DescribeChannelMembershipForAppInstanceUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeChannelModeratedByAppInstanceUser = "DescribeChannelModeratedByAppInstanceUser"

// DescribeChannelModeratedByAppInstanceUserRequest generates a "aws/request.Request" representing the
// client's request for the DescribeChannelModeratedByAppInstanceUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeChannelModeratedByAppInstanceUser for more information on using the DescribeChannelModeratedByAppInstanceUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeChannelModeratedByAppInstanceUserRequest method.
//	req, resp := client.DescribeChannelModeratedByAppInstanceUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeChannelModeratedByAppInstanceUser
//
// Deprecated: Replaced by DescribeChannelModeratedByAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelModeratedByAppInstanceUserRequest(input *DescribeChannelModeratedByAppInstanceUserInput) (req *request.Request, output *DescribeChannelModeratedByAppInstanceUserOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DescribeChannelModeratedByAppInstanceUser, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDescribeChannelModeratedByAppInstanceUser,
		HTTPMethod: "GET",
		HTTPPath:   "/channels/{channelArn}?scope=app-instance-user-moderated-channel",
	}

	if input == nil {
		input = &DescribeChannelModeratedByAppInstanceUserInput{}
	}

	output = &DescribeChannelModeratedByAppInstanceUserOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DescribeChannelModeratedByAppInstanceUser API operation for Amazon Chime.
//
// Returns the full details of a channel moderated by the specified AppInstanceUser.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DescribeChannelModeratedByAppInstanceUser (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DescribeChannelModeratedByAppInstanceUser.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DescribeChannelModeratedByAppInstanceUser for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeChannelModeratedByAppInstanceUser
//
// Deprecated: Replaced by DescribeChannelModeratedByAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelModeratedByAppInstanceUser(input *DescribeChannelModeratedByAppInstanceUserInput) (*DescribeChannelModeratedByAppInstanceUserOutput, error) {
	req, out := c.DescribeChannelModeratedByAppInstanceUserRequest(input)
	return out, req.Send()
}

// DescribeChannelModeratedByAppInstanceUserWithContext is the same as DescribeChannelModeratedByAppInstanceUser with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeChannelModeratedByAppInstanceUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DescribeChannelModeratedByAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelModeratedByAppInstanceUserWithContext(ctx aws.Context, input *DescribeChannelModeratedByAppInstanceUserInput, opts ...request.Option) (*DescribeChannelModeratedByAppInstanceUserOutput, error) {
	req, out := c.DescribeChannelModeratedByAppInstanceUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeChannelModerator = "DescribeChannelModerator"

// DescribeChannelModeratorRequest generates a "aws/request.Request" representing the
// client's request for the DescribeChannelModerator operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeChannelModerator for more information on using the DescribeChannelModerator
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeChannelModeratorRequest method.
//	req, resp := client.DescribeChannelModeratorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeChannelModerator
//
// Deprecated: Replaced by DescribeChannelModerator in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelModeratorRequest(input *DescribeChannelModeratorInput) (req *request.Request, output *DescribeChannelModeratorOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DescribeChannelModerator, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDescribeChannelModerator,
		HTTPMethod: "GET",
		HTTPPath:   "/channels/{channelArn}/moderators/{channelModeratorArn}",
	}

	if input == nil {
		input = &DescribeChannelModeratorInput{}
	}

	output = &DescribeChannelModeratorOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// DescribeChannelModerator API operation for Amazon Chime.
//
// Returns the full details of a single ChannelModerator.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DescribeChannelModerator (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DescribeChannelModerator.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DescribeChannelModerator for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DescribeChannelModerator
//
// Deprecated: Replaced by DescribeChannelModerator in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelModerator(input *DescribeChannelModeratorInput) (*DescribeChannelModeratorOutput, error) {
	req, out := c.DescribeChannelModeratorRequest(input)
	return out, req.Send()
}

// DescribeChannelModeratorWithContext is the same as DescribeChannelModerator with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeChannelModerator for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DescribeChannelModerator in the Amazon Chime SDK Messaging Namespace
func (c *Chime) DescribeChannelModeratorWithContext(ctx aws.Context, input *DescribeChannelModeratorInput, opts ...request.Option) (*DescribeChannelModeratorOutput, error) {
	req, out := c.DescribeChannelModeratorRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDisassociatePhoneNumberFromUser = "DisassociatePhoneNumberFromUser"

// DisassociatePhoneNumberFromUserRequest generates a "aws/request.Request" representing the
// client's request for the DisassociatePhoneNumberFromUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DisassociatePhoneNumberFromUser for more information on using the DisassociatePhoneNumberFromUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DisassociatePhoneNumberFromUserRequest method.
//	req, resp := client.DisassociatePhoneNumberFromUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DisassociatePhoneNumberFromUser
func (c *Chime) DisassociatePhoneNumberFromUserRequest(input *DisassociatePhoneNumberFromUserInput) (req *request.Request, output *DisassociatePhoneNumberFromUserOutput) {
	op := &request.Operation{
		Name:       opDisassociatePhoneNumberFromUser,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/users/{userId}?operation=disassociate-phone-number",
	}

	if input == nil {
		input = &DisassociatePhoneNumberFromUserInput{}
	}

	output = &DisassociatePhoneNumberFromUserOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DisassociatePhoneNumberFromUser API operation for Amazon Chime.
//
// Disassociates the primary provisioned phone number from the specified Amazon
// Chime user.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DisassociatePhoneNumberFromUser for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DisassociatePhoneNumberFromUser
func (c *Chime) DisassociatePhoneNumberFromUser(input *DisassociatePhoneNumberFromUserInput) (*DisassociatePhoneNumberFromUserOutput, error) {
	req, out := c.DisassociatePhoneNumberFromUserRequest(input)
	return out, req.Send()
}

// DisassociatePhoneNumberFromUserWithContext is the same as DisassociatePhoneNumberFromUser with the addition of
// the ability to pass a context and additional request options.
//
// See DisassociatePhoneNumberFromUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) DisassociatePhoneNumberFromUserWithContext(ctx aws.Context, input *DisassociatePhoneNumberFromUserInput, opts ...request.Option) (*DisassociatePhoneNumberFromUserOutput, error) {
	req, out := c.DisassociatePhoneNumberFromUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDisassociatePhoneNumbersFromVoiceConnector = "DisassociatePhoneNumbersFromVoiceConnector"

// DisassociatePhoneNumbersFromVoiceConnectorRequest generates a "aws/request.Request" representing the
// client's request for the DisassociatePhoneNumbersFromVoiceConnector operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DisassociatePhoneNumbersFromVoiceConnector for more information on using the DisassociatePhoneNumbersFromVoiceConnector
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DisassociatePhoneNumbersFromVoiceConnectorRequest method.
//	req, resp := client.DisassociatePhoneNumbersFromVoiceConnectorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DisassociatePhoneNumbersFromVoiceConnector
//
// Deprecated: Replaced by DisassociatePhoneNumbersFromVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) DisassociatePhoneNumbersFromVoiceConnectorRequest(input *DisassociatePhoneNumbersFromVoiceConnectorInput) (req *request.Request, output *DisassociatePhoneNumbersFromVoiceConnectorOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DisassociatePhoneNumbersFromVoiceConnector, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDisassociatePhoneNumbersFromVoiceConnector,
		HTTPMethod: "POST",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}?operation=disassociate-phone-numbers",
	}

	if input == nil {
		input = &DisassociatePhoneNumbersFromVoiceConnectorInput{}
	}

	output = &DisassociatePhoneNumbersFromVoiceConnectorOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DisassociatePhoneNumbersFromVoiceConnector API operation for Amazon Chime.
//
// Disassociates the specified phone numbers from the specified Amazon Chime
// Voice Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DisassociatePhoneNumbersFromVoiceConnector (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DisassociatePhoneNumbersFromVoiceConnector.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DisassociatePhoneNumbersFromVoiceConnector for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DisassociatePhoneNumbersFromVoiceConnector
//
// Deprecated: Replaced by DisassociatePhoneNumbersFromVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) DisassociatePhoneNumbersFromVoiceConnector(input *DisassociatePhoneNumbersFromVoiceConnectorInput) (*DisassociatePhoneNumbersFromVoiceConnectorOutput, error) {
	req, out := c.DisassociatePhoneNumbersFromVoiceConnectorRequest(input)
	return out, req.Send()
}

// DisassociatePhoneNumbersFromVoiceConnectorWithContext is the same as DisassociatePhoneNumbersFromVoiceConnector with the addition of
// the ability to pass a context and additional request options.
//
// See DisassociatePhoneNumbersFromVoiceConnector for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DisassociatePhoneNumbersFromVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) DisassociatePhoneNumbersFromVoiceConnectorWithContext(ctx aws.Context, input *DisassociatePhoneNumbersFromVoiceConnectorInput, opts ...request.Option) (*DisassociatePhoneNumbersFromVoiceConnectorOutput, error) {
	req, out := c.DisassociatePhoneNumbersFromVoiceConnectorRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDisassociatePhoneNumbersFromVoiceConnectorGroup = "DisassociatePhoneNumbersFromVoiceConnectorGroup"

// DisassociatePhoneNumbersFromVoiceConnectorGroupRequest generates a "aws/request.Request" representing the
// client's request for the DisassociatePhoneNumbersFromVoiceConnectorGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DisassociatePhoneNumbersFromVoiceConnectorGroup for more information on using the DisassociatePhoneNumbersFromVoiceConnectorGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DisassociatePhoneNumbersFromVoiceConnectorGroupRequest method.
//	req, resp := client.DisassociatePhoneNumbersFromVoiceConnectorGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DisassociatePhoneNumbersFromVoiceConnectorGroup
//
// Deprecated: Replaced by DisassociatePhoneNumbersFromVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) DisassociatePhoneNumbersFromVoiceConnectorGroupRequest(input *DisassociatePhoneNumbersFromVoiceConnectorGroupInput) (req *request.Request, output *DisassociatePhoneNumbersFromVoiceConnectorGroupOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, DisassociatePhoneNumbersFromVoiceConnectorGroup, has been deprecated")
	}
	op := &request.Operation{
		Name:       opDisassociatePhoneNumbersFromVoiceConnectorGroup,
		HTTPMethod: "POST",
		HTTPPath:   "/voice-connector-groups/{voiceConnectorGroupId}?operation=disassociate-phone-numbers",
	}

	if input == nil {
		input = &DisassociatePhoneNumbersFromVoiceConnectorGroupInput{}
	}

	output = &DisassociatePhoneNumbersFromVoiceConnectorGroupOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DisassociatePhoneNumbersFromVoiceConnectorGroup API operation for Amazon Chime.
//
// Disassociates the specified phone numbers from the specified Amazon Chime
// Voice Connector group.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, DisassociatePhoneNumbersFromVoiceConnectorGroup
// (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DisassociatePhoneNumbersFromVoiceConnectorGroup.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DisassociatePhoneNumbersFromVoiceConnectorGroup for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DisassociatePhoneNumbersFromVoiceConnectorGroup
//
// Deprecated: Replaced by DisassociatePhoneNumbersFromVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) DisassociatePhoneNumbersFromVoiceConnectorGroup(input *DisassociatePhoneNumbersFromVoiceConnectorGroupInput) (*DisassociatePhoneNumbersFromVoiceConnectorGroupOutput, error) {
	req, out := c.DisassociatePhoneNumbersFromVoiceConnectorGroupRequest(input)
	return out, req.Send()
}

// DisassociatePhoneNumbersFromVoiceConnectorGroupWithContext is the same as DisassociatePhoneNumbersFromVoiceConnectorGroup with the addition of
// the ability to pass a context and additional request options.
//
// See DisassociatePhoneNumbersFromVoiceConnectorGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by DisassociatePhoneNumbersFromVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) DisassociatePhoneNumbersFromVoiceConnectorGroupWithContext(ctx aws.Context, input *DisassociatePhoneNumbersFromVoiceConnectorGroupInput, opts ...request.Option) (*DisassociatePhoneNumbersFromVoiceConnectorGroupOutput, error) {
	req, out := c.DisassociatePhoneNumbersFromVoiceConnectorGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDisassociateSigninDelegateGroupsFromAccount = "DisassociateSigninDelegateGroupsFromAccount"

// DisassociateSigninDelegateGroupsFromAccountRequest generates a "aws/request.Request" representing the
// client's request for the DisassociateSigninDelegateGroupsFromAccount operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DisassociateSigninDelegateGroupsFromAccount for more information on using the DisassociateSigninDelegateGroupsFromAccount
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DisassociateSigninDelegateGroupsFromAccountRequest method.
//	req, resp := client.DisassociateSigninDelegateGroupsFromAccountRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DisassociateSigninDelegateGroupsFromAccount
func (c *Chime) DisassociateSigninDelegateGroupsFromAccountRequest(input *DisassociateSigninDelegateGroupsFromAccountInput) (req *request.Request, output *DisassociateSigninDelegateGroupsFromAccountOutput) {
	op := &request.Operation{
		Name:       opDisassociateSigninDelegateGroupsFromAccount,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}?operation=disassociate-signin-delegate-groups",
	}

	if input == nil {
		input = &DisassociateSigninDelegateGroupsFromAccountInput{}
	}

	output = &DisassociateSigninDelegateGroupsFromAccountOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DisassociateSigninDelegateGroupsFromAccount API operation for Amazon Chime.
//
// Disassociates the specified sign-in delegate groups from the specified Amazon
// Chime account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation DisassociateSigninDelegateGroupsFromAccount for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/DisassociateSigninDelegateGroupsFromAccount
func (c *Chime) DisassociateSigninDelegateGroupsFromAccount(input *DisassociateSigninDelegateGroupsFromAccountInput) (*DisassociateSigninDelegateGroupsFromAccountOutput, error) {
	req, out := c.DisassociateSigninDelegateGroupsFromAccountRequest(input)
	return out, req.Send()
}

// DisassociateSigninDelegateGroupsFromAccountWithContext is the same as DisassociateSigninDelegateGroupsFromAccount with the addition of
// the ability to pass a context and additional request options.
//
// See DisassociateSigninDelegateGroupsFromAccount for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) DisassociateSigninDelegateGroupsFromAccountWithContext(ctx aws.Context, input *DisassociateSigninDelegateGroupsFromAccountInput, opts ...request.Option) (*DisassociateSigninDelegateGroupsFromAccountOutput, error) {
	req, out := c.DisassociateSigninDelegateGroupsFromAccountRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetAccount = "GetAccount"

// GetAccountRequest generates a "aws/request.Request" representing the
// client's request for the GetAccount operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetAccount for more information on using the GetAccount
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetAccountRequest method.
//	req, resp := client.GetAccountRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetAccount
func (c *Chime) GetAccountRequest(input *GetAccountInput) (req *request.Request, output *GetAccountOutput) {
	op := &request.Operation{
		Name:       opGetAccount,
		HTTPMethod: "GET",
		HTTPPath:   "/accounts/{accountId}",
	}

	if input == nil {
		input = &GetAccountInput{}
	}

	output = &GetAccountOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetAccount API operation for Amazon Chime.
//
// Retrieves details for the specified Amazon Chime account, such as account
// type and supported licenses.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetAccount for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetAccount
func (c *Chime) GetAccount(input *GetAccountInput) (*GetAccountOutput, error) {
	req, out := c.GetAccountRequest(input)
	return out, req.Send()
}

// GetAccountWithContext is the same as GetAccount with the addition of
// the ability to pass a context and additional request options.
//
// See GetAccount for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) GetAccountWithContext(ctx aws.Context, input *GetAccountInput, opts ...request.Option) (*GetAccountOutput, error) {
	req, out := c.GetAccountRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetAccountSettings = "GetAccountSettings"

// GetAccountSettingsRequest generates a "aws/request.Request" representing the
// client's request for the GetAccountSettings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetAccountSettings for more information on using the GetAccountSettings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetAccountSettingsRequest method.
//	req, resp := client.GetAccountSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetAccountSettings
func (c *Chime) GetAccountSettingsRequest(input *GetAccountSettingsInput) (req *request.Request, output *GetAccountSettingsOutput) {
	op := &request.Operation{
		Name:       opGetAccountSettings,
		HTTPMethod: "GET",
		HTTPPath:   "/accounts/{accountId}/settings",
	}

	if input == nil {
		input = &GetAccountSettingsInput{}
	}

	output = &GetAccountSettingsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetAccountSettings API operation for Amazon Chime.
//
// Retrieves account settings for the specified Amazon Chime account ID, such
// as remote control and dialout settings. For more information about these
// settings, see Use the Policies Page (https://docs.aws.amazon.com/chime/latest/ag/policies.html)
// in the Amazon Chime Administration Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetAccountSettings for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetAccountSettings
func (c *Chime) GetAccountSettings(input *GetAccountSettingsInput) (*GetAccountSettingsOutput, error) {
	req, out := c.GetAccountSettingsRequest(input)
	return out, req.Send()
}

// GetAccountSettingsWithContext is the same as GetAccountSettings with the addition of
// the ability to pass a context and additional request options.
//
// See GetAccountSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) GetAccountSettingsWithContext(ctx aws.Context, input *GetAccountSettingsInput, opts ...request.Option) (*GetAccountSettingsOutput, error) {
	req, out := c.GetAccountSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetAppInstanceRetentionSettings = "GetAppInstanceRetentionSettings"

// GetAppInstanceRetentionSettingsRequest generates a "aws/request.Request" representing the
// client's request for the GetAppInstanceRetentionSettings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetAppInstanceRetentionSettings for more information on using the GetAppInstanceRetentionSettings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetAppInstanceRetentionSettingsRequest method.
//	req, resp := client.GetAppInstanceRetentionSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetAppInstanceRetentionSettings
//
// Deprecated: Replaced by GetAppInstanceRetentionSettings in the Amazon Chime SDK Identity Namespace
func (c *Chime) GetAppInstanceRetentionSettingsRequest(input *GetAppInstanceRetentionSettingsInput) (req *request.Request, output *GetAppInstanceRetentionSettingsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetAppInstanceRetentionSettings, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetAppInstanceRetentionSettings,
		HTTPMethod: "GET",
		HTTPPath:   "/app-instances/{appInstanceArn}/retention-settings",
	}

	if input == nil {
		input = &GetAppInstanceRetentionSettingsInput{}
	}

	output = &GetAppInstanceRetentionSettingsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// GetAppInstanceRetentionSettings API operation for Amazon Chime.
//
// Gets the retention settings for an AppInstance.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetMessagingRetentionSettings (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_GetAppInstanceRetentionSettings.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetAppInstanceRetentionSettings for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetAppInstanceRetentionSettings
//
// Deprecated: Replaced by GetAppInstanceRetentionSettings in the Amazon Chime SDK Identity Namespace
func (c *Chime) GetAppInstanceRetentionSettings(input *GetAppInstanceRetentionSettingsInput) (*GetAppInstanceRetentionSettingsOutput, error) {
	req, out := c.GetAppInstanceRetentionSettingsRequest(input)
	return out, req.Send()
}

// GetAppInstanceRetentionSettingsWithContext is the same as GetAppInstanceRetentionSettings with the addition of
// the ability to pass a context and additional request options.
//
// See GetAppInstanceRetentionSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetAppInstanceRetentionSettings in the Amazon Chime SDK Identity Namespace
func (c *Chime) GetAppInstanceRetentionSettingsWithContext(ctx aws.Context, input *GetAppInstanceRetentionSettingsInput, opts ...request.Option) (*GetAppInstanceRetentionSettingsOutput, error) {
	req, out := c.GetAppInstanceRetentionSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetAppInstanceStreamingConfigurations = "GetAppInstanceStreamingConfigurations"

// GetAppInstanceStreamingConfigurationsRequest generates a "aws/request.Request" representing the
// client's request for the GetAppInstanceStreamingConfigurations operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetAppInstanceStreamingConfigurations for more information on using the GetAppInstanceStreamingConfigurations
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetAppInstanceStreamingConfigurationsRequest method.
//	req, resp := client.GetAppInstanceStreamingConfigurationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetAppInstanceStreamingConfigurations
//
// Deprecated: Replaced by GetAppInstanceStreamingConfigurations in the Amazon Chime SDK Messaging Namespace
func (c *Chime) GetAppInstanceStreamingConfigurationsRequest(input *GetAppInstanceStreamingConfigurationsInput) (req *request.Request, output *GetAppInstanceStreamingConfigurationsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetAppInstanceStreamingConfigurations, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetAppInstanceStreamingConfigurations,
		HTTPMethod: "GET",
		HTTPPath:   "/app-instances/{appInstanceArn}/streaming-configurations",
	}

	if input == nil {
		input = &GetAppInstanceStreamingConfigurationsInput{}
	}

	output = &GetAppInstanceStreamingConfigurationsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetAppInstanceStreamingConfigurations API operation for Amazon Chime.
//
// Gets the streaming settings for an AppInstance.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetMessagingStreamingConfigurations (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_GetMessagingStreamingConfigurations.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetAppInstanceStreamingConfigurations for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetAppInstanceStreamingConfigurations
//
// Deprecated: Replaced by GetAppInstanceStreamingConfigurations in the Amazon Chime SDK Messaging Namespace
func (c *Chime) GetAppInstanceStreamingConfigurations(input *GetAppInstanceStreamingConfigurationsInput) (*GetAppInstanceStreamingConfigurationsOutput, error) {
	req, out := c.GetAppInstanceStreamingConfigurationsRequest(input)
	return out, req.Send()
}

// GetAppInstanceStreamingConfigurationsWithContext is the same as GetAppInstanceStreamingConfigurations with the addition of
// the ability to pass a context and additional request options.
//
// See GetAppInstanceStreamingConfigurations for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetAppInstanceStreamingConfigurations in the Amazon Chime SDK Messaging Namespace
func (c *Chime) GetAppInstanceStreamingConfigurationsWithContext(ctx aws.Context, input *GetAppInstanceStreamingConfigurationsInput, opts ...request.Option) (*GetAppInstanceStreamingConfigurationsOutput, error) {
	req, out := c.GetAppInstanceStreamingConfigurationsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetAttendee = "GetAttendee"

// GetAttendeeRequest generates a "aws/request.Request" representing the
// client's request for the GetAttendee operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetAttendee for more information on using the GetAttendee
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetAttendeeRequest method.
//	req, resp := client.GetAttendeeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetAttendee
//
// Deprecated: Replaced by GetAttendee in the Amazon Chime SDK Meetings Namespace
func (c *Chime) GetAttendeeRequest(input *GetAttendeeInput) (req *request.Request, output *GetAttendeeOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetAttendee, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetAttendee,
		HTTPMethod: "GET",
		HTTPPath:   "/meetings/{meetingId}/attendees/{attendeeId}",
	}

	if input == nil {
		input = &GetAttendeeInput{}
	}

	output = &GetAttendeeOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetAttendee API operation for Amazon Chime.
//
// Gets the Amazon Chime SDK attendee details for a specified meeting ID and
// attendee ID. For more information about the Amazon Chime SDK, see Using the
// Amazon Chime SDK (https://docs.aws.amazon.com/chime-sdk/latest/dg/meetings-sdk.html)
// in the Amazon Chime SDK Developer Guide.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetAttendee (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_GetAttendee.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetAttendee for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetAttendee
//
// Deprecated: Replaced by GetAttendee in the Amazon Chime SDK Meetings Namespace
func (c *Chime) GetAttendee(input *GetAttendeeInput) (*GetAttendeeOutput, error) {
	req, out := c.GetAttendeeRequest(input)
	return out, req.Send()
}

// GetAttendeeWithContext is the same as GetAttendee with the addition of
// the ability to pass a context and additional request options.
//
// See GetAttendee for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetAttendee in the Amazon Chime SDK Meetings Namespace
func (c *Chime) GetAttendeeWithContext(ctx aws.Context, input *GetAttendeeInput, opts ...request.Option) (*GetAttendeeOutput, error) {
	req, out := c.GetAttendeeRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetBot = "GetBot"

// GetBotRequest generates a "aws/request.Request" representing the
// client's request for the GetBot operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetBot for more information on using the GetBot
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetBotRequest method.
//	req, resp := client.GetBotRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetBot
func (c *Chime) GetBotRequest(input *GetBotInput) (req *request.Request, output *GetBotOutput) {
	op := &request.Operation{
		Name:       opGetBot,
		HTTPMethod: "GET",
		HTTPPath:   "/accounts/{accountId}/bots/{botId}",
	}

	if input == nil {
		input = &GetBotInput{}
	}

	output = &GetBotOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetBot API operation for Amazon Chime.
//
// Retrieves details for the specified bot, such as bot email address, bot type,
// status, and display name.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetBot for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetBot
func (c *Chime) GetBot(input *GetBotInput) (*GetBotOutput, error) {
	req, out := c.GetBotRequest(input)
	return out, req.Send()
}

// GetBotWithContext is the same as GetBot with the addition of
// the ability to pass a context and additional request options.
//
// See GetBot for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) GetBotWithContext(ctx aws.Context, input *GetBotInput, opts ...request.Option) (*GetBotOutput, error) {
	req, out := c.GetBotRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetChannelMessage = "GetChannelMessage"

// GetChannelMessageRequest generates a "aws/request.Request" representing the
// client's request for the GetChannelMessage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetChannelMessage for more information on using the GetChannelMessage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetChannelMessageRequest method.
//	req, resp := client.GetChannelMessageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetChannelMessage
//
// Deprecated: Replaced by GetChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) GetChannelMessageRequest(input *GetChannelMessageInput) (req *request.Request, output *GetChannelMessageOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetChannelMessage, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetChannelMessage,
		HTTPMethod: "GET",
		HTTPPath:   "/channels/{channelArn}/messages/{messageId}",
	}

	if input == nil {
		input = &GetChannelMessageInput{}
	}

	output = &GetChannelMessageOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// GetChannelMessage API operation for Amazon Chime.
//
// Gets the full details of a channel message.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetChannelMessage (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_GetChannelMessage.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetChannelMessage for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetChannelMessage
//
// Deprecated: Replaced by GetChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) GetChannelMessage(input *GetChannelMessageInput) (*GetChannelMessageOutput, error) {
	req, out := c.GetChannelMessageRequest(input)
	return out, req.Send()
}

// GetChannelMessageWithContext is the same as GetChannelMessage with the addition of
// the ability to pass a context and additional request options.
//
// See GetChannelMessage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) GetChannelMessageWithContext(ctx aws.Context, input *GetChannelMessageInput, opts ...request.Option) (*GetChannelMessageOutput, error) {
	req, out := c.GetChannelMessageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetEventsConfiguration = "GetEventsConfiguration"

// GetEventsConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the GetEventsConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetEventsConfiguration for more information on using the GetEventsConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetEventsConfigurationRequest method.
//	req, resp := client.GetEventsConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetEventsConfiguration
func (c *Chime) GetEventsConfigurationRequest(input *GetEventsConfigurationInput) (req *request.Request, output *GetEventsConfigurationOutput) {
	op := &request.Operation{
		Name:       opGetEventsConfiguration,
		HTTPMethod: "GET",
		HTTPPath:   "/accounts/{accountId}/bots/{botId}/events-configuration",
	}

	if input == nil {
		input = &GetEventsConfigurationInput{}
	}

	output = &GetEventsConfigurationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetEventsConfiguration API operation for Amazon Chime.
//
// Gets details for an events configuration that allows a bot to receive outgoing
// events, such as an HTTPS endpoint or Lambda function ARN.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetEventsConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetEventsConfiguration
func (c *Chime) GetEventsConfiguration(input *GetEventsConfigurationInput) (*GetEventsConfigurationOutput, error) {
	req, out := c.GetEventsConfigurationRequest(input)
	return out, req.Send()
}

// GetEventsConfigurationWithContext is the same as GetEventsConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See GetEventsConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) GetEventsConfigurationWithContext(ctx aws.Context, input *GetEventsConfigurationInput, opts ...request.Option) (*GetEventsConfigurationOutput, error) {
	req, out := c.GetEventsConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetGlobalSettings = "GetGlobalSettings"

// GetGlobalSettingsRequest generates a "aws/request.Request" representing the
// client's request for the GetGlobalSettings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetGlobalSettings for more information on using the GetGlobalSettings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetGlobalSettingsRequest method.
//	req, resp := client.GetGlobalSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetGlobalSettings
func (c *Chime) GetGlobalSettingsRequest(input *GetGlobalSettingsInput) (req *request.Request, output *GetGlobalSettingsOutput) {
	op := &request.Operation{
		Name:       opGetGlobalSettings,
		HTTPMethod: "GET",
		HTTPPath:   "/settings",
	}

	if input == nil {
		input = &GetGlobalSettingsInput{}
	}

	output = &GetGlobalSettingsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetGlobalSettings API operation for Amazon Chime.
//
// Retrieves global settings for the administrator's AWS account, such as Amazon
// Chime Business Calling and Amazon Chime Voice Connector settings.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetGlobalSettings for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetGlobalSettings
func (c *Chime) GetGlobalSettings(input *GetGlobalSettingsInput) (*GetGlobalSettingsOutput, error) {
	req, out := c.GetGlobalSettingsRequest(input)
	return out, req.Send()
}

// GetGlobalSettingsWithContext is the same as GetGlobalSettings with the addition of
// the ability to pass a context and additional request options.
//
// See GetGlobalSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) GetGlobalSettingsWithContext(ctx aws.Context, input *GetGlobalSettingsInput, opts ...request.Option) (*GetGlobalSettingsOutput, error) {
	req, out := c.GetGlobalSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetMediaCapturePipeline = "GetMediaCapturePipeline"

// GetMediaCapturePipelineRequest generates a "aws/request.Request" representing the
// client's request for the GetMediaCapturePipeline operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetMediaCapturePipeline for more information on using the GetMediaCapturePipeline
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetMediaCapturePipelineRequest method.
//	req, resp := client.GetMediaCapturePipelineRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetMediaCapturePipeline
//
// Deprecated: Replaced by GetMediaCapturePipeline in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) GetMediaCapturePipelineRequest(input *GetMediaCapturePipelineInput) (req *request.Request, output *GetMediaCapturePipelineOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetMediaCapturePipeline, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetMediaCapturePipeline,
		HTTPMethod: "GET",
		HTTPPath:   "/media-capture-pipelines/{mediaPipelineId}",
	}

	if input == nil {
		input = &GetMediaCapturePipelineInput{}
	}

	output = &GetMediaCapturePipelineOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetMediaCapturePipeline API operation for Amazon Chime.
//
// Gets an existing media capture pipeline.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetMediaCapturePipeline (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaCapturePipeline.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetMediaCapturePipeline for usage and error information.
//
// Returned Error Types:
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetMediaCapturePipeline
//
// Deprecated: Replaced by GetMediaCapturePipeline in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) GetMediaCapturePipeline(input *GetMediaCapturePipelineInput) (*GetMediaCapturePipelineOutput, error) {
	req, out := c.GetMediaCapturePipelineRequest(input)
	return out, req.Send()
}

// GetMediaCapturePipelineWithContext is the same as GetMediaCapturePipeline with the addition of
// the ability to pass a context and additional request options.
//
// See GetMediaCapturePipeline for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetMediaCapturePipeline in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) GetMediaCapturePipelineWithContext(ctx aws.Context, input *GetMediaCapturePipelineInput, opts ...request.Option) (*GetMediaCapturePipelineOutput, error) {
	req, out := c.GetMediaCapturePipelineRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetMeeting = "GetMeeting"

// GetMeetingRequest generates a "aws/request.Request" representing the
// client's request for the GetMeeting operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetMeeting for more information on using the GetMeeting
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetMeetingRequest method.
//	req, resp := client.GetMeetingRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetMeeting
//
// Deprecated: Replaced by GetMeeting in the Amazon Chime SDK Meetings Namespace
func (c *Chime) GetMeetingRequest(input *GetMeetingInput) (req *request.Request, output *GetMeetingOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetMeeting, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetMeeting,
		HTTPMethod: "GET",
		HTTPPath:   "/meetings/{meetingId}",
	}

	if input == nil {
		input = &GetMeetingInput{}
	}

	output = &GetMeetingOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetMeeting API operation for Amazon Chime.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetMeeting (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_GetMeeting.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Gets the Amazon Chime SDK meeting details for the specified meeting ID. For
// more information about the Amazon Chime SDK, see Using the Amazon Chime SDK
// (https://docs.aws.amazon.com/chime-sdk/latest/dg/meetings-sdk.html) in the
// Amazon Chime SDK Developer Guide .
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetMeeting for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetMeeting
//
// Deprecated: Replaced by GetMeeting in the Amazon Chime SDK Meetings Namespace
func (c *Chime) GetMeeting(input *GetMeetingInput) (*GetMeetingOutput, error) {
	req, out := c.GetMeetingRequest(input)
	return out, req.Send()
}

// GetMeetingWithContext is the same as GetMeeting with the addition of
// the ability to pass a context and additional request options.
//
// See GetMeeting for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetMeeting in the Amazon Chime SDK Meetings Namespace
func (c *Chime) GetMeetingWithContext(ctx aws.Context, input *GetMeetingInput, opts ...request.Option) (*GetMeetingOutput, error) {
	req, out := c.GetMeetingRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetMessagingSessionEndpoint = "GetMessagingSessionEndpoint"

// GetMessagingSessionEndpointRequest generates a "aws/request.Request" representing the
// client's request for the GetMessagingSessionEndpoint operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetMessagingSessionEndpoint for more information on using the GetMessagingSessionEndpoint
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetMessagingSessionEndpointRequest method.
//	req, resp := client.GetMessagingSessionEndpointRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetMessagingSessionEndpoint
//
// Deprecated: Replaced by GetMessagingSessionEndpoint in the Amazon Chime SDK Messaging Namespace
func (c *Chime) GetMessagingSessionEndpointRequest(input *GetMessagingSessionEndpointInput) (req *request.Request, output *GetMessagingSessionEndpointOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetMessagingSessionEndpoint, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetMessagingSessionEndpoint,
		HTTPMethod: "GET",
		HTTPPath:   "/endpoints/messaging-session",
	}

	if input == nil {
		input = &GetMessagingSessionEndpointInput{}
	}

	output = &GetMessagingSessionEndpointOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// GetMessagingSessionEndpoint API operation for Amazon Chime.
//
// The details of the endpoint for the messaging session.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetMessagingSessionEndpoint (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_GetMessagingSessionEndpoint.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetMessagingSessionEndpoint for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetMessagingSessionEndpoint
//
// Deprecated: Replaced by GetMessagingSessionEndpoint in the Amazon Chime SDK Messaging Namespace
func (c *Chime) GetMessagingSessionEndpoint(input *GetMessagingSessionEndpointInput) (*GetMessagingSessionEndpointOutput, error) {
	req, out := c.GetMessagingSessionEndpointRequest(input)
	return out, req.Send()
}

// GetMessagingSessionEndpointWithContext is the same as GetMessagingSessionEndpoint with the addition of
// the ability to pass a context and additional request options.
//
// See GetMessagingSessionEndpoint for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetMessagingSessionEndpoint in the Amazon Chime SDK Messaging Namespace
func (c *Chime) GetMessagingSessionEndpointWithContext(ctx aws.Context, input *GetMessagingSessionEndpointInput, opts ...request.Option) (*GetMessagingSessionEndpointOutput, error) {
	req, out := c.GetMessagingSessionEndpointRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetPhoneNumber = "GetPhoneNumber"

// GetPhoneNumberRequest generates a "aws/request.Request" representing the
// client's request for the GetPhoneNumber operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetPhoneNumber for more information on using the GetPhoneNumber
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetPhoneNumberRequest method.
//	req, resp := client.GetPhoneNumberRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetPhoneNumber
func (c *Chime) GetPhoneNumberRequest(input *GetPhoneNumberInput) (req *request.Request, output *GetPhoneNumberOutput) {
	op := &request.Operation{
		Name:       opGetPhoneNumber,
		HTTPMethod: "GET",
		HTTPPath:   "/phone-numbers/{phoneNumberId}",
	}

	if input == nil {
		input = &GetPhoneNumberInput{}
	}

	output = &GetPhoneNumberOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetPhoneNumber API operation for Amazon Chime.
//
// Retrieves details for the specified phone number ID, such as associations,
// capabilities, and product type.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetPhoneNumber for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetPhoneNumber
func (c *Chime) GetPhoneNumber(input *GetPhoneNumberInput) (*GetPhoneNumberOutput, error) {
	req, out := c.GetPhoneNumberRequest(input)
	return out, req.Send()
}

// GetPhoneNumberWithContext is the same as GetPhoneNumber with the addition of
// the ability to pass a context and additional request options.
//
// See GetPhoneNumber for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) GetPhoneNumberWithContext(ctx aws.Context, input *GetPhoneNumberInput, opts ...request.Option) (*GetPhoneNumberOutput, error) {
	req, out := c.GetPhoneNumberRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetPhoneNumberOrder = "GetPhoneNumberOrder"

// GetPhoneNumberOrderRequest generates a "aws/request.Request" representing the
// client's request for the GetPhoneNumberOrder operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetPhoneNumberOrder for more information on using the GetPhoneNumberOrder
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetPhoneNumberOrderRequest method.
//	req, resp := client.GetPhoneNumberOrderRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetPhoneNumberOrder
func (c *Chime) GetPhoneNumberOrderRequest(input *GetPhoneNumberOrderInput) (req *request.Request, output *GetPhoneNumberOrderOutput) {
	op := &request.Operation{
		Name:       opGetPhoneNumberOrder,
		HTTPMethod: "GET",
		HTTPPath:   "/phone-number-orders/{phoneNumberOrderId}",
	}

	if input == nil {
		input = &GetPhoneNumberOrderInput{}
	}

	output = &GetPhoneNumberOrderOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetPhoneNumberOrder API operation for Amazon Chime.
//
// Retrieves details for the specified phone number order, such as the order
// creation timestamp, phone numbers in E.164 format, product type, and order
// status.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetPhoneNumberOrder for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetPhoneNumberOrder
func (c *Chime) GetPhoneNumberOrder(input *GetPhoneNumberOrderInput) (*GetPhoneNumberOrderOutput, error) {
	req, out := c.GetPhoneNumberOrderRequest(input)
	return out, req.Send()
}

// GetPhoneNumberOrderWithContext is the same as GetPhoneNumberOrder with the addition of
// the ability to pass a context and additional request options.
//
// See GetPhoneNumberOrder for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) GetPhoneNumberOrderWithContext(ctx aws.Context, input *GetPhoneNumberOrderInput, opts ...request.Option) (*GetPhoneNumberOrderOutput, error) {
	req, out := c.GetPhoneNumberOrderRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetPhoneNumberSettings = "GetPhoneNumberSettings"

// GetPhoneNumberSettingsRequest generates a "aws/request.Request" representing the
// client's request for the GetPhoneNumberSettings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetPhoneNumberSettings for more information on using the GetPhoneNumberSettings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetPhoneNumberSettingsRequest method.
//	req, resp := client.GetPhoneNumberSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetPhoneNumberSettings
func (c *Chime) GetPhoneNumberSettingsRequest(input *GetPhoneNumberSettingsInput) (req *request.Request, output *GetPhoneNumberSettingsOutput) {
	op := &request.Operation{
		Name:       opGetPhoneNumberSettings,
		HTTPMethod: "GET",
		HTTPPath:   "/settings/phone-number",
	}

	if input == nil {
		input = &GetPhoneNumberSettingsInput{}
	}

	output = &GetPhoneNumberSettingsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetPhoneNumberSettings API operation for Amazon Chime.
//
// Retrieves the phone number settings for the administrator's AWS account,
// such as the default outbound calling name.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetPhoneNumberSettings for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetPhoneNumberSettings
func (c *Chime) GetPhoneNumberSettings(input *GetPhoneNumberSettingsInput) (*GetPhoneNumberSettingsOutput, error) {
	req, out := c.GetPhoneNumberSettingsRequest(input)
	return out, req.Send()
}

// GetPhoneNumberSettingsWithContext is the same as GetPhoneNumberSettings with the addition of
// the ability to pass a context and additional request options.
//
// See GetPhoneNumberSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) GetPhoneNumberSettingsWithContext(ctx aws.Context, input *GetPhoneNumberSettingsInput, opts ...request.Option) (*GetPhoneNumberSettingsOutput, error) {
	req, out := c.GetPhoneNumberSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetProxySession = "GetProxySession"

// GetProxySessionRequest generates a "aws/request.Request" representing the
// client's request for the GetProxySession operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetProxySession for more information on using the GetProxySession
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetProxySessionRequest method.
//	req, resp := client.GetProxySessionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetProxySession
//
// Deprecated: Replaced by GetProxySession in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetProxySessionRequest(input *GetProxySessionInput) (req *request.Request, output *GetProxySessionOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetProxySession, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetProxySession,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/proxy-sessions/{proxySessionId}",
	}

	if input == nil {
		input = &GetProxySessionInput{}
	}

	output = &GetProxySessionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetProxySession API operation for Amazon Chime.
//
// Gets the specified proxy session details for the specified Amazon Chime Voice
// Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetProxySession (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetProxySession.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetProxySession for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetProxySession
//
// Deprecated: Replaced by GetProxySession in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetProxySession(input *GetProxySessionInput) (*GetProxySessionOutput, error) {
	req, out := c.GetProxySessionRequest(input)
	return out, req.Send()
}

// GetProxySessionWithContext is the same as GetProxySession with the addition of
// the ability to pass a context and additional request options.
//
// See GetProxySession for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetProxySession in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetProxySessionWithContext(ctx aws.Context, input *GetProxySessionInput, opts ...request.Option) (*GetProxySessionOutput, error) {
	req, out := c.GetProxySessionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetRetentionSettings = "GetRetentionSettings"

// GetRetentionSettingsRequest generates a "aws/request.Request" representing the
// client's request for the GetRetentionSettings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetRetentionSettings for more information on using the GetRetentionSettings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetRetentionSettingsRequest method.
//	req, resp := client.GetRetentionSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetRetentionSettings
func (c *Chime) GetRetentionSettingsRequest(input *GetRetentionSettingsInput) (req *request.Request, output *GetRetentionSettingsOutput) {
	op := &request.Operation{
		Name:       opGetRetentionSettings,
		HTTPMethod: "GET",
		HTTPPath:   "/accounts/{accountId}/retention-settings",
	}

	if input == nil {
		input = &GetRetentionSettingsInput{}
	}

	output = &GetRetentionSettingsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetRetentionSettings API operation for Amazon Chime.
//
// Gets the retention settings for the specified Amazon Chime Enterprise account.
// For more information about retention settings, see Managing Chat Retention
// Policies (https://docs.aws.amazon.com/chime/latest/ag/chat-retention.html)
// in the Amazon Chime Administration Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetRetentionSettings for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetRetentionSettings
func (c *Chime) GetRetentionSettings(input *GetRetentionSettingsInput) (*GetRetentionSettingsOutput, error) {
	req, out := c.GetRetentionSettingsRequest(input)
	return out, req.Send()
}

// GetRetentionSettingsWithContext is the same as GetRetentionSettings with the addition of
// the ability to pass a context and additional request options.
//
// See GetRetentionSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) GetRetentionSettingsWithContext(ctx aws.Context, input *GetRetentionSettingsInput, opts ...request.Option) (*GetRetentionSettingsOutput, error) {
	req, out := c.GetRetentionSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetRoom = "GetRoom"

// GetRoomRequest generates a "aws/request.Request" representing the
// client's request for the GetRoom operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetRoom for more information on using the GetRoom
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetRoomRequest method.
//	req, resp := client.GetRoomRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetRoom
func (c *Chime) GetRoomRequest(input *GetRoomInput) (req *request.Request, output *GetRoomOutput) {
	op := &request.Operation{
		Name:       opGetRoom,
		HTTPMethod: "GET",
		HTTPPath:   "/accounts/{accountId}/rooms/{roomId}",
	}

	if input == nil {
		input = &GetRoomInput{}
	}

	output = &GetRoomOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetRoom API operation for Amazon Chime.
//
// Retrieves room details, such as the room name, for a room in an Amazon Chime
// Enterprise account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetRoom for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetRoom
func (c *Chime) GetRoom(input *GetRoomInput) (*GetRoomOutput, error) {
	req, out := c.GetRoomRequest(input)
	return out, req.Send()
}

// GetRoomWithContext is the same as GetRoom with the addition of
// the ability to pass a context and additional request options.
//
// See GetRoom for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) GetRoomWithContext(ctx aws.Context, input *GetRoomInput, opts ...request.Option) (*GetRoomOutput, error) {
	req, out := c.GetRoomRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetSipMediaApplication = "GetSipMediaApplication"

// GetSipMediaApplicationRequest generates a "aws/request.Request" representing the
// client's request for the GetSipMediaApplication operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetSipMediaApplication for more information on using the GetSipMediaApplication
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetSipMediaApplicationRequest method.
//	req, resp := client.GetSipMediaApplicationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetSipMediaApplication
//
// Deprecated: Replaced by GetSipMediaApplication in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetSipMediaApplicationRequest(input *GetSipMediaApplicationInput) (req *request.Request, output *GetSipMediaApplicationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetSipMediaApplication, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetSipMediaApplication,
		HTTPMethod: "GET",
		HTTPPath:   "/sip-media-applications/{sipMediaApplicationId}",
	}

	if input == nil {
		input = &GetSipMediaApplicationInput{}
	}

	output = &GetSipMediaApplicationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetSipMediaApplication API operation for Amazon Chime.
//
// Retrieves the information for a SIP media application, including name, AWS
// Region, and endpoints.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetSipMediaApplication (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetSipMediaApplication.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetSipMediaApplication for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetSipMediaApplication
//
// Deprecated: Replaced by GetSipMediaApplication in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetSipMediaApplication(input *GetSipMediaApplicationInput) (*GetSipMediaApplicationOutput, error) {
	req, out := c.GetSipMediaApplicationRequest(input)
	return out, req.Send()
}

// GetSipMediaApplicationWithContext is the same as GetSipMediaApplication with the addition of
// the ability to pass a context and additional request options.
//
// See GetSipMediaApplication for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetSipMediaApplication in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetSipMediaApplicationWithContext(ctx aws.Context, input *GetSipMediaApplicationInput, opts ...request.Option) (*GetSipMediaApplicationOutput, error) {
	req, out := c.GetSipMediaApplicationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetSipMediaApplicationLoggingConfiguration = "GetSipMediaApplicationLoggingConfiguration"

// GetSipMediaApplicationLoggingConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the GetSipMediaApplicationLoggingConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetSipMediaApplicationLoggingConfiguration for more information on using the GetSipMediaApplicationLoggingConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetSipMediaApplicationLoggingConfigurationRequest method.
//	req, resp := client.GetSipMediaApplicationLoggingConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetSipMediaApplicationLoggingConfiguration
//
// Deprecated: Replaced by GetSipMediaApplicationLoggingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetSipMediaApplicationLoggingConfigurationRequest(input *GetSipMediaApplicationLoggingConfigurationInput) (req *request.Request, output *GetSipMediaApplicationLoggingConfigurationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetSipMediaApplicationLoggingConfiguration, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetSipMediaApplicationLoggingConfiguration,
		HTTPMethod: "GET",
		HTTPPath:   "/sip-media-applications/{sipMediaApplicationId}/logging-configuration",
	}

	if input == nil {
		input = &GetSipMediaApplicationLoggingConfigurationInput{}
	}

	output = &GetSipMediaApplicationLoggingConfigurationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetSipMediaApplicationLoggingConfiguration API operation for Amazon Chime.
//
// Returns the logging configuration for the specified SIP media application.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetSipMediaApplicationLoggingConfiguration (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetSipMediaApplicationLoggingConfiguration.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetSipMediaApplicationLoggingConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetSipMediaApplicationLoggingConfiguration
//
// Deprecated: Replaced by GetSipMediaApplicationLoggingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetSipMediaApplicationLoggingConfiguration(input *GetSipMediaApplicationLoggingConfigurationInput) (*GetSipMediaApplicationLoggingConfigurationOutput, error) {
	req, out := c.GetSipMediaApplicationLoggingConfigurationRequest(input)
	return out, req.Send()
}

// GetSipMediaApplicationLoggingConfigurationWithContext is the same as GetSipMediaApplicationLoggingConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See GetSipMediaApplicationLoggingConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetSipMediaApplicationLoggingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetSipMediaApplicationLoggingConfigurationWithContext(ctx aws.Context, input *GetSipMediaApplicationLoggingConfigurationInput, opts ...request.Option) (*GetSipMediaApplicationLoggingConfigurationOutput, error) {
	req, out := c.GetSipMediaApplicationLoggingConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetSipRule = "GetSipRule"

// GetSipRuleRequest generates a "aws/request.Request" representing the
// client's request for the GetSipRule operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetSipRule for more information on using the GetSipRule
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetSipRuleRequest method.
//	req, resp := client.GetSipRuleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetSipRule
//
// Deprecated: Replaced by GetSipRule in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetSipRuleRequest(input *GetSipRuleInput) (req *request.Request, output *GetSipRuleOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetSipRule, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetSipRule,
		HTTPMethod: "GET",
		HTTPPath:   "/sip-rules/{sipRuleId}",
	}

	if input == nil {
		input = &GetSipRuleInput{}
	}

	output = &GetSipRuleOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetSipRule API operation for Amazon Chime.
//
// Retrieves the details of a SIP rule, such as the rule ID, name, triggers,
// and target endpoints.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetSipRule (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetSipRule.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetSipRule for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetSipRule
//
// Deprecated: Replaced by GetSipRule in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetSipRule(input *GetSipRuleInput) (*GetSipRuleOutput, error) {
	req, out := c.GetSipRuleRequest(input)
	return out, req.Send()
}

// GetSipRuleWithContext is the same as GetSipRule with the addition of
// the ability to pass a context and additional request options.
//
// See GetSipRule for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetSipRule in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetSipRuleWithContext(ctx aws.Context, input *GetSipRuleInput, opts ...request.Option) (*GetSipRuleOutput, error) {
	req, out := c.GetSipRuleRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetUser = "GetUser"

// GetUserRequest generates a "aws/request.Request" representing the
// client's request for the GetUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetUser for more information on using the GetUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetUserRequest method.
//	req, resp := client.GetUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetUser
func (c *Chime) GetUserRequest(input *GetUserInput) (req *request.Request, output *GetUserOutput) {
	op := &request.Operation{
		Name:       opGetUser,
		HTTPMethod: "GET",
		HTTPPath:   "/accounts/{accountId}/users/{userId}",
	}

	if input == nil {
		input = &GetUserInput{}
	}

	output = &GetUserOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetUser API operation for Amazon Chime.
//
// Retrieves details for the specified user ID, such as primary email address,
// license type,and personal meeting PIN.
//
// To retrieve user details with an email address instead of a user ID, use
// the ListUsers action, and then filter by email address.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetUser for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetUser
func (c *Chime) GetUser(input *GetUserInput) (*GetUserOutput, error) {
	req, out := c.GetUserRequest(input)
	return out, req.Send()
}

// GetUserWithContext is the same as GetUser with the addition of
// the ability to pass a context and additional request options.
//
// See GetUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) GetUserWithContext(ctx aws.Context, input *GetUserInput, opts ...request.Option) (*GetUserOutput, error) {
	req, out := c.GetUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetUserSettings = "GetUserSettings"

// GetUserSettingsRequest generates a "aws/request.Request" representing the
// client's request for the GetUserSettings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetUserSettings for more information on using the GetUserSettings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetUserSettingsRequest method.
//	req, resp := client.GetUserSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetUserSettings
func (c *Chime) GetUserSettingsRequest(input *GetUserSettingsInput) (req *request.Request, output *GetUserSettingsOutput) {
	op := &request.Operation{
		Name:       opGetUserSettings,
		HTTPMethod: "GET",
		HTTPPath:   "/accounts/{accountId}/users/{userId}/settings",
	}

	if input == nil {
		input = &GetUserSettingsInput{}
	}

	output = &GetUserSettingsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetUserSettings API operation for Amazon Chime.
//
// Retrieves settings for the specified user ID, such as any associated phone
// number settings.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetUserSettings for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetUserSettings
func (c *Chime) GetUserSettings(input *GetUserSettingsInput) (*GetUserSettingsOutput, error) {
	req, out := c.GetUserSettingsRequest(input)
	return out, req.Send()
}

// GetUserSettingsWithContext is the same as GetUserSettings with the addition of
// the ability to pass a context and additional request options.
//
// See GetUserSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) GetUserSettingsWithContext(ctx aws.Context, input *GetUserSettingsInput, opts ...request.Option) (*GetUserSettingsOutput, error) {
	req, out := c.GetUserSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetVoiceConnector = "GetVoiceConnector"

// GetVoiceConnectorRequest generates a "aws/request.Request" representing the
// client's request for the GetVoiceConnector operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetVoiceConnector for more information on using the GetVoiceConnector
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetVoiceConnectorRequest method.
//	req, resp := client.GetVoiceConnectorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnector
//
// Deprecated: Replaced by GetVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorRequest(input *GetVoiceConnectorInput) (req *request.Request, output *GetVoiceConnectorOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetVoiceConnector, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetVoiceConnector,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}",
	}

	if input == nil {
		input = &GetVoiceConnectorInput{}
	}

	output = &GetVoiceConnectorOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetVoiceConnector API operation for Amazon Chime.
//
// Retrieves details for the specified Amazon Chime Voice Connector, such as
// timestamps,name, outbound host, and encryption requirements.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetVoiceConnector (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceConnector.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetVoiceConnector for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnector
//
// Deprecated: Replaced by GetVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnector(input *GetVoiceConnectorInput) (*GetVoiceConnectorOutput, error) {
	req, out := c.GetVoiceConnectorRequest(input)
	return out, req.Send()
}

// GetVoiceConnectorWithContext is the same as GetVoiceConnector with the addition of
// the ability to pass a context and additional request options.
//
// See GetVoiceConnector for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorWithContext(ctx aws.Context, input *GetVoiceConnectorInput, opts ...request.Option) (*GetVoiceConnectorOutput, error) {
	req, out := c.GetVoiceConnectorRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetVoiceConnectorEmergencyCallingConfiguration = "GetVoiceConnectorEmergencyCallingConfiguration"

// GetVoiceConnectorEmergencyCallingConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the GetVoiceConnectorEmergencyCallingConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetVoiceConnectorEmergencyCallingConfiguration for more information on using the GetVoiceConnectorEmergencyCallingConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetVoiceConnectorEmergencyCallingConfigurationRequest method.
//	req, resp := client.GetVoiceConnectorEmergencyCallingConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorEmergencyCallingConfiguration
//
// Deprecated: Replaced by GetVoiceConnectorEmergencyCallingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorEmergencyCallingConfigurationRequest(input *GetVoiceConnectorEmergencyCallingConfigurationInput) (req *request.Request, output *GetVoiceConnectorEmergencyCallingConfigurationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetVoiceConnectorEmergencyCallingConfiguration, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetVoiceConnectorEmergencyCallingConfiguration,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/emergency-calling-configuration",
	}

	if input == nil {
		input = &GetVoiceConnectorEmergencyCallingConfigurationInput{}
	}

	output = &GetVoiceConnectorEmergencyCallingConfigurationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetVoiceConnectorEmergencyCallingConfiguration API operation for Amazon Chime.
//
// Gets the emergency calling configuration details for the specified Amazon
// Chime Voice Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetVoiceConnectorEmergencyCallingConfiguration
// (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceConnectorEmergencyCallingConfiguration.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetVoiceConnectorEmergencyCallingConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorEmergencyCallingConfiguration
//
// Deprecated: Replaced by GetVoiceConnectorEmergencyCallingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorEmergencyCallingConfiguration(input *GetVoiceConnectorEmergencyCallingConfigurationInput) (*GetVoiceConnectorEmergencyCallingConfigurationOutput, error) {
	req, out := c.GetVoiceConnectorEmergencyCallingConfigurationRequest(input)
	return out, req.Send()
}

// GetVoiceConnectorEmergencyCallingConfigurationWithContext is the same as GetVoiceConnectorEmergencyCallingConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See GetVoiceConnectorEmergencyCallingConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetVoiceConnectorEmergencyCallingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorEmergencyCallingConfigurationWithContext(ctx aws.Context, input *GetVoiceConnectorEmergencyCallingConfigurationInput, opts ...request.Option) (*GetVoiceConnectorEmergencyCallingConfigurationOutput, error) {
	req, out := c.GetVoiceConnectorEmergencyCallingConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetVoiceConnectorGroup = "GetVoiceConnectorGroup"

// GetVoiceConnectorGroupRequest generates a "aws/request.Request" representing the
// client's request for the GetVoiceConnectorGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetVoiceConnectorGroup for more information on using the GetVoiceConnectorGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetVoiceConnectorGroupRequest method.
//	req, resp := client.GetVoiceConnectorGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorGroup
//
// Deprecated: Replaced by GetVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorGroupRequest(input *GetVoiceConnectorGroupInput) (req *request.Request, output *GetVoiceConnectorGroupOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetVoiceConnectorGroup, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetVoiceConnectorGroup,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connector-groups/{voiceConnectorGroupId}",
	}

	if input == nil {
		input = &GetVoiceConnectorGroupInput{}
	}

	output = &GetVoiceConnectorGroupOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetVoiceConnectorGroup API operation for Amazon Chime.
//
// Retrieves details for the specified Amazon Chime Voice Connector group, such
// as timestamps,name, and associated VoiceConnectorItems.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetVoiceConnectorGroup (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceConnectorGroup.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetVoiceConnectorGroup for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorGroup
//
// Deprecated: Replaced by GetVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorGroup(input *GetVoiceConnectorGroupInput) (*GetVoiceConnectorGroupOutput, error) {
	req, out := c.GetVoiceConnectorGroupRequest(input)
	return out, req.Send()
}

// GetVoiceConnectorGroupWithContext is the same as GetVoiceConnectorGroup with the addition of
// the ability to pass a context and additional request options.
//
// See GetVoiceConnectorGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorGroupWithContext(ctx aws.Context, input *GetVoiceConnectorGroupInput, opts ...request.Option) (*GetVoiceConnectorGroupOutput, error) {
	req, out := c.GetVoiceConnectorGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetVoiceConnectorLoggingConfiguration = "GetVoiceConnectorLoggingConfiguration"

// GetVoiceConnectorLoggingConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the GetVoiceConnectorLoggingConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetVoiceConnectorLoggingConfiguration for more information on using the GetVoiceConnectorLoggingConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetVoiceConnectorLoggingConfigurationRequest method.
//	req, resp := client.GetVoiceConnectorLoggingConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorLoggingConfiguration
//
// Deprecated: Replaced by GetVoiceConnectorLoggingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorLoggingConfigurationRequest(input *GetVoiceConnectorLoggingConfigurationInput) (req *request.Request, output *GetVoiceConnectorLoggingConfigurationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetVoiceConnectorLoggingConfiguration, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetVoiceConnectorLoggingConfiguration,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/logging-configuration",
	}

	if input == nil {
		input = &GetVoiceConnectorLoggingConfigurationInput{}
	}

	output = &GetVoiceConnectorLoggingConfigurationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetVoiceConnectorLoggingConfiguration API operation for Amazon Chime.
//
// Retrieves the logging configuration details for the specified Amazon Chime
// Voice Connector. Shows whether SIP message logs are enabled for sending to
// Amazon CloudWatch Logs.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetVoiceConnectorLoggingConfiguration (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceConnectorLoggingConfiguration.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetVoiceConnectorLoggingConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorLoggingConfiguration
//
// Deprecated: Replaced by GetVoiceConnectorLoggingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorLoggingConfiguration(input *GetVoiceConnectorLoggingConfigurationInput) (*GetVoiceConnectorLoggingConfigurationOutput, error) {
	req, out := c.GetVoiceConnectorLoggingConfigurationRequest(input)
	return out, req.Send()
}

// GetVoiceConnectorLoggingConfigurationWithContext is the same as GetVoiceConnectorLoggingConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See GetVoiceConnectorLoggingConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetVoiceConnectorLoggingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorLoggingConfigurationWithContext(ctx aws.Context, input *GetVoiceConnectorLoggingConfigurationInput, opts ...request.Option) (*GetVoiceConnectorLoggingConfigurationOutput, error) {
	req, out := c.GetVoiceConnectorLoggingConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetVoiceConnectorOrigination = "GetVoiceConnectorOrigination"

// GetVoiceConnectorOriginationRequest generates a "aws/request.Request" representing the
// client's request for the GetVoiceConnectorOrigination operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetVoiceConnectorOrigination for more information on using the GetVoiceConnectorOrigination
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetVoiceConnectorOriginationRequest method.
//	req, resp := client.GetVoiceConnectorOriginationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorOrigination
//
// Deprecated: Replaced by GetVoiceConnectorOrigination in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorOriginationRequest(input *GetVoiceConnectorOriginationInput) (req *request.Request, output *GetVoiceConnectorOriginationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetVoiceConnectorOrigination, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetVoiceConnectorOrigination,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/origination",
	}

	if input == nil {
		input = &GetVoiceConnectorOriginationInput{}
	}

	output = &GetVoiceConnectorOriginationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetVoiceConnectorOrigination API operation for Amazon Chime.
//
// Retrieves origination setting details for the specified Amazon Chime Voice
// Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetVoiceConnectorOrigination (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceConnectorOrigination.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetVoiceConnectorOrigination for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorOrigination
//
// Deprecated: Replaced by GetVoiceConnectorOrigination in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorOrigination(input *GetVoiceConnectorOriginationInput) (*GetVoiceConnectorOriginationOutput, error) {
	req, out := c.GetVoiceConnectorOriginationRequest(input)
	return out, req.Send()
}

// GetVoiceConnectorOriginationWithContext is the same as GetVoiceConnectorOrigination with the addition of
// the ability to pass a context and additional request options.
//
// See GetVoiceConnectorOrigination for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetVoiceConnectorOrigination in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorOriginationWithContext(ctx aws.Context, input *GetVoiceConnectorOriginationInput, opts ...request.Option) (*GetVoiceConnectorOriginationOutput, error) {
	req, out := c.GetVoiceConnectorOriginationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetVoiceConnectorProxy = "GetVoiceConnectorProxy"

// GetVoiceConnectorProxyRequest generates a "aws/request.Request" representing the
// client's request for the GetVoiceConnectorProxy operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetVoiceConnectorProxy for more information on using the GetVoiceConnectorProxy
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetVoiceConnectorProxyRequest method.
//	req, resp := client.GetVoiceConnectorProxyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorProxy
//
// Deprecated: Replaced by GetVoiceConnectorProxy in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorProxyRequest(input *GetVoiceConnectorProxyInput) (req *request.Request, output *GetVoiceConnectorProxyOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetVoiceConnectorProxy, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetVoiceConnectorProxy,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/programmable-numbers/proxy",
	}

	if input == nil {
		input = &GetVoiceConnectorProxyInput{}
	}

	output = &GetVoiceConnectorProxyOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetVoiceConnectorProxy API operation for Amazon Chime.
//
// Gets the proxy configuration details for the specified Amazon Chime Voice
// Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetVoiceConnectorProxy (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceConnectorProxy.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetVoiceConnectorProxy for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorProxy
//
// Deprecated: Replaced by GetVoiceConnectorProxy in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorProxy(input *GetVoiceConnectorProxyInput) (*GetVoiceConnectorProxyOutput, error) {
	req, out := c.GetVoiceConnectorProxyRequest(input)
	return out, req.Send()
}

// GetVoiceConnectorProxyWithContext is the same as GetVoiceConnectorProxy with the addition of
// the ability to pass a context and additional request options.
//
// See GetVoiceConnectorProxy for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetVoiceConnectorProxy in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorProxyWithContext(ctx aws.Context, input *GetVoiceConnectorProxyInput, opts ...request.Option) (*GetVoiceConnectorProxyOutput, error) {
	req, out := c.GetVoiceConnectorProxyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetVoiceConnectorStreamingConfiguration = "GetVoiceConnectorStreamingConfiguration"

// GetVoiceConnectorStreamingConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the GetVoiceConnectorStreamingConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetVoiceConnectorStreamingConfiguration for more information on using the GetVoiceConnectorStreamingConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetVoiceConnectorStreamingConfigurationRequest method.
//	req, resp := client.GetVoiceConnectorStreamingConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorStreamingConfiguration
//
// Deprecated: Replaced by GetVoiceConnectorStreamingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorStreamingConfigurationRequest(input *GetVoiceConnectorStreamingConfigurationInput) (req *request.Request, output *GetVoiceConnectorStreamingConfigurationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetVoiceConnectorStreamingConfiguration, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetVoiceConnectorStreamingConfiguration,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/streaming-configuration",
	}

	if input == nil {
		input = &GetVoiceConnectorStreamingConfigurationInput{}
	}

	output = &GetVoiceConnectorStreamingConfigurationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetVoiceConnectorStreamingConfiguration API operation for Amazon Chime.
//
// Retrieves the streaming configuration details for the specified Amazon Chime
// Voice Connector. Shows whether media streaming is enabled for sending to
// Amazon Kinesis. It also shows the retention period, in hours, for the Amazon
// Kinesis data.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetVoiceConnectorStreamingConfiguration (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceConnectorStreamingConfiguration.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetVoiceConnectorStreamingConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorStreamingConfiguration
//
// Deprecated: Replaced by GetVoiceConnectorStreamingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorStreamingConfiguration(input *GetVoiceConnectorStreamingConfigurationInput) (*GetVoiceConnectorStreamingConfigurationOutput, error) {
	req, out := c.GetVoiceConnectorStreamingConfigurationRequest(input)
	return out, req.Send()
}

// GetVoiceConnectorStreamingConfigurationWithContext is the same as GetVoiceConnectorStreamingConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See GetVoiceConnectorStreamingConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetVoiceConnectorStreamingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorStreamingConfigurationWithContext(ctx aws.Context, input *GetVoiceConnectorStreamingConfigurationInput, opts ...request.Option) (*GetVoiceConnectorStreamingConfigurationOutput, error) {
	req, out := c.GetVoiceConnectorStreamingConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetVoiceConnectorTermination = "GetVoiceConnectorTermination"

// GetVoiceConnectorTerminationRequest generates a "aws/request.Request" representing the
// client's request for the GetVoiceConnectorTermination operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetVoiceConnectorTermination for more information on using the GetVoiceConnectorTermination
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetVoiceConnectorTerminationRequest method.
//	req, resp := client.GetVoiceConnectorTerminationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorTermination
//
// Deprecated: Replaced by GetVoiceConnectorTermination in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorTerminationRequest(input *GetVoiceConnectorTerminationInput) (req *request.Request, output *GetVoiceConnectorTerminationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetVoiceConnectorTermination, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetVoiceConnectorTermination,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/termination",
	}

	if input == nil {
		input = &GetVoiceConnectorTerminationInput{}
	}

	output = &GetVoiceConnectorTerminationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetVoiceConnectorTermination API operation for Amazon Chime.
//
// Retrieves termination setting details for the specified Amazon Chime Voice
// Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetVoiceConnectorTermination (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceConnectorTermination.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetVoiceConnectorTermination for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorTermination
//
// Deprecated: Replaced by GetVoiceConnectorTermination in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorTermination(input *GetVoiceConnectorTerminationInput) (*GetVoiceConnectorTerminationOutput, error) {
	req, out := c.GetVoiceConnectorTerminationRequest(input)
	return out, req.Send()
}

// GetVoiceConnectorTerminationWithContext is the same as GetVoiceConnectorTermination with the addition of
// the ability to pass a context and additional request options.
//
// See GetVoiceConnectorTermination for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetVoiceConnectorTermination in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorTerminationWithContext(ctx aws.Context, input *GetVoiceConnectorTerminationInput, opts ...request.Option) (*GetVoiceConnectorTerminationOutput, error) {
	req, out := c.GetVoiceConnectorTerminationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetVoiceConnectorTerminationHealth = "GetVoiceConnectorTerminationHealth"

// GetVoiceConnectorTerminationHealthRequest generates a "aws/request.Request" representing the
// client's request for the GetVoiceConnectorTerminationHealth operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetVoiceConnectorTerminationHealth for more information on using the GetVoiceConnectorTerminationHealth
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetVoiceConnectorTerminationHealthRequest method.
//	req, resp := client.GetVoiceConnectorTerminationHealthRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorTerminationHealth
//
// Deprecated: Replaced by GetVoiceConnectorTerminationHealth in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorTerminationHealthRequest(input *GetVoiceConnectorTerminationHealthInput) (req *request.Request, output *GetVoiceConnectorTerminationHealthOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, GetVoiceConnectorTerminationHealth, has been deprecated")
	}
	op := &request.Operation{
		Name:       opGetVoiceConnectorTerminationHealth,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/termination/health",
	}

	if input == nil {
		input = &GetVoiceConnectorTerminationHealthInput{}
	}

	output = &GetVoiceConnectorTerminationHealthOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetVoiceConnectorTerminationHealth API operation for Amazon Chime.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, GetVoiceConnectorTerminationHealth (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceConnectorTerminationHealth.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Retrieves information about the last time a SIP OPTIONS ping was received
// from your SIP infrastructure for the specified Amazon Chime Voice Connector.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation GetVoiceConnectorTerminationHealth for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/GetVoiceConnectorTerminationHealth
//
// Deprecated: Replaced by GetVoiceConnectorTerminationHealth in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorTerminationHealth(input *GetVoiceConnectorTerminationHealthInput) (*GetVoiceConnectorTerminationHealthOutput, error) {
	req, out := c.GetVoiceConnectorTerminationHealthRequest(input)
	return out, req.Send()
}

// GetVoiceConnectorTerminationHealthWithContext is the same as GetVoiceConnectorTerminationHealth with the addition of
// the ability to pass a context and additional request options.
//
// See GetVoiceConnectorTerminationHealth for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by GetVoiceConnectorTerminationHealth in the Amazon Chime SDK Voice Namespace
func (c *Chime) GetVoiceConnectorTerminationHealthWithContext(ctx aws.Context, input *GetVoiceConnectorTerminationHealthInput, opts ...request.Option) (*GetVoiceConnectorTerminationHealthOutput, error) {
	req, out := c.GetVoiceConnectorTerminationHealthRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opInviteUsers = "InviteUsers"

// InviteUsersRequest generates a "aws/request.Request" representing the
// client's request for the InviteUsers operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See InviteUsers for more information on using the InviteUsers
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the InviteUsersRequest method.
//	req, resp := client.InviteUsersRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/InviteUsers
func (c *Chime) InviteUsersRequest(input *InviteUsersInput) (req *request.Request, output *InviteUsersOutput) {
	op := &request.Operation{
		Name:       opInviteUsers,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/users?operation=add",
	}

	if input == nil {
		input = &InviteUsersInput{}
	}

	output = &InviteUsersOutput{}
	req = c.newRequest(op, input, output)
	return
}

// InviteUsers API operation for Amazon Chime.
//
// Sends email to a maximum of 50 users, inviting them to the specified Amazon
// Chime Team account. Only Team account types are currently supported for this
// action.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation InviteUsers for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/InviteUsers
func (c *Chime) InviteUsers(input *InviteUsersInput) (*InviteUsersOutput, error) {
	req, out := c.InviteUsersRequest(input)
	return out, req.Send()
}

// InviteUsersWithContext is the same as InviteUsers with the addition of
// the ability to pass a context and additional request options.
//
// See InviteUsers for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) InviteUsersWithContext(ctx aws.Context, input *InviteUsersInput, opts ...request.Option) (*InviteUsersOutput, error) {
	req, out := c.InviteUsersRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListAccounts = "ListAccounts"

// ListAccountsRequest generates a "aws/request.Request" representing the
// client's request for the ListAccounts operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAccounts for more information on using the ListAccounts
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAccountsRequest method.
//	req, resp := client.ListAccountsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListAccounts
func (c *Chime) ListAccountsRequest(input *ListAccountsInput) (req *request.Request, output *ListAccountsOutput) {
	op := &request.Operation{
		Name:       opListAccounts,
		HTTPMethod: "GET",
		HTTPPath:   "/accounts",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAccountsInput{}
	}

	output = &ListAccountsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListAccounts API operation for Amazon Chime.
//
// Lists the Amazon Chime accounts under the administrator's AWS account. You
// can filter accounts by account name prefix. To find out which Amazon Chime
// account a user belongs to, you can filter by the user's email address, which
// returns one account result.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListAccounts for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListAccounts
func (c *Chime) ListAccounts(input *ListAccountsInput) (*ListAccountsOutput, error) {
	req, out := c.ListAccountsRequest(input)
	return out, req.Send()
}

// ListAccountsWithContext is the same as ListAccounts with the addition of
// the ability to pass a context and additional request options.
//
// See ListAccounts for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListAccountsWithContext(ctx aws.Context, input *ListAccountsInput, opts ...request.Option) (*ListAccountsOutput, error) {
	req, out := c.ListAccountsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAccountsPages iterates over the pages of a ListAccounts operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAccounts method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListAccounts operation.
//	pageNum := 0
//	err := client.ListAccountsPages(params,
//	    func(page *chime.ListAccountsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Chime) ListAccountsPages(input *ListAccountsInput, fn func(*ListAccountsOutput, bool) bool) error {
	return c.ListAccountsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAccountsPagesWithContext same as ListAccountsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListAccountsPagesWithContext(ctx aws.Context, input *ListAccountsInput, fn func(*ListAccountsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAccountsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAccountsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAccountsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListAppInstanceAdmins = "ListAppInstanceAdmins"

// ListAppInstanceAdminsRequest generates a "aws/request.Request" representing the
// client's request for the ListAppInstanceAdmins operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAppInstanceAdmins for more information on using the ListAppInstanceAdmins
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAppInstanceAdminsRequest method.
//	req, resp := client.ListAppInstanceAdminsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListAppInstanceAdmins
//
// Deprecated: Replaced by ListAppInstanceAdmins in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstanceAdminsRequest(input *ListAppInstanceAdminsInput) (req *request.Request, output *ListAppInstanceAdminsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListAppInstanceAdmins, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListAppInstanceAdmins,
		HTTPMethod: "GET",
		HTTPPath:   "/app-instances/{appInstanceArn}/admins",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAppInstanceAdminsInput{}
	}

	output = &ListAppInstanceAdminsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// ListAppInstanceAdmins API operation for Amazon Chime.
//
// Returns a list of the administrators in the AppInstance.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListAppInstanceAdmins (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_ListAppInstanceAdmins.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListAppInstanceAdmins for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListAppInstanceAdmins
//
// Deprecated: Replaced by ListAppInstanceAdmins in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstanceAdmins(input *ListAppInstanceAdminsInput) (*ListAppInstanceAdminsOutput, error) {
	req, out := c.ListAppInstanceAdminsRequest(input)
	return out, req.Send()
}

// ListAppInstanceAdminsWithContext is the same as ListAppInstanceAdmins with the addition of
// the ability to pass a context and additional request options.
//
// See ListAppInstanceAdmins for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListAppInstanceAdmins in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstanceAdminsWithContext(ctx aws.Context, input *ListAppInstanceAdminsInput, opts ...request.Option) (*ListAppInstanceAdminsOutput, error) {
	req, out := c.ListAppInstanceAdminsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAppInstanceAdminsPages iterates over the pages of a ListAppInstanceAdmins operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAppInstanceAdmins method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListAppInstanceAdmins operation.
//	pageNum := 0
//	err := client.ListAppInstanceAdminsPages(params,
//	    func(page *chime.ListAppInstanceAdminsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListAppInstanceAdmins in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstanceAdminsPages(input *ListAppInstanceAdminsInput, fn func(*ListAppInstanceAdminsOutput, bool) bool) error {
	return c.ListAppInstanceAdminsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAppInstanceAdminsPagesWithContext same as ListAppInstanceAdminsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListAppInstanceAdmins in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstanceAdminsPagesWithContext(ctx aws.Context, input *ListAppInstanceAdminsInput, fn func(*ListAppInstanceAdminsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAppInstanceAdminsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAppInstanceAdminsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAppInstanceAdminsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListAppInstanceUsers = "ListAppInstanceUsers"

// ListAppInstanceUsersRequest generates a "aws/request.Request" representing the
// client's request for the ListAppInstanceUsers operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAppInstanceUsers for more information on using the ListAppInstanceUsers
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAppInstanceUsersRequest method.
//	req, resp := client.ListAppInstanceUsersRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListAppInstanceUsers
//
// Deprecated: Replaced by ListAppInstanceUsers in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstanceUsersRequest(input *ListAppInstanceUsersInput) (req *request.Request, output *ListAppInstanceUsersOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListAppInstanceUsers, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListAppInstanceUsers,
		HTTPMethod: "GET",
		HTTPPath:   "/app-instance-users",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAppInstanceUsersInput{}
	}

	output = &ListAppInstanceUsersOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// ListAppInstanceUsers API operation for Amazon Chime.
//
// List all AppInstanceUsers created under a single AppInstance.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListAppInstanceUsers (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_ListAppInstanceUsers.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListAppInstanceUsers for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListAppInstanceUsers
//
// Deprecated: Replaced by ListAppInstanceUsers in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstanceUsers(input *ListAppInstanceUsersInput) (*ListAppInstanceUsersOutput, error) {
	req, out := c.ListAppInstanceUsersRequest(input)
	return out, req.Send()
}

// ListAppInstanceUsersWithContext is the same as ListAppInstanceUsers with the addition of
// the ability to pass a context and additional request options.
//
// See ListAppInstanceUsers for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListAppInstanceUsers in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstanceUsersWithContext(ctx aws.Context, input *ListAppInstanceUsersInput, opts ...request.Option) (*ListAppInstanceUsersOutput, error) {
	req, out := c.ListAppInstanceUsersRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAppInstanceUsersPages iterates over the pages of a ListAppInstanceUsers operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAppInstanceUsers method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListAppInstanceUsers operation.
//	pageNum := 0
//	err := client.ListAppInstanceUsersPages(params,
//	    func(page *chime.ListAppInstanceUsersOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListAppInstanceUsers in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstanceUsersPages(input *ListAppInstanceUsersInput, fn func(*ListAppInstanceUsersOutput, bool) bool) error {
	return c.ListAppInstanceUsersPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAppInstanceUsersPagesWithContext same as ListAppInstanceUsersPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListAppInstanceUsers in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstanceUsersPagesWithContext(ctx aws.Context, input *ListAppInstanceUsersInput, fn func(*ListAppInstanceUsersOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAppInstanceUsersInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAppInstanceUsersRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAppInstanceUsersOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListAppInstances = "ListAppInstances"

// ListAppInstancesRequest generates a "aws/request.Request" representing the
// client's request for the ListAppInstances operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAppInstances for more information on using the ListAppInstances
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAppInstancesRequest method.
//	req, resp := client.ListAppInstancesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListAppInstances
//
// Deprecated: Replaced by ListAppInstances in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstancesRequest(input *ListAppInstancesInput) (req *request.Request, output *ListAppInstancesOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListAppInstances, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListAppInstances,
		HTTPMethod: "GET",
		HTTPPath:   "/app-instances",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAppInstancesInput{}
	}

	output = &ListAppInstancesOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// ListAppInstances API operation for Amazon Chime.
//
// Lists all Amazon Chime AppInstances created under a single AWS account.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListAppInstances (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_ListAppInstances.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListAppInstances for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListAppInstances
//
// Deprecated: Replaced by ListAppInstances in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstances(input *ListAppInstancesInput) (*ListAppInstancesOutput, error) {
	req, out := c.ListAppInstancesRequest(input)
	return out, req.Send()
}

// ListAppInstancesWithContext is the same as ListAppInstances with the addition of
// the ability to pass a context and additional request options.
//
// See ListAppInstances for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListAppInstances in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstancesWithContext(ctx aws.Context, input *ListAppInstancesInput, opts ...request.Option) (*ListAppInstancesOutput, error) {
	req, out := c.ListAppInstancesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAppInstancesPages iterates over the pages of a ListAppInstances operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAppInstances method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListAppInstances operation.
//	pageNum := 0
//	err := client.ListAppInstancesPages(params,
//	    func(page *chime.ListAppInstancesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListAppInstances in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstancesPages(input *ListAppInstancesInput, fn func(*ListAppInstancesOutput, bool) bool) error {
	return c.ListAppInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAppInstancesPagesWithContext same as ListAppInstancesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListAppInstances in the Amazon Chime SDK Identity Namespace
func (c *Chime) ListAppInstancesPagesWithContext(ctx aws.Context, input *ListAppInstancesInput, fn func(*ListAppInstancesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAppInstancesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAppInstancesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAppInstancesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListAttendeeTags = "ListAttendeeTags"

// ListAttendeeTagsRequest generates a "aws/request.Request" representing the
// client's request for the ListAttendeeTags operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAttendeeTags for more information on using the ListAttendeeTags
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAttendeeTagsRequest method.
//	req, resp := client.ListAttendeeTagsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListAttendeeTags
//
// Deprecated: Attendee Tags are not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) ListAttendeeTagsRequest(input *ListAttendeeTagsInput) (req *request.Request, output *ListAttendeeTagsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListAttendeeTags, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListAttendeeTags,
		HTTPMethod: "GET",
		HTTPPath:   "/meetings/{meetingId}/attendees/{attendeeId}/tags",
	}

	if input == nil {
		input = &ListAttendeeTagsInput{}
	}

	output = &ListAttendeeTagsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListAttendeeTags API operation for Amazon Chime.
//
// Lists the tags applied to an Amazon Chime SDK attendee resource.
//
// ListAttendeeTags is not supported in the Amazon Chime SDK Meetings Namespace.
// Update your application to remove calls to this API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListAttendeeTags for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListAttendeeTags
//
// Deprecated: Attendee Tags are not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) ListAttendeeTags(input *ListAttendeeTagsInput) (*ListAttendeeTagsOutput, error) {
	req, out := c.ListAttendeeTagsRequest(input)
	return out, req.Send()
}

// ListAttendeeTagsWithContext is the same as ListAttendeeTags with the addition of
// the ability to pass a context and additional request options.
//
// See ListAttendeeTags for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Attendee Tags are not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) ListAttendeeTagsWithContext(ctx aws.Context, input *ListAttendeeTagsInput, opts ...request.Option) (*ListAttendeeTagsOutput, error) {
	req, out := c.ListAttendeeTagsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListAttendees = "ListAttendees"

// ListAttendeesRequest generates a "aws/request.Request" representing the
// client's request for the ListAttendees operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAttendees for more information on using the ListAttendees
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAttendeesRequest method.
//	req, resp := client.ListAttendeesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListAttendees
//
// Deprecated: Replaced by ListAttendees in the Amazon Chime SDK Meetings Namespace
func (c *Chime) ListAttendeesRequest(input *ListAttendeesInput) (req *request.Request, output *ListAttendeesOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListAttendees, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListAttendees,
		HTTPMethod: "GET",
		HTTPPath:   "/meetings/{meetingId}/attendees",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAttendeesInput{}
	}

	output = &ListAttendeesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListAttendees API operation for Amazon Chime.
//
// Lists the attendees for the specified Amazon Chime SDK meeting. For more
// information about the Amazon Chime SDK, see Using the Amazon Chime SDK (https://docs.aws.amazon.com/chime-sdk/latest/dg/meetings-sdk.html)
// in the Amazon Chime SDK Developer Guide.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListAttendees (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_ListAttendees.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListAttendees for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListAttendees
//
// Deprecated: Replaced by ListAttendees in the Amazon Chime SDK Meetings Namespace
func (c *Chime) ListAttendees(input *ListAttendeesInput) (*ListAttendeesOutput, error) {
	req, out := c.ListAttendeesRequest(input)
	return out, req.Send()
}

// ListAttendeesWithContext is the same as ListAttendees with the addition of
// the ability to pass a context and additional request options.
//
// See ListAttendees for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListAttendees in the Amazon Chime SDK Meetings Namespace
func (c *Chime) ListAttendeesWithContext(ctx aws.Context, input *ListAttendeesInput, opts ...request.Option) (*ListAttendeesOutput, error) {
	req, out := c.ListAttendeesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAttendeesPages iterates over the pages of a ListAttendees operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAttendees method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListAttendees operation.
//	pageNum := 0
//	err := client.ListAttendeesPages(params,
//	    func(page *chime.ListAttendeesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListAttendees in the Amazon Chime SDK Meetings Namespace
func (c *Chime) ListAttendeesPages(input *ListAttendeesInput, fn func(*ListAttendeesOutput, bool) bool) error {
	return c.ListAttendeesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAttendeesPagesWithContext same as ListAttendeesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListAttendees in the Amazon Chime SDK Meetings Namespace
func (c *Chime) ListAttendeesPagesWithContext(ctx aws.Context, input *ListAttendeesInput, fn func(*ListAttendeesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAttendeesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAttendeesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAttendeesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListBots = "ListBots"

// ListBotsRequest generates a "aws/request.Request" representing the
// client's request for the ListBots operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListBots for more information on using the ListBots
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListBotsRequest method.
//	req, resp := client.ListBotsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListBots
func (c *Chime) ListBotsRequest(input *ListBotsInput) (req *request.Request, output *ListBotsOutput) {
	op := &request.Operation{
		Name:       opListBots,
		HTTPMethod: "GET",
		HTTPPath:   "/accounts/{accountId}/bots",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListBotsInput{}
	}

	output = &ListBotsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListBots API operation for Amazon Chime.
//
// Lists the bots associated with the administrator's Amazon Chime Enterprise
// account ID.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListBots for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListBots
func (c *Chime) ListBots(input *ListBotsInput) (*ListBotsOutput, error) {
	req, out := c.ListBotsRequest(input)
	return out, req.Send()
}

// ListBotsWithContext is the same as ListBots with the addition of
// the ability to pass a context and additional request options.
//
// See ListBots for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListBotsWithContext(ctx aws.Context, input *ListBotsInput, opts ...request.Option) (*ListBotsOutput, error) {
	req, out := c.ListBotsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListBotsPages iterates over the pages of a ListBots operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListBots method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListBots operation.
//	pageNum := 0
//	err := client.ListBotsPages(params,
//	    func(page *chime.ListBotsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Chime) ListBotsPages(input *ListBotsInput, fn func(*ListBotsOutput, bool) bool) error {
	return c.ListBotsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListBotsPagesWithContext same as ListBotsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListBotsPagesWithContext(ctx aws.Context, input *ListBotsInput, fn func(*ListBotsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListBotsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListBotsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListBotsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListChannelBans = "ListChannelBans"

// ListChannelBansRequest generates a "aws/request.Request" representing the
// client's request for the ListChannelBans operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListChannelBans for more information on using the ListChannelBans
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListChannelBansRequest method.
//	req, resp := client.ListChannelBansRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannelBans
//
// Deprecated: Replaced by ListChannelBans in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelBansRequest(input *ListChannelBansInput) (req *request.Request, output *ListChannelBansOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListChannelBans, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListChannelBans,
		HTTPMethod: "GET",
		HTTPPath:   "/channels/{channelArn}/bans",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListChannelBansInput{}
	}

	output = &ListChannelBansOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// ListChannelBans API operation for Amazon Chime.
//
// Lists all the users banned from a particular channel.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListChannelBans (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListChannelBans.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListChannelBans for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannelBans
//
// Deprecated: Replaced by ListChannelBans in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelBans(input *ListChannelBansInput) (*ListChannelBansOutput, error) {
	req, out := c.ListChannelBansRequest(input)
	return out, req.Send()
}

// ListChannelBansWithContext is the same as ListChannelBans with the addition of
// the ability to pass a context and additional request options.
//
// See ListChannelBans for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannelBans in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelBansWithContext(ctx aws.Context, input *ListChannelBansInput, opts ...request.Option) (*ListChannelBansOutput, error) {
	req, out := c.ListChannelBansRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListChannelBansPages iterates over the pages of a ListChannelBans operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListChannelBans method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListChannelBans operation.
//	pageNum := 0
//	err := client.ListChannelBansPages(params,
//	    func(page *chime.ListChannelBansOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListChannelBans in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelBansPages(input *ListChannelBansInput, fn func(*ListChannelBansOutput, bool) bool) error {
	return c.ListChannelBansPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListChannelBansPagesWithContext same as ListChannelBansPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannelBans in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelBansPagesWithContext(ctx aws.Context, input *ListChannelBansInput, fn func(*ListChannelBansOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListChannelBansInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListChannelBansRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListChannelBansOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListChannelMemberships = "ListChannelMemberships"

// ListChannelMembershipsRequest generates a "aws/request.Request" representing the
// client's request for the ListChannelMemberships operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListChannelMemberships for more information on using the ListChannelMemberships
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListChannelMembershipsRequest method.
//	req, resp := client.ListChannelMembershipsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannelMemberships
//
// Deprecated: Replaced by ListChannelMemberships in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMembershipsRequest(input *ListChannelMembershipsInput) (req *request.Request, output *ListChannelMembershipsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListChannelMemberships, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListChannelMemberships,
		HTTPMethod: "GET",
		HTTPPath:   "/channels/{channelArn}/memberships",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListChannelMembershipsInput{}
	}

	output = &ListChannelMembershipsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// ListChannelMemberships API operation for Amazon Chime.
//
// Lists all channel memberships in a channel.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListChannelMemberships (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListChannelMemberships.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListChannelMemberships for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannelMemberships
//
// Deprecated: Replaced by ListChannelMemberships in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMemberships(input *ListChannelMembershipsInput) (*ListChannelMembershipsOutput, error) {
	req, out := c.ListChannelMembershipsRequest(input)
	return out, req.Send()
}

// ListChannelMembershipsWithContext is the same as ListChannelMemberships with the addition of
// the ability to pass a context and additional request options.
//
// See ListChannelMemberships for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannelMemberships in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMembershipsWithContext(ctx aws.Context, input *ListChannelMembershipsInput, opts ...request.Option) (*ListChannelMembershipsOutput, error) {
	req, out := c.ListChannelMembershipsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListChannelMembershipsPages iterates over the pages of a ListChannelMemberships operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListChannelMemberships method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListChannelMemberships operation.
//	pageNum := 0
//	err := client.ListChannelMembershipsPages(params,
//	    func(page *chime.ListChannelMembershipsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListChannelMemberships in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMembershipsPages(input *ListChannelMembershipsInput, fn func(*ListChannelMembershipsOutput, bool) bool) error {
	return c.ListChannelMembershipsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListChannelMembershipsPagesWithContext same as ListChannelMembershipsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannelMemberships in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMembershipsPagesWithContext(ctx aws.Context, input *ListChannelMembershipsInput, fn func(*ListChannelMembershipsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListChannelMembershipsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListChannelMembershipsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListChannelMembershipsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListChannelMembershipsForAppInstanceUser = "ListChannelMembershipsForAppInstanceUser"

// ListChannelMembershipsForAppInstanceUserRequest generates a "aws/request.Request" representing the
// client's request for the ListChannelMembershipsForAppInstanceUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListChannelMembershipsForAppInstanceUser for more information on using the ListChannelMembershipsForAppInstanceUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListChannelMembershipsForAppInstanceUserRequest method.
//	req, resp := client.ListChannelMembershipsForAppInstanceUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannelMembershipsForAppInstanceUser
//
// Deprecated: Replaced by ListChannelMembershipsForAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMembershipsForAppInstanceUserRequest(input *ListChannelMembershipsForAppInstanceUserInput) (req *request.Request, output *ListChannelMembershipsForAppInstanceUserOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListChannelMembershipsForAppInstanceUser, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListChannelMembershipsForAppInstanceUser,
		HTTPMethod: "GET",
		HTTPPath:   "/channels?scope=app-instance-user-memberships",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListChannelMembershipsForAppInstanceUserInput{}
	}

	output = &ListChannelMembershipsForAppInstanceUserOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// ListChannelMembershipsForAppInstanceUser API operation for Amazon Chime.
//
// Lists all channels that a particular AppInstanceUser is a part of. Only an
// AppInstanceAdmin can call the API with a user ARN that is not their own.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListChannelMembershipsForAppInstanceUser (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListChannelMembershipsForAppInstanceUser.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListChannelMembershipsForAppInstanceUser for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannelMembershipsForAppInstanceUser
//
// Deprecated: Replaced by ListChannelMembershipsForAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMembershipsForAppInstanceUser(input *ListChannelMembershipsForAppInstanceUserInput) (*ListChannelMembershipsForAppInstanceUserOutput, error) {
	req, out := c.ListChannelMembershipsForAppInstanceUserRequest(input)
	return out, req.Send()
}

// ListChannelMembershipsForAppInstanceUserWithContext is the same as ListChannelMembershipsForAppInstanceUser with the addition of
// the ability to pass a context and additional request options.
//
// See ListChannelMembershipsForAppInstanceUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannelMembershipsForAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMembershipsForAppInstanceUserWithContext(ctx aws.Context, input *ListChannelMembershipsForAppInstanceUserInput, opts ...request.Option) (*ListChannelMembershipsForAppInstanceUserOutput, error) {
	req, out := c.ListChannelMembershipsForAppInstanceUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListChannelMembershipsForAppInstanceUserPages iterates over the pages of a ListChannelMembershipsForAppInstanceUser operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListChannelMembershipsForAppInstanceUser method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListChannelMembershipsForAppInstanceUser operation.
//	pageNum := 0
//	err := client.ListChannelMembershipsForAppInstanceUserPages(params,
//	    func(page *chime.ListChannelMembershipsForAppInstanceUserOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListChannelMembershipsForAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMembershipsForAppInstanceUserPages(input *ListChannelMembershipsForAppInstanceUserInput, fn func(*ListChannelMembershipsForAppInstanceUserOutput, bool) bool) error {
	return c.ListChannelMembershipsForAppInstanceUserPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListChannelMembershipsForAppInstanceUserPagesWithContext same as ListChannelMembershipsForAppInstanceUserPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannelMembershipsForAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMembershipsForAppInstanceUserPagesWithContext(ctx aws.Context, input *ListChannelMembershipsForAppInstanceUserInput, fn func(*ListChannelMembershipsForAppInstanceUserOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListChannelMembershipsForAppInstanceUserInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListChannelMembershipsForAppInstanceUserRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListChannelMembershipsForAppInstanceUserOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListChannelMessages = "ListChannelMessages"

// ListChannelMessagesRequest generates a "aws/request.Request" representing the
// client's request for the ListChannelMessages operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListChannelMessages for more information on using the ListChannelMessages
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListChannelMessagesRequest method.
//	req, resp := client.ListChannelMessagesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannelMessages
//
// Deprecated: Replaced by ListChannelMessages in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMessagesRequest(input *ListChannelMessagesInput) (req *request.Request, output *ListChannelMessagesOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListChannelMessages, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListChannelMessages,
		HTTPMethod: "GET",
		HTTPPath:   "/channels/{channelArn}/messages",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListChannelMessagesInput{}
	}

	output = &ListChannelMessagesOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// ListChannelMessages API operation for Amazon Chime.
//
// List all the messages in a channel. Returns a paginated list of ChannelMessages.
// By default, sorted by creation timestamp in descending order.
//
// Redacted messages appear in the results as empty, since they are only redacted,
// not deleted. Deleted messages do not appear in the results. This action always
// returns the latest version of an edited message.
//
// Also, the x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListChannelMessages (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListChannelMessages.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListChannelMessages for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannelMessages
//
// Deprecated: Replaced by ListChannelMessages in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMessages(input *ListChannelMessagesInput) (*ListChannelMessagesOutput, error) {
	req, out := c.ListChannelMessagesRequest(input)
	return out, req.Send()
}

// ListChannelMessagesWithContext is the same as ListChannelMessages with the addition of
// the ability to pass a context and additional request options.
//
// See ListChannelMessages for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannelMessages in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMessagesWithContext(ctx aws.Context, input *ListChannelMessagesInput, opts ...request.Option) (*ListChannelMessagesOutput, error) {
	req, out := c.ListChannelMessagesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListChannelMessagesPages iterates over the pages of a ListChannelMessages operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListChannelMessages method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListChannelMessages operation.
//	pageNum := 0
//	err := client.ListChannelMessagesPages(params,
//	    func(page *chime.ListChannelMessagesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListChannelMessages in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMessagesPages(input *ListChannelMessagesInput, fn func(*ListChannelMessagesOutput, bool) bool) error {
	return c.ListChannelMessagesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListChannelMessagesPagesWithContext same as ListChannelMessagesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannelMessages in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelMessagesPagesWithContext(ctx aws.Context, input *ListChannelMessagesInput, fn func(*ListChannelMessagesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListChannelMessagesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListChannelMessagesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListChannelMessagesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListChannelModerators = "ListChannelModerators"

// ListChannelModeratorsRequest generates a "aws/request.Request" representing the
// client's request for the ListChannelModerators operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListChannelModerators for more information on using the ListChannelModerators
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListChannelModeratorsRequest method.
//	req, resp := client.ListChannelModeratorsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannelModerators
//
// Deprecated: Replaced by ListChannelModerators in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelModeratorsRequest(input *ListChannelModeratorsInput) (req *request.Request, output *ListChannelModeratorsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListChannelModerators, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListChannelModerators,
		HTTPMethod: "GET",
		HTTPPath:   "/channels/{channelArn}/moderators",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListChannelModeratorsInput{}
	}

	output = &ListChannelModeratorsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// ListChannelModerators API operation for Amazon Chime.
//
// Lists all the moderators for a channel.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListChannelModerators (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListChannelModerators.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListChannelModerators for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannelModerators
//
// Deprecated: Replaced by ListChannelModerators in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelModerators(input *ListChannelModeratorsInput) (*ListChannelModeratorsOutput, error) {
	req, out := c.ListChannelModeratorsRequest(input)
	return out, req.Send()
}

// ListChannelModeratorsWithContext is the same as ListChannelModerators with the addition of
// the ability to pass a context and additional request options.
//
// See ListChannelModerators for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannelModerators in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelModeratorsWithContext(ctx aws.Context, input *ListChannelModeratorsInput, opts ...request.Option) (*ListChannelModeratorsOutput, error) {
	req, out := c.ListChannelModeratorsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListChannelModeratorsPages iterates over the pages of a ListChannelModerators operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListChannelModerators method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListChannelModerators operation.
//	pageNum := 0
//	err := client.ListChannelModeratorsPages(params,
//	    func(page *chime.ListChannelModeratorsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListChannelModerators in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelModeratorsPages(input *ListChannelModeratorsInput, fn func(*ListChannelModeratorsOutput, bool) bool) error {
	return c.ListChannelModeratorsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListChannelModeratorsPagesWithContext same as ListChannelModeratorsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannelModerators in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelModeratorsPagesWithContext(ctx aws.Context, input *ListChannelModeratorsInput, fn func(*ListChannelModeratorsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListChannelModeratorsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListChannelModeratorsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListChannelModeratorsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListChannels = "ListChannels"

// ListChannelsRequest generates a "aws/request.Request" representing the
// client's request for the ListChannels operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListChannels for more information on using the ListChannels
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListChannelsRequest method.
//	req, resp := client.ListChannelsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannels
//
// Deprecated: Replaced by ListChannels in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelsRequest(input *ListChannelsInput) (req *request.Request, output *ListChannelsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListChannels, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListChannels,
		HTTPMethod: "GET",
		HTTPPath:   "/channels",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListChannelsInput{}
	}

	output = &ListChannelsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// ListChannels API operation for Amazon Chime.
//
// Lists all Channels created under a single Chime App as a paginated list.
// You can specify filters to narrow results.
//
// Functionality & restrictions
//
//   - Use privacy = PUBLIC to retrieve all public channels in the account.
//
//   - Only an AppInstanceAdmin can set privacy = PRIVATE to list the private
//     channels in an account.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListChannels (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListChannels.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListChannels for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannels
//
// Deprecated: Replaced by ListChannels in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannels(input *ListChannelsInput) (*ListChannelsOutput, error) {
	req, out := c.ListChannelsRequest(input)
	return out, req.Send()
}

// ListChannelsWithContext is the same as ListChannels with the addition of
// the ability to pass a context and additional request options.
//
// See ListChannels for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannels in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelsWithContext(ctx aws.Context, input *ListChannelsInput, opts ...request.Option) (*ListChannelsOutput, error) {
	req, out := c.ListChannelsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListChannelsPages iterates over the pages of a ListChannels operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListChannels method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListChannels operation.
//	pageNum := 0
//	err := client.ListChannelsPages(params,
//	    func(page *chime.ListChannelsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListChannels in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelsPages(input *ListChannelsInput, fn func(*ListChannelsOutput, bool) bool) error {
	return c.ListChannelsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListChannelsPagesWithContext same as ListChannelsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannels in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelsPagesWithContext(ctx aws.Context, input *ListChannelsInput, fn func(*ListChannelsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListChannelsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListChannelsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListChannelsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListChannelsModeratedByAppInstanceUser = "ListChannelsModeratedByAppInstanceUser"

// ListChannelsModeratedByAppInstanceUserRequest generates a "aws/request.Request" representing the
// client's request for the ListChannelsModeratedByAppInstanceUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListChannelsModeratedByAppInstanceUser for more information on using the ListChannelsModeratedByAppInstanceUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListChannelsModeratedByAppInstanceUserRequest method.
//	req, resp := client.ListChannelsModeratedByAppInstanceUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannelsModeratedByAppInstanceUser
//
// Deprecated: Replaced by ListChannelsModeratedByAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelsModeratedByAppInstanceUserRequest(input *ListChannelsModeratedByAppInstanceUserInput) (req *request.Request, output *ListChannelsModeratedByAppInstanceUserOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListChannelsModeratedByAppInstanceUser, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListChannelsModeratedByAppInstanceUser,
		HTTPMethod: "GET",
		HTTPPath:   "/channels?scope=app-instance-user-moderated-channels",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListChannelsModeratedByAppInstanceUserInput{}
	}

	output = &ListChannelsModeratedByAppInstanceUserOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// ListChannelsModeratedByAppInstanceUser API operation for Amazon Chime.
//
// A list of the channels moderated by an AppInstanceUser.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListChannelsModeratedByAppInstanceUser (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListChannelsModeratedByAppInstanceUser.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListChannelsModeratedByAppInstanceUser for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListChannelsModeratedByAppInstanceUser
//
// Deprecated: Replaced by ListChannelsModeratedByAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelsModeratedByAppInstanceUser(input *ListChannelsModeratedByAppInstanceUserInput) (*ListChannelsModeratedByAppInstanceUserOutput, error) {
	req, out := c.ListChannelsModeratedByAppInstanceUserRequest(input)
	return out, req.Send()
}

// ListChannelsModeratedByAppInstanceUserWithContext is the same as ListChannelsModeratedByAppInstanceUser with the addition of
// the ability to pass a context and additional request options.
//
// See ListChannelsModeratedByAppInstanceUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannelsModeratedByAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelsModeratedByAppInstanceUserWithContext(ctx aws.Context, input *ListChannelsModeratedByAppInstanceUserInput, opts ...request.Option) (*ListChannelsModeratedByAppInstanceUserOutput, error) {
	req, out := c.ListChannelsModeratedByAppInstanceUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListChannelsModeratedByAppInstanceUserPages iterates over the pages of a ListChannelsModeratedByAppInstanceUser operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListChannelsModeratedByAppInstanceUser method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListChannelsModeratedByAppInstanceUser operation.
//	pageNum := 0
//	err := client.ListChannelsModeratedByAppInstanceUserPages(params,
//	    func(page *chime.ListChannelsModeratedByAppInstanceUserOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListChannelsModeratedByAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelsModeratedByAppInstanceUserPages(input *ListChannelsModeratedByAppInstanceUserInput, fn func(*ListChannelsModeratedByAppInstanceUserOutput, bool) bool) error {
	return c.ListChannelsModeratedByAppInstanceUserPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListChannelsModeratedByAppInstanceUserPagesWithContext same as ListChannelsModeratedByAppInstanceUserPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListChannelsModeratedByAppInstanceUser in the Amazon Chime SDK Messaging Namespace
func (c *Chime) ListChannelsModeratedByAppInstanceUserPagesWithContext(ctx aws.Context, input *ListChannelsModeratedByAppInstanceUserInput, fn func(*ListChannelsModeratedByAppInstanceUserOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListChannelsModeratedByAppInstanceUserInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListChannelsModeratedByAppInstanceUserRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListChannelsModeratedByAppInstanceUserOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListMediaCapturePipelines = "ListMediaCapturePipelines"

// ListMediaCapturePipelinesRequest generates a "aws/request.Request" representing the
// client's request for the ListMediaCapturePipelines operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListMediaCapturePipelines for more information on using the ListMediaCapturePipelines
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListMediaCapturePipelinesRequest method.
//	req, resp := client.ListMediaCapturePipelinesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListMediaCapturePipelines
//
// Deprecated: Replaced by ListMediaCapturePipelines in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) ListMediaCapturePipelinesRequest(input *ListMediaCapturePipelinesInput) (req *request.Request, output *ListMediaCapturePipelinesOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListMediaCapturePipelines, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListMediaCapturePipelines,
		HTTPMethod: "GET",
		HTTPPath:   "/media-capture-pipelines",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListMediaCapturePipelinesInput{}
	}

	output = &ListMediaCapturePipelinesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListMediaCapturePipelines API operation for Amazon Chime.
//
// Returns a list of media capture pipelines.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListMediaCapturePipelines (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_ListMediaCapturePipelines.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListMediaCapturePipelines for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListMediaCapturePipelines
//
// Deprecated: Replaced by ListMediaCapturePipelines in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) ListMediaCapturePipelines(input *ListMediaCapturePipelinesInput) (*ListMediaCapturePipelinesOutput, error) {
	req, out := c.ListMediaCapturePipelinesRequest(input)
	return out, req.Send()
}

// ListMediaCapturePipelinesWithContext is the same as ListMediaCapturePipelines with the addition of
// the ability to pass a context and additional request options.
//
// See ListMediaCapturePipelines for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListMediaCapturePipelines in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) ListMediaCapturePipelinesWithContext(ctx aws.Context, input *ListMediaCapturePipelinesInput, opts ...request.Option) (*ListMediaCapturePipelinesOutput, error) {
	req, out := c.ListMediaCapturePipelinesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListMediaCapturePipelinesPages iterates over the pages of a ListMediaCapturePipelines operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListMediaCapturePipelines method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListMediaCapturePipelines operation.
//	pageNum := 0
//	err := client.ListMediaCapturePipelinesPages(params,
//	    func(page *chime.ListMediaCapturePipelinesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListMediaCapturePipelines in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) ListMediaCapturePipelinesPages(input *ListMediaCapturePipelinesInput, fn func(*ListMediaCapturePipelinesOutput, bool) bool) error {
	return c.ListMediaCapturePipelinesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListMediaCapturePipelinesPagesWithContext same as ListMediaCapturePipelinesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListMediaCapturePipelines in the Amazon Chime SDK Media Pipelines Namespace
func (c *Chime) ListMediaCapturePipelinesPagesWithContext(ctx aws.Context, input *ListMediaCapturePipelinesInput, fn func(*ListMediaCapturePipelinesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListMediaCapturePipelinesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListMediaCapturePipelinesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListMediaCapturePipelinesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListMeetingTags = "ListMeetingTags"

// ListMeetingTagsRequest generates a "aws/request.Request" representing the
// client's request for the ListMeetingTags operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListMeetingTags for more information on using the ListMeetingTags
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListMeetingTagsRequest method.
//	req, resp := client.ListMeetingTagsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListMeetingTags
//
// Deprecated: Use ListTagsForResource in the Amazon Chime SDK Meetings Namespace.
func (c *Chime) ListMeetingTagsRequest(input *ListMeetingTagsInput) (req *request.Request, output *ListMeetingTagsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListMeetingTags, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListMeetingTags,
		HTTPMethod: "GET",
		HTTPPath:   "/meetings/{meetingId}/tags",
	}

	if input == nil {
		input = &ListMeetingTagsInput{}
	}

	output = &ListMeetingTagsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListMeetingTags API operation for Amazon Chime.
//
// Lists the tags applied to an Amazon Chime SDK meeting resource.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListTagsForResource (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_ListTagsForResource.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListMeetingTags for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListMeetingTags
//
// Deprecated: Use ListTagsForResource in the Amazon Chime SDK Meetings Namespace.
func (c *Chime) ListMeetingTags(input *ListMeetingTagsInput) (*ListMeetingTagsOutput, error) {
	req, out := c.ListMeetingTagsRequest(input)
	return out, req.Send()
}

// ListMeetingTagsWithContext is the same as ListMeetingTags with the addition of
// the ability to pass a context and additional request options.
//
// See ListMeetingTags for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Use ListTagsForResource in the Amazon Chime SDK Meetings Namespace.
func (c *Chime) ListMeetingTagsWithContext(ctx aws.Context, input *ListMeetingTagsInput, opts ...request.Option) (*ListMeetingTagsOutput, error) {
	req, out := c.ListMeetingTagsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListMeetings = "ListMeetings"

// ListMeetingsRequest generates a "aws/request.Request" representing the
// client's request for the ListMeetings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListMeetings for more information on using the ListMeetings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListMeetingsRequest method.
//	req, resp := client.ListMeetingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListMeetings
//
// Deprecated: ListMeetings is not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) ListMeetingsRequest(input *ListMeetingsInput) (req *request.Request, output *ListMeetingsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListMeetings, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListMeetings,
		HTTPMethod: "GET",
		HTTPPath:   "/meetings",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListMeetingsInput{}
	}

	output = &ListMeetingsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListMeetings API operation for Amazon Chime.
//
// Lists up to 100 active Amazon Chime SDK meetings.
//
// ListMeetings is not supported in the Amazon Chime SDK Meetings Namespace.
// Update your application to remove calls to this API.
//
// For more information about the Amazon Chime SDK, see Using the Amazon Chime
// SDK (https://docs.aws.amazon.com/chime-sdk/latest/dg/meetings-sdk.html) in
// the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListMeetings for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListMeetings
//
// Deprecated: ListMeetings is not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) ListMeetings(input *ListMeetingsInput) (*ListMeetingsOutput, error) {
	req, out := c.ListMeetingsRequest(input)
	return out, req.Send()
}

// ListMeetingsWithContext is the same as ListMeetings with the addition of
// the ability to pass a context and additional request options.
//
// See ListMeetings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: ListMeetings is not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) ListMeetingsWithContext(ctx aws.Context, input *ListMeetingsInput, opts ...request.Option) (*ListMeetingsOutput, error) {
	req, out := c.ListMeetingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListMeetingsPages iterates over the pages of a ListMeetings operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListMeetings method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListMeetings operation.
//	pageNum := 0
//	err := client.ListMeetingsPages(params,
//	    func(page *chime.ListMeetingsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: ListMeetings is not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) ListMeetingsPages(input *ListMeetingsInput, fn func(*ListMeetingsOutput, bool) bool) error {
	return c.ListMeetingsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListMeetingsPagesWithContext same as ListMeetingsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: ListMeetings is not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) ListMeetingsPagesWithContext(ctx aws.Context, input *ListMeetingsInput, fn func(*ListMeetingsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListMeetingsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListMeetingsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListMeetingsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListPhoneNumberOrders = "ListPhoneNumberOrders"

// ListPhoneNumberOrdersRequest generates a "aws/request.Request" representing the
// client's request for the ListPhoneNumberOrders operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListPhoneNumberOrders for more information on using the ListPhoneNumberOrders
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListPhoneNumberOrdersRequest method.
//	req, resp := client.ListPhoneNumberOrdersRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListPhoneNumberOrders
func (c *Chime) ListPhoneNumberOrdersRequest(input *ListPhoneNumberOrdersInput) (req *request.Request, output *ListPhoneNumberOrdersOutput) {
	op := &request.Operation{
		Name:       opListPhoneNumberOrders,
		HTTPMethod: "GET",
		HTTPPath:   "/phone-number-orders",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListPhoneNumberOrdersInput{}
	}

	output = &ListPhoneNumberOrdersOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListPhoneNumberOrders API operation for Amazon Chime.
//
// Lists the phone number orders for the administrator's Amazon Chime account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListPhoneNumberOrders for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListPhoneNumberOrders
func (c *Chime) ListPhoneNumberOrders(input *ListPhoneNumberOrdersInput) (*ListPhoneNumberOrdersOutput, error) {
	req, out := c.ListPhoneNumberOrdersRequest(input)
	return out, req.Send()
}

// ListPhoneNumberOrdersWithContext is the same as ListPhoneNumberOrders with the addition of
// the ability to pass a context and additional request options.
//
// See ListPhoneNumberOrders for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListPhoneNumberOrdersWithContext(ctx aws.Context, input *ListPhoneNumberOrdersInput, opts ...request.Option) (*ListPhoneNumberOrdersOutput, error) {
	req, out := c.ListPhoneNumberOrdersRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListPhoneNumberOrdersPages iterates over the pages of a ListPhoneNumberOrders operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListPhoneNumberOrders method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListPhoneNumberOrders operation.
//	pageNum := 0
//	err := client.ListPhoneNumberOrdersPages(params,
//	    func(page *chime.ListPhoneNumberOrdersOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Chime) ListPhoneNumberOrdersPages(input *ListPhoneNumberOrdersInput, fn func(*ListPhoneNumberOrdersOutput, bool) bool) error {
	return c.ListPhoneNumberOrdersPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListPhoneNumberOrdersPagesWithContext same as ListPhoneNumberOrdersPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListPhoneNumberOrdersPagesWithContext(ctx aws.Context, input *ListPhoneNumberOrdersInput, fn func(*ListPhoneNumberOrdersOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListPhoneNumberOrdersInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListPhoneNumberOrdersRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListPhoneNumberOrdersOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListPhoneNumbers = "ListPhoneNumbers"

// ListPhoneNumbersRequest generates a "aws/request.Request" representing the
// client's request for the ListPhoneNumbers operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListPhoneNumbers for more information on using the ListPhoneNumbers
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListPhoneNumbersRequest method.
//	req, resp := client.ListPhoneNumbersRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListPhoneNumbers
func (c *Chime) ListPhoneNumbersRequest(input *ListPhoneNumbersInput) (req *request.Request, output *ListPhoneNumbersOutput) {
	op := &request.Operation{
		Name:       opListPhoneNumbers,
		HTTPMethod: "GET",
		HTTPPath:   "/phone-numbers",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListPhoneNumbersInput{}
	}

	output = &ListPhoneNumbersOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListPhoneNumbers API operation for Amazon Chime.
//
// Lists the phone numbers for the specified Amazon Chime account, Amazon Chime
// user, Amazon Chime Voice Connector, or Amazon Chime Voice Connector group.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListPhoneNumbers for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListPhoneNumbers
func (c *Chime) ListPhoneNumbers(input *ListPhoneNumbersInput) (*ListPhoneNumbersOutput, error) {
	req, out := c.ListPhoneNumbersRequest(input)
	return out, req.Send()
}

// ListPhoneNumbersWithContext is the same as ListPhoneNumbers with the addition of
// the ability to pass a context and additional request options.
//
// See ListPhoneNumbers for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListPhoneNumbersWithContext(ctx aws.Context, input *ListPhoneNumbersInput, opts ...request.Option) (*ListPhoneNumbersOutput, error) {
	req, out := c.ListPhoneNumbersRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListPhoneNumbersPages iterates over the pages of a ListPhoneNumbers operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListPhoneNumbers method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListPhoneNumbers operation.
//	pageNum := 0
//	err := client.ListPhoneNumbersPages(params,
//	    func(page *chime.ListPhoneNumbersOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Chime) ListPhoneNumbersPages(input *ListPhoneNumbersInput, fn func(*ListPhoneNumbersOutput, bool) bool) error {
	return c.ListPhoneNumbersPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListPhoneNumbersPagesWithContext same as ListPhoneNumbersPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListPhoneNumbersPagesWithContext(ctx aws.Context, input *ListPhoneNumbersInput, fn func(*ListPhoneNumbersOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListPhoneNumbersInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListPhoneNumbersRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListPhoneNumbersOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListProxySessions = "ListProxySessions"

// ListProxySessionsRequest generates a "aws/request.Request" representing the
// client's request for the ListProxySessions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListProxySessions for more information on using the ListProxySessions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListProxySessionsRequest method.
//	req, resp := client.ListProxySessionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListProxySessions
//
// Deprecated: Replaced by ListProxySessions in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListProxySessionsRequest(input *ListProxySessionsInput) (req *request.Request, output *ListProxySessionsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListProxySessions, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListProxySessions,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/proxy-sessions",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListProxySessionsInput{}
	}

	output = &ListProxySessionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListProxySessions API operation for Amazon Chime.
//
// Lists the proxy sessions for the specified Amazon Chime Voice Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListProxySessions (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_ListProxySessions.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListProxySessions for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListProxySessions
//
// Deprecated: Replaced by ListProxySessions in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListProxySessions(input *ListProxySessionsInput) (*ListProxySessionsOutput, error) {
	req, out := c.ListProxySessionsRequest(input)
	return out, req.Send()
}

// ListProxySessionsWithContext is the same as ListProxySessions with the addition of
// the ability to pass a context and additional request options.
//
// See ListProxySessions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListProxySessions in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListProxySessionsWithContext(ctx aws.Context, input *ListProxySessionsInput, opts ...request.Option) (*ListProxySessionsOutput, error) {
	req, out := c.ListProxySessionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListProxySessionsPages iterates over the pages of a ListProxySessions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListProxySessions method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListProxySessions operation.
//	pageNum := 0
//	err := client.ListProxySessionsPages(params,
//	    func(page *chime.ListProxySessionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListProxySessions in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListProxySessionsPages(input *ListProxySessionsInput, fn func(*ListProxySessionsOutput, bool) bool) error {
	return c.ListProxySessionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListProxySessionsPagesWithContext same as ListProxySessionsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListProxySessions in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListProxySessionsPagesWithContext(ctx aws.Context, input *ListProxySessionsInput, fn func(*ListProxySessionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListProxySessionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListProxySessionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListProxySessionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListRoomMemberships = "ListRoomMemberships"

// ListRoomMembershipsRequest generates a "aws/request.Request" representing the
// client's request for the ListRoomMemberships operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListRoomMemberships for more information on using the ListRoomMemberships
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListRoomMembershipsRequest method.
//	req, resp := client.ListRoomMembershipsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListRoomMemberships
func (c *Chime) ListRoomMembershipsRequest(input *ListRoomMembershipsInput) (req *request.Request, output *ListRoomMembershipsOutput) {
	op := &request.Operation{
		Name:       opListRoomMemberships,
		HTTPMethod: "GET",
		HTTPPath:   "/accounts/{accountId}/rooms/{roomId}/memberships",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListRoomMembershipsInput{}
	}

	output = &ListRoomMembershipsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListRoomMemberships API operation for Amazon Chime.
//
// Lists the membership details for the specified room in an Amazon Chime Enterprise
// account, such as the members' IDs, email addresses, and names.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListRoomMemberships for usage and error information.
//
// Returned Error Types:
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListRoomMemberships
func (c *Chime) ListRoomMemberships(input *ListRoomMembershipsInput) (*ListRoomMembershipsOutput, error) {
	req, out := c.ListRoomMembershipsRequest(input)
	return out, req.Send()
}

// ListRoomMembershipsWithContext is the same as ListRoomMemberships with the addition of
// the ability to pass a context and additional request options.
//
// See ListRoomMemberships for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListRoomMembershipsWithContext(ctx aws.Context, input *ListRoomMembershipsInput, opts ...request.Option) (*ListRoomMembershipsOutput, error) {
	req, out := c.ListRoomMembershipsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListRoomMembershipsPages iterates over the pages of a ListRoomMemberships operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListRoomMemberships method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListRoomMemberships operation.
//	pageNum := 0
//	err := client.ListRoomMembershipsPages(params,
//	    func(page *chime.ListRoomMembershipsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Chime) ListRoomMembershipsPages(input *ListRoomMembershipsInput, fn func(*ListRoomMembershipsOutput, bool) bool) error {
	return c.ListRoomMembershipsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListRoomMembershipsPagesWithContext same as ListRoomMembershipsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListRoomMembershipsPagesWithContext(ctx aws.Context, input *ListRoomMembershipsInput, fn func(*ListRoomMembershipsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListRoomMembershipsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListRoomMembershipsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListRoomMembershipsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListRooms = "ListRooms"

// ListRoomsRequest generates a "aws/request.Request" representing the
// client's request for the ListRooms operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListRooms for more information on using the ListRooms
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListRoomsRequest method.
//	req, resp := client.ListRoomsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListRooms
func (c *Chime) ListRoomsRequest(input *ListRoomsInput) (req *request.Request, output *ListRoomsOutput) {
	op := &request.Operation{
		Name:       opListRooms,
		HTTPMethod: "GET",
		HTTPPath:   "/accounts/{accountId}/rooms",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListRoomsInput{}
	}

	output = &ListRoomsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListRooms API operation for Amazon Chime.
//
// Lists the room details for the specified Amazon Chime Enterprise account.
// Optionally, filter the results by a member ID (user ID or bot ID) to see
// a list of rooms that the member belongs to.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListRooms for usage and error information.
//
// Returned Error Types:
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListRooms
func (c *Chime) ListRooms(input *ListRoomsInput) (*ListRoomsOutput, error) {
	req, out := c.ListRoomsRequest(input)
	return out, req.Send()
}

// ListRoomsWithContext is the same as ListRooms with the addition of
// the ability to pass a context and additional request options.
//
// See ListRooms for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListRoomsWithContext(ctx aws.Context, input *ListRoomsInput, opts ...request.Option) (*ListRoomsOutput, error) {
	req, out := c.ListRoomsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListRoomsPages iterates over the pages of a ListRooms operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListRooms method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListRooms operation.
//	pageNum := 0
//	err := client.ListRoomsPages(params,
//	    func(page *chime.ListRoomsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Chime) ListRoomsPages(input *ListRoomsInput, fn func(*ListRoomsOutput, bool) bool) error {
	return c.ListRoomsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListRoomsPagesWithContext same as ListRoomsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListRoomsPagesWithContext(ctx aws.Context, input *ListRoomsInput, fn func(*ListRoomsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListRoomsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListRoomsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListRoomsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListSipMediaApplications = "ListSipMediaApplications"

// ListSipMediaApplicationsRequest generates a "aws/request.Request" representing the
// client's request for the ListSipMediaApplications operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListSipMediaApplications for more information on using the ListSipMediaApplications
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListSipMediaApplicationsRequest method.
//	req, resp := client.ListSipMediaApplicationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListSipMediaApplications
//
// Deprecated: Replaced by ListSipMediaApplications in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListSipMediaApplicationsRequest(input *ListSipMediaApplicationsInput) (req *request.Request, output *ListSipMediaApplicationsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListSipMediaApplications, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListSipMediaApplications,
		HTTPMethod: "GET",
		HTTPPath:   "/sip-media-applications",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListSipMediaApplicationsInput{}
	}

	output = &ListSipMediaApplicationsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListSipMediaApplications API operation for Amazon Chime.
//
// Lists the SIP media applications under the administrator's AWS account.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListSipMediaApplications (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_ListSipMediaApplications.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListSipMediaApplications for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListSipMediaApplications
//
// Deprecated: Replaced by ListSipMediaApplications in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListSipMediaApplications(input *ListSipMediaApplicationsInput) (*ListSipMediaApplicationsOutput, error) {
	req, out := c.ListSipMediaApplicationsRequest(input)
	return out, req.Send()
}

// ListSipMediaApplicationsWithContext is the same as ListSipMediaApplications with the addition of
// the ability to pass a context and additional request options.
//
// See ListSipMediaApplications for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListSipMediaApplications in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListSipMediaApplicationsWithContext(ctx aws.Context, input *ListSipMediaApplicationsInput, opts ...request.Option) (*ListSipMediaApplicationsOutput, error) {
	req, out := c.ListSipMediaApplicationsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListSipMediaApplicationsPages iterates over the pages of a ListSipMediaApplications operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListSipMediaApplications method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListSipMediaApplications operation.
//	pageNum := 0
//	err := client.ListSipMediaApplicationsPages(params,
//	    func(page *chime.ListSipMediaApplicationsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListSipMediaApplications in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListSipMediaApplicationsPages(input *ListSipMediaApplicationsInput, fn func(*ListSipMediaApplicationsOutput, bool) bool) error {
	return c.ListSipMediaApplicationsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListSipMediaApplicationsPagesWithContext same as ListSipMediaApplicationsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListSipMediaApplications in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListSipMediaApplicationsPagesWithContext(ctx aws.Context, input *ListSipMediaApplicationsInput, fn func(*ListSipMediaApplicationsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListSipMediaApplicationsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListSipMediaApplicationsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListSipMediaApplicationsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListSipRules = "ListSipRules"

// ListSipRulesRequest generates a "aws/request.Request" representing the
// client's request for the ListSipRules operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListSipRules for more information on using the ListSipRules
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListSipRulesRequest method.
//	req, resp := client.ListSipRulesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListSipRules
//
// Deprecated: Replaced by ListSipRules in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListSipRulesRequest(input *ListSipRulesInput) (req *request.Request, output *ListSipRulesOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListSipRules, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListSipRules,
		HTTPMethod: "GET",
		HTTPPath:   "/sip-rules",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListSipRulesInput{}
	}

	output = &ListSipRulesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListSipRules API operation for Amazon Chime.
//
// Lists the SIP rules under the administrator's AWS account.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListSipRules (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_ListSipRules.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListSipRules for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListSipRules
//
// Deprecated: Replaced by ListSipRules in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListSipRules(input *ListSipRulesInput) (*ListSipRulesOutput, error) {
	req, out := c.ListSipRulesRequest(input)
	return out, req.Send()
}

// ListSipRulesWithContext is the same as ListSipRules with the addition of
// the ability to pass a context and additional request options.
//
// See ListSipRules for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListSipRules in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListSipRulesWithContext(ctx aws.Context, input *ListSipRulesInput, opts ...request.Option) (*ListSipRulesOutput, error) {
	req, out := c.ListSipRulesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListSipRulesPages iterates over the pages of a ListSipRules operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListSipRules method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListSipRules operation.
//	pageNum := 0
//	err := client.ListSipRulesPages(params,
//	    func(page *chime.ListSipRulesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListSipRules in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListSipRulesPages(input *ListSipRulesInput, fn func(*ListSipRulesOutput, bool) bool) error {
	return c.ListSipRulesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListSipRulesPagesWithContext same as ListSipRulesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListSipRules in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListSipRulesPagesWithContext(ctx aws.Context, input *ListSipRulesInput, fn func(*ListSipRulesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListSipRulesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListSipRulesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListSipRulesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListSupportedPhoneNumberCountries = "ListSupportedPhoneNumberCountries"

// ListSupportedPhoneNumberCountriesRequest generates a "aws/request.Request" representing the
// client's request for the ListSupportedPhoneNumberCountries operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListSupportedPhoneNumberCountries for more information on using the ListSupportedPhoneNumberCountries
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListSupportedPhoneNumberCountriesRequest method.
//	req, resp := client.ListSupportedPhoneNumberCountriesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListSupportedPhoneNumberCountries
func (c *Chime) ListSupportedPhoneNumberCountriesRequest(input *ListSupportedPhoneNumberCountriesInput) (req *request.Request, output *ListSupportedPhoneNumberCountriesOutput) {
	op := &request.Operation{
		Name:       opListSupportedPhoneNumberCountries,
		HTTPMethod: "GET",
		HTTPPath:   "/phone-number-countries",
	}

	if input == nil {
		input = &ListSupportedPhoneNumberCountriesInput{}
	}

	output = &ListSupportedPhoneNumberCountriesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListSupportedPhoneNumberCountries API operation for Amazon Chime.
//
// Lists supported phone number countries.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListSupportedPhoneNumberCountries for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListSupportedPhoneNumberCountries
func (c *Chime) ListSupportedPhoneNumberCountries(input *ListSupportedPhoneNumberCountriesInput) (*ListSupportedPhoneNumberCountriesOutput, error) {
	req, out := c.ListSupportedPhoneNumberCountriesRequest(input)
	return out, req.Send()
}

// ListSupportedPhoneNumberCountriesWithContext is the same as ListSupportedPhoneNumberCountries with the addition of
// the ability to pass a context and additional request options.
//
// See ListSupportedPhoneNumberCountries for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListSupportedPhoneNumberCountriesWithContext(ctx aws.Context, input *ListSupportedPhoneNumberCountriesInput, opts ...request.Option) (*ListSupportedPhoneNumberCountriesOutput, error) {
	req, out := c.ListSupportedPhoneNumberCountriesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListTagsForResource = "ListTagsForResource"

// ListTagsForResourceRequest generates a "aws/request.Request" representing the
// client's request for the ListTagsForResource operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListTagsForResource for more information on using the ListTagsForResource
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListTagsForResourceRequest method.
//	req, resp := client.ListTagsForResourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListTagsForResource
//
// Deprecated: Replaced by ListTagsForResource in the Amazon Chime SDK Voice, Amazon Chime SDK Meetings, Amazon Chime SDK Identity, Amazon Chime SDK Messaging, and Amazon Chime SDK Media Pipelines Namespaces
func (c *Chime) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListTagsForResource, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListTagsForResource,
		HTTPMethod: "GET",
		HTTPPath:   "/tags",
	}

	if input == nil {
		input = &ListTagsForResourceInput{}
	}

	output = &ListTagsForResourceOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListTagsForResource API operation for Amazon Chime.
//
// Lists the tags applied to an Amazon Chime SDK meeting and messaging resources.
//
// This API is is no longer supported and will not be updated. We recommend
// using the applicable latest version in the Amazon Chime SDK.
//
//   - For meetings: ListTagsForResource (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_ListTagsForResource.html).
//
//   - For messaging: ListTagsForResource (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListTagsForResource.html).
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListTagsForResource for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListTagsForResource
//
// Deprecated: Replaced by ListTagsForResource in the Amazon Chime SDK Voice, Amazon Chime SDK Meetings, Amazon Chime SDK Identity, Amazon Chime SDK Messaging, and Amazon Chime SDK Media Pipelines Namespaces
func (c *Chime) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
	req, out := c.ListTagsForResourceRequest(input)
	return out, req.Send()
}

// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
// the ability to pass a context and additional request options.
//
// See ListTagsForResource for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListTagsForResource in the Amazon Chime SDK Voice, Amazon Chime SDK Meetings, Amazon Chime SDK Identity, Amazon Chime SDK Messaging, and Amazon Chime SDK Media Pipelines Namespaces
func (c *Chime) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
	req, out := c.ListTagsForResourceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListUsers = "ListUsers"

// ListUsersRequest generates a "aws/request.Request" representing the
// client's request for the ListUsers operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListUsers for more information on using the ListUsers
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListUsersRequest method.
//	req, resp := client.ListUsersRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListUsers
func (c *Chime) ListUsersRequest(input *ListUsersInput) (req *request.Request, output *ListUsersOutput) {
	op := &request.Operation{
		Name:       opListUsers,
		HTTPMethod: "GET",
		HTTPPath:   "/accounts/{accountId}/users",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListUsersInput{}
	}

	output = &ListUsersOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListUsers API operation for Amazon Chime.
//
// Lists the users that belong to the specified Amazon Chime account. You can
// specify an email address to list only the user that the email address belongs
// to.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListUsers for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListUsers
func (c *Chime) ListUsers(input *ListUsersInput) (*ListUsersOutput, error) {
	req, out := c.ListUsersRequest(input)
	return out, req.Send()
}

// ListUsersWithContext is the same as ListUsers with the addition of
// the ability to pass a context and additional request options.
//
// See ListUsers for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListUsersWithContext(ctx aws.Context, input *ListUsersInput, opts ...request.Option) (*ListUsersOutput, error) {
	req, out := c.ListUsersRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListUsersPages iterates over the pages of a ListUsers operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListUsers method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListUsers operation.
//	pageNum := 0
//	err := client.ListUsersPages(params,
//	    func(page *chime.ListUsersOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Chime) ListUsersPages(input *ListUsersInput, fn func(*ListUsersOutput, bool) bool) error {
	return c.ListUsersPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListUsersPagesWithContext same as ListUsersPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ListUsersPagesWithContext(ctx aws.Context, input *ListUsersInput, fn func(*ListUsersOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListUsersInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListUsersRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListUsersOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListVoiceConnectorGroups = "ListVoiceConnectorGroups"

// ListVoiceConnectorGroupsRequest generates a "aws/request.Request" representing the
// client's request for the ListVoiceConnectorGroups operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListVoiceConnectorGroups for more information on using the ListVoiceConnectorGroups
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListVoiceConnectorGroupsRequest method.
//	req, resp := client.ListVoiceConnectorGroupsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListVoiceConnectorGroups
//
// Deprecated: Replaced by ListVoiceConnectorGroups in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListVoiceConnectorGroupsRequest(input *ListVoiceConnectorGroupsInput) (req *request.Request, output *ListVoiceConnectorGroupsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListVoiceConnectorGroups, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListVoiceConnectorGroups,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connector-groups",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListVoiceConnectorGroupsInput{}
	}

	output = &ListVoiceConnectorGroupsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListVoiceConnectorGroups API operation for Amazon Chime.
//
// Lists the Amazon Chime Voice Connector groups for the administrator's AWS
// account.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListVoiceConnectorGroups (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_ListVoiceConnectorGroups.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListVoiceConnectorGroups for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListVoiceConnectorGroups
//
// Deprecated: Replaced by ListVoiceConnectorGroups in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListVoiceConnectorGroups(input *ListVoiceConnectorGroupsInput) (*ListVoiceConnectorGroupsOutput, error) {
	req, out := c.ListVoiceConnectorGroupsRequest(input)
	return out, req.Send()
}

// ListVoiceConnectorGroupsWithContext is the same as ListVoiceConnectorGroups with the addition of
// the ability to pass a context and additional request options.
//
// See ListVoiceConnectorGroups for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListVoiceConnectorGroups in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListVoiceConnectorGroupsWithContext(ctx aws.Context, input *ListVoiceConnectorGroupsInput, opts ...request.Option) (*ListVoiceConnectorGroupsOutput, error) {
	req, out := c.ListVoiceConnectorGroupsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListVoiceConnectorGroupsPages iterates over the pages of a ListVoiceConnectorGroups operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListVoiceConnectorGroups method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListVoiceConnectorGroups operation.
//	pageNum := 0
//	err := client.ListVoiceConnectorGroupsPages(params,
//	    func(page *chime.ListVoiceConnectorGroupsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListVoiceConnectorGroups in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListVoiceConnectorGroupsPages(input *ListVoiceConnectorGroupsInput, fn func(*ListVoiceConnectorGroupsOutput, bool) bool) error {
	return c.ListVoiceConnectorGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListVoiceConnectorGroupsPagesWithContext same as ListVoiceConnectorGroupsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListVoiceConnectorGroups in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListVoiceConnectorGroupsPagesWithContext(ctx aws.Context, input *ListVoiceConnectorGroupsInput, fn func(*ListVoiceConnectorGroupsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListVoiceConnectorGroupsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListVoiceConnectorGroupsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListVoiceConnectorGroupsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListVoiceConnectorTerminationCredentials = "ListVoiceConnectorTerminationCredentials"

// ListVoiceConnectorTerminationCredentialsRequest generates a "aws/request.Request" representing the
// client's request for the ListVoiceConnectorTerminationCredentials operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListVoiceConnectorTerminationCredentials for more information on using the ListVoiceConnectorTerminationCredentials
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListVoiceConnectorTerminationCredentialsRequest method.
//	req, resp := client.ListVoiceConnectorTerminationCredentialsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListVoiceConnectorTerminationCredentials
//
// Deprecated: Replaced by ListVoiceConnectorTerminationCredentials in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListVoiceConnectorTerminationCredentialsRequest(input *ListVoiceConnectorTerminationCredentialsInput) (req *request.Request, output *ListVoiceConnectorTerminationCredentialsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListVoiceConnectorTerminationCredentials, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListVoiceConnectorTerminationCredentials,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/termination/credentials",
	}

	if input == nil {
		input = &ListVoiceConnectorTerminationCredentialsInput{}
	}

	output = &ListVoiceConnectorTerminationCredentialsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListVoiceConnectorTerminationCredentials API operation for Amazon Chime.
//
// Lists the SIP credentials for the specified Amazon Chime Voice Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListVoiceConnectorTerminationCredentials (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_ListVoiceConnectorTerminationCredentials.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListVoiceConnectorTerminationCredentials for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListVoiceConnectorTerminationCredentials
//
// Deprecated: Replaced by ListVoiceConnectorTerminationCredentials in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListVoiceConnectorTerminationCredentials(input *ListVoiceConnectorTerminationCredentialsInput) (*ListVoiceConnectorTerminationCredentialsOutput, error) {
	req, out := c.ListVoiceConnectorTerminationCredentialsRequest(input)
	return out, req.Send()
}

// ListVoiceConnectorTerminationCredentialsWithContext is the same as ListVoiceConnectorTerminationCredentials with the addition of
// the ability to pass a context and additional request options.
//
// See ListVoiceConnectorTerminationCredentials for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListVoiceConnectorTerminationCredentials in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListVoiceConnectorTerminationCredentialsWithContext(ctx aws.Context, input *ListVoiceConnectorTerminationCredentialsInput, opts ...request.Option) (*ListVoiceConnectorTerminationCredentialsOutput, error) {
	req, out := c.ListVoiceConnectorTerminationCredentialsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListVoiceConnectors = "ListVoiceConnectors"

// ListVoiceConnectorsRequest generates a "aws/request.Request" representing the
// client's request for the ListVoiceConnectors operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListVoiceConnectors for more information on using the ListVoiceConnectors
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListVoiceConnectorsRequest method.
//	req, resp := client.ListVoiceConnectorsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListVoiceConnectors
//
// Deprecated: Replaced by ListVoiceConnectors in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListVoiceConnectorsRequest(input *ListVoiceConnectorsInput) (req *request.Request, output *ListVoiceConnectorsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ListVoiceConnectors, has been deprecated")
	}
	op := &request.Operation{
		Name:       opListVoiceConnectors,
		HTTPMethod: "GET",
		HTTPPath:   "/voice-connectors",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListVoiceConnectorsInput{}
	}

	output = &ListVoiceConnectorsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListVoiceConnectors API operation for Amazon Chime.
//
// Lists the Amazon Chime Voice Connectors for the administrator's AWS account.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ListVoiceConnectors (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_ListVoiceConnectors.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ListVoiceConnectors for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ListVoiceConnectors
//
// Deprecated: Replaced by ListVoiceConnectors in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListVoiceConnectors(input *ListVoiceConnectorsInput) (*ListVoiceConnectorsOutput, error) {
	req, out := c.ListVoiceConnectorsRequest(input)
	return out, req.Send()
}

// ListVoiceConnectorsWithContext is the same as ListVoiceConnectors with the addition of
// the ability to pass a context and additional request options.
//
// See ListVoiceConnectors for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListVoiceConnectors in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListVoiceConnectorsWithContext(ctx aws.Context, input *ListVoiceConnectorsInput, opts ...request.Option) (*ListVoiceConnectorsOutput, error) {
	req, out := c.ListVoiceConnectorsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListVoiceConnectorsPages iterates over the pages of a ListVoiceConnectors operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListVoiceConnectors method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListVoiceConnectors operation.
//	pageNum := 0
//	err := client.ListVoiceConnectorsPages(params,
//	    func(page *chime.ListVoiceConnectorsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
//
// Deprecated: Replaced by ListVoiceConnectors in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListVoiceConnectorsPages(input *ListVoiceConnectorsInput, fn func(*ListVoiceConnectorsOutput, bool) bool) error {
	return c.ListVoiceConnectorsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListVoiceConnectorsPagesWithContext same as ListVoiceConnectorsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ListVoiceConnectors in the Amazon Chime SDK Voice Namespace
func (c *Chime) ListVoiceConnectorsPagesWithContext(ctx aws.Context, input *ListVoiceConnectorsInput, fn func(*ListVoiceConnectorsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListVoiceConnectorsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListVoiceConnectorsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListVoiceConnectorsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opLogoutUser = "LogoutUser"

// LogoutUserRequest generates a "aws/request.Request" representing the
// client's request for the LogoutUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See LogoutUser for more information on using the LogoutUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the LogoutUserRequest method.
//	req, resp := client.LogoutUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/LogoutUser
func (c *Chime) LogoutUserRequest(input *LogoutUserInput) (req *request.Request, output *LogoutUserOutput) {
	op := &request.Operation{
		Name:       opLogoutUser,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/users/{userId}?operation=logout",
	}

	if input == nil {
		input = &LogoutUserInput{}
	}

	output = &LogoutUserOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// LogoutUser API operation for Amazon Chime.
//
// Logs out the specified user from all of the devices they are currently logged
// into.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation LogoutUser for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/LogoutUser
func (c *Chime) LogoutUser(input *LogoutUserInput) (*LogoutUserOutput, error) {
	req, out := c.LogoutUserRequest(input)
	return out, req.Send()
}

// LogoutUserWithContext is the same as LogoutUser with the addition of
// the ability to pass a context and additional request options.
//
// See LogoutUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) LogoutUserWithContext(ctx aws.Context, input *LogoutUserInput, opts ...request.Option) (*LogoutUserOutput, error) {
	req, out := c.LogoutUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutAppInstanceRetentionSettings = "PutAppInstanceRetentionSettings"

// PutAppInstanceRetentionSettingsRequest generates a "aws/request.Request" representing the
// client's request for the PutAppInstanceRetentionSettings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutAppInstanceRetentionSettings for more information on using the PutAppInstanceRetentionSettings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutAppInstanceRetentionSettingsRequest method.
//	req, resp := client.PutAppInstanceRetentionSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutAppInstanceRetentionSettings
//
// Deprecated: Replaced by PutAppInstanceRetentionSettings in the Amazon Chime SDK Identity Namespace
func (c *Chime) PutAppInstanceRetentionSettingsRequest(input *PutAppInstanceRetentionSettingsInput) (req *request.Request, output *PutAppInstanceRetentionSettingsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, PutAppInstanceRetentionSettings, has been deprecated")
	}
	op := &request.Operation{
		Name:       opPutAppInstanceRetentionSettings,
		HTTPMethod: "PUT",
		HTTPPath:   "/app-instances/{appInstanceArn}/retention-settings",
	}

	if input == nil {
		input = &PutAppInstanceRetentionSettingsInput{}
	}

	output = &PutAppInstanceRetentionSettingsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// PutAppInstanceRetentionSettings API operation for Amazon Chime.
//
// Sets the amount of time in days that a given AppInstance retains data.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, PutAppInstanceRetentionSettings (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_PutAppInstanceRetentionSettings.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation PutAppInstanceRetentionSettings for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutAppInstanceRetentionSettings
//
// Deprecated: Replaced by PutAppInstanceRetentionSettings in the Amazon Chime SDK Identity Namespace
func (c *Chime) PutAppInstanceRetentionSettings(input *PutAppInstanceRetentionSettingsInput) (*PutAppInstanceRetentionSettingsOutput, error) {
	req, out := c.PutAppInstanceRetentionSettingsRequest(input)
	return out, req.Send()
}

// PutAppInstanceRetentionSettingsWithContext is the same as PutAppInstanceRetentionSettings with the addition of
// the ability to pass a context and additional request options.
//
// See PutAppInstanceRetentionSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by PutAppInstanceRetentionSettings in the Amazon Chime SDK Identity Namespace
func (c *Chime) PutAppInstanceRetentionSettingsWithContext(ctx aws.Context, input *PutAppInstanceRetentionSettingsInput, opts ...request.Option) (*PutAppInstanceRetentionSettingsOutput, error) {
	req, out := c.PutAppInstanceRetentionSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutAppInstanceStreamingConfigurations = "PutAppInstanceStreamingConfigurations"

// PutAppInstanceStreamingConfigurationsRequest generates a "aws/request.Request" representing the
// client's request for the PutAppInstanceStreamingConfigurations operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutAppInstanceStreamingConfigurations for more information on using the PutAppInstanceStreamingConfigurations
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutAppInstanceStreamingConfigurationsRequest method.
//	req, resp := client.PutAppInstanceStreamingConfigurationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutAppInstanceStreamingConfigurations
//
// Deprecated: Replaced by PutAppInstanceStreamingConfigurations in the Amazon Chime SDK Messaging Namespace
func (c *Chime) PutAppInstanceStreamingConfigurationsRequest(input *PutAppInstanceStreamingConfigurationsInput) (req *request.Request, output *PutAppInstanceStreamingConfigurationsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, PutAppInstanceStreamingConfigurations, has been deprecated")
	}
	op := &request.Operation{
		Name:       opPutAppInstanceStreamingConfigurations,
		HTTPMethod: "PUT",
		HTTPPath:   "/app-instances/{appInstanceArn}/streaming-configurations",
	}

	if input == nil {
		input = &PutAppInstanceStreamingConfigurationsInput{}
	}

	output = &PutAppInstanceStreamingConfigurationsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutAppInstanceStreamingConfigurations API operation for Amazon Chime.
//
// The data streaming configurations of an AppInstance.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, PutMessagingStreamingConfigurations (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutMessagingStreamingConfigurations.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation PutAppInstanceStreamingConfigurations for usage and error information.
//
// Returned Error Types:
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutAppInstanceStreamingConfigurations
//
// Deprecated: Replaced by PutAppInstanceStreamingConfigurations in the Amazon Chime SDK Messaging Namespace
func (c *Chime) PutAppInstanceStreamingConfigurations(input *PutAppInstanceStreamingConfigurationsInput) (*PutAppInstanceStreamingConfigurationsOutput, error) {
	req, out := c.PutAppInstanceStreamingConfigurationsRequest(input)
	return out, req.Send()
}

// PutAppInstanceStreamingConfigurationsWithContext is the same as PutAppInstanceStreamingConfigurations with the addition of
// the ability to pass a context and additional request options.
//
// See PutAppInstanceStreamingConfigurations for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by PutAppInstanceStreamingConfigurations in the Amazon Chime SDK Messaging Namespace
func (c *Chime) PutAppInstanceStreamingConfigurationsWithContext(ctx aws.Context, input *PutAppInstanceStreamingConfigurationsInput, opts ...request.Option) (*PutAppInstanceStreamingConfigurationsOutput, error) {
	req, out := c.PutAppInstanceStreamingConfigurationsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutEventsConfiguration = "PutEventsConfiguration"

// PutEventsConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the PutEventsConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutEventsConfiguration for more information on using the PutEventsConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutEventsConfigurationRequest method.
//	req, resp := client.PutEventsConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutEventsConfiguration
func (c *Chime) PutEventsConfigurationRequest(input *PutEventsConfigurationInput) (req *request.Request, output *PutEventsConfigurationOutput) {
	op := &request.Operation{
		Name:       opPutEventsConfiguration,
		HTTPMethod: "PUT",
		HTTPPath:   "/accounts/{accountId}/bots/{botId}/events-configuration",
	}

	if input == nil {
		input = &PutEventsConfigurationInput{}
	}

	output = &PutEventsConfigurationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutEventsConfiguration API operation for Amazon Chime.
//
// Creates an events configuration that allows a bot to receive outgoing events
// sent by Amazon Chime. Choose either an HTTPS endpoint or a Lambda function
// ARN. For more information, see Bot.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation PutEventsConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutEventsConfiguration
func (c *Chime) PutEventsConfiguration(input *PutEventsConfigurationInput) (*PutEventsConfigurationOutput, error) {
	req, out := c.PutEventsConfigurationRequest(input)
	return out, req.Send()
}

// PutEventsConfigurationWithContext is the same as PutEventsConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See PutEventsConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) PutEventsConfigurationWithContext(ctx aws.Context, input *PutEventsConfigurationInput, opts ...request.Option) (*PutEventsConfigurationOutput, error) {
	req, out := c.PutEventsConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutRetentionSettings = "PutRetentionSettings"

// PutRetentionSettingsRequest generates a "aws/request.Request" representing the
// client's request for the PutRetentionSettings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutRetentionSettings for more information on using the PutRetentionSettings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutRetentionSettingsRequest method.
//	req, resp := client.PutRetentionSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutRetentionSettings
func (c *Chime) PutRetentionSettingsRequest(input *PutRetentionSettingsInput) (req *request.Request, output *PutRetentionSettingsOutput) {
	op := &request.Operation{
		Name:       opPutRetentionSettings,
		HTTPMethod: "PUT",
		HTTPPath:   "/accounts/{accountId}/retention-settings",
	}

	if input == nil {
		input = &PutRetentionSettingsInput{}
	}

	output = &PutRetentionSettingsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutRetentionSettings API operation for Amazon Chime.
//
// Puts retention settings for the specified Amazon Chime Enterprise account.
// We recommend using AWS CloudTrail to monitor usage of this API for your account.
// For more information, see Logging Amazon Chime API Calls with AWS CloudTrail
// (https://docs.aws.amazon.com/chime/latest/ag/cloudtrail.html) in the Amazon
// Chime Administration Guide.
//
// To turn off existing retention settings, remove the number of days from the
// corresponding RetentionDays field in the RetentionSettings object. For more
// information about retention settings, see Managing Chat Retention Policies
// (https://docs.aws.amazon.com/chime/latest/ag/chat-retention.html) in the
// Amazon Chime Administration Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation PutRetentionSettings for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutRetentionSettings
func (c *Chime) PutRetentionSettings(input *PutRetentionSettingsInput) (*PutRetentionSettingsOutput, error) {
	req, out := c.PutRetentionSettingsRequest(input)
	return out, req.Send()
}

// PutRetentionSettingsWithContext is the same as PutRetentionSettings with the addition of
// the ability to pass a context and additional request options.
//
// See PutRetentionSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) PutRetentionSettingsWithContext(ctx aws.Context, input *PutRetentionSettingsInput, opts ...request.Option) (*PutRetentionSettingsOutput, error) {
	req, out := c.PutRetentionSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutSipMediaApplicationLoggingConfiguration = "PutSipMediaApplicationLoggingConfiguration"

// PutSipMediaApplicationLoggingConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the PutSipMediaApplicationLoggingConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutSipMediaApplicationLoggingConfiguration for more information on using the PutSipMediaApplicationLoggingConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutSipMediaApplicationLoggingConfigurationRequest method.
//	req, resp := client.PutSipMediaApplicationLoggingConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutSipMediaApplicationLoggingConfiguration
//
// Deprecated: Replaced by PutSipMediaApplicationLoggingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutSipMediaApplicationLoggingConfigurationRequest(input *PutSipMediaApplicationLoggingConfigurationInput) (req *request.Request, output *PutSipMediaApplicationLoggingConfigurationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, PutSipMediaApplicationLoggingConfiguration, has been deprecated")
	}
	op := &request.Operation{
		Name:       opPutSipMediaApplicationLoggingConfiguration,
		HTTPMethod: "PUT",
		HTTPPath:   "/sip-media-applications/{sipMediaApplicationId}/logging-configuration",
	}

	if input == nil {
		input = &PutSipMediaApplicationLoggingConfigurationInput{}
	}

	output = &PutSipMediaApplicationLoggingConfigurationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutSipMediaApplicationLoggingConfiguration API operation for Amazon Chime.
//
// Updates the logging configuration for the specified SIP media application.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, PutSipMediaApplicationLoggingConfiguration (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PutSipMediaApplicationLoggingConfiguration.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation PutSipMediaApplicationLoggingConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutSipMediaApplicationLoggingConfiguration
//
// Deprecated: Replaced by PutSipMediaApplicationLoggingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutSipMediaApplicationLoggingConfiguration(input *PutSipMediaApplicationLoggingConfigurationInput) (*PutSipMediaApplicationLoggingConfigurationOutput, error) {
	req, out := c.PutSipMediaApplicationLoggingConfigurationRequest(input)
	return out, req.Send()
}

// PutSipMediaApplicationLoggingConfigurationWithContext is the same as PutSipMediaApplicationLoggingConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See PutSipMediaApplicationLoggingConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by PutSipMediaApplicationLoggingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutSipMediaApplicationLoggingConfigurationWithContext(ctx aws.Context, input *PutSipMediaApplicationLoggingConfigurationInput, opts ...request.Option) (*PutSipMediaApplicationLoggingConfigurationOutput, error) {
	req, out := c.PutSipMediaApplicationLoggingConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutVoiceConnectorEmergencyCallingConfiguration = "PutVoiceConnectorEmergencyCallingConfiguration"

// PutVoiceConnectorEmergencyCallingConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the PutVoiceConnectorEmergencyCallingConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutVoiceConnectorEmergencyCallingConfiguration for more information on using the PutVoiceConnectorEmergencyCallingConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutVoiceConnectorEmergencyCallingConfigurationRequest method.
//	req, resp := client.PutVoiceConnectorEmergencyCallingConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorEmergencyCallingConfiguration
//
// Deprecated: Replaced by PutVoiceConnectorEmergencyCallingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorEmergencyCallingConfigurationRequest(input *PutVoiceConnectorEmergencyCallingConfigurationInput) (req *request.Request, output *PutVoiceConnectorEmergencyCallingConfigurationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, PutVoiceConnectorEmergencyCallingConfiguration, has been deprecated")
	}
	op := &request.Operation{
		Name:       opPutVoiceConnectorEmergencyCallingConfiguration,
		HTTPMethod: "PUT",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/emergency-calling-configuration",
	}

	if input == nil {
		input = &PutVoiceConnectorEmergencyCallingConfigurationInput{}
	}

	output = &PutVoiceConnectorEmergencyCallingConfigurationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutVoiceConnectorEmergencyCallingConfiguration API operation for Amazon Chime.
//
// Puts emergency calling configuration details to the specified Amazon Chime
// Voice Connector, such as emergency phone numbers and calling countries. Origination
// and termination settings must be enabled for the Amazon Chime Voice Connector
// before emergency calling can be configured.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, PutVoiceConnectorEmergencyCallingConfiguration
// (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PutVoiceConnectorEmergencyCallingConfiguration.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation PutVoiceConnectorEmergencyCallingConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorEmergencyCallingConfiguration
//
// Deprecated: Replaced by PutVoiceConnectorEmergencyCallingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorEmergencyCallingConfiguration(input *PutVoiceConnectorEmergencyCallingConfigurationInput) (*PutVoiceConnectorEmergencyCallingConfigurationOutput, error) {
	req, out := c.PutVoiceConnectorEmergencyCallingConfigurationRequest(input)
	return out, req.Send()
}

// PutVoiceConnectorEmergencyCallingConfigurationWithContext is the same as PutVoiceConnectorEmergencyCallingConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See PutVoiceConnectorEmergencyCallingConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by PutVoiceConnectorEmergencyCallingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorEmergencyCallingConfigurationWithContext(ctx aws.Context, input *PutVoiceConnectorEmergencyCallingConfigurationInput, opts ...request.Option) (*PutVoiceConnectorEmergencyCallingConfigurationOutput, error) {
	req, out := c.PutVoiceConnectorEmergencyCallingConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutVoiceConnectorLoggingConfiguration = "PutVoiceConnectorLoggingConfiguration"

// PutVoiceConnectorLoggingConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the PutVoiceConnectorLoggingConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutVoiceConnectorLoggingConfiguration for more information on using the PutVoiceConnectorLoggingConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutVoiceConnectorLoggingConfigurationRequest method.
//	req, resp := client.PutVoiceConnectorLoggingConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorLoggingConfiguration
//
// Deprecated: Replaced by PutVoiceConnectorLoggingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorLoggingConfigurationRequest(input *PutVoiceConnectorLoggingConfigurationInput) (req *request.Request, output *PutVoiceConnectorLoggingConfigurationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, PutVoiceConnectorLoggingConfiguration, has been deprecated")
	}
	op := &request.Operation{
		Name:       opPutVoiceConnectorLoggingConfiguration,
		HTTPMethod: "PUT",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/logging-configuration",
	}

	if input == nil {
		input = &PutVoiceConnectorLoggingConfigurationInput{}
	}

	output = &PutVoiceConnectorLoggingConfigurationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutVoiceConnectorLoggingConfiguration API operation for Amazon Chime.
//
// Adds a logging configuration for the specified Amazon Chime Voice Connector.
// The logging configuration specifies whether SIP message logs are enabled
// for sending to Amazon CloudWatch Logs.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, PutVoiceConnectorLoggingConfiguration (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PutVoiceConnectorLoggingConfiguration.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation PutVoiceConnectorLoggingConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorLoggingConfiguration
//
// Deprecated: Replaced by PutVoiceConnectorLoggingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorLoggingConfiguration(input *PutVoiceConnectorLoggingConfigurationInput) (*PutVoiceConnectorLoggingConfigurationOutput, error) {
	req, out := c.PutVoiceConnectorLoggingConfigurationRequest(input)
	return out, req.Send()
}

// PutVoiceConnectorLoggingConfigurationWithContext is the same as PutVoiceConnectorLoggingConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See PutVoiceConnectorLoggingConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by PutVoiceConnectorLoggingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorLoggingConfigurationWithContext(ctx aws.Context, input *PutVoiceConnectorLoggingConfigurationInput, opts ...request.Option) (*PutVoiceConnectorLoggingConfigurationOutput, error) {
	req, out := c.PutVoiceConnectorLoggingConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutVoiceConnectorOrigination = "PutVoiceConnectorOrigination"

// PutVoiceConnectorOriginationRequest generates a "aws/request.Request" representing the
// client's request for the PutVoiceConnectorOrigination operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutVoiceConnectorOrigination for more information on using the PutVoiceConnectorOrigination
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutVoiceConnectorOriginationRequest method.
//	req, resp := client.PutVoiceConnectorOriginationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorOrigination
//
// Deprecated: Replaced by PutVoiceConnectorOrigination in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorOriginationRequest(input *PutVoiceConnectorOriginationInput) (req *request.Request, output *PutVoiceConnectorOriginationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, PutVoiceConnectorOrigination, has been deprecated")
	}
	op := &request.Operation{
		Name:       opPutVoiceConnectorOrigination,
		HTTPMethod: "PUT",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/origination",
	}

	if input == nil {
		input = &PutVoiceConnectorOriginationInput{}
	}

	output = &PutVoiceConnectorOriginationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutVoiceConnectorOrigination API operation for Amazon Chime.
//
// Adds origination settings for the specified Amazon Chime Voice Connector.
//
// If emergency calling is configured for the Amazon Chime Voice Connector,
// it must be deleted prior to turning off origination settings.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, PutVoiceConnectorOrigination (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PutVoiceConnectorOrigination.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation PutVoiceConnectorOrigination for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorOrigination
//
// Deprecated: Replaced by PutVoiceConnectorOrigination in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorOrigination(input *PutVoiceConnectorOriginationInput) (*PutVoiceConnectorOriginationOutput, error) {
	req, out := c.PutVoiceConnectorOriginationRequest(input)
	return out, req.Send()
}

// PutVoiceConnectorOriginationWithContext is the same as PutVoiceConnectorOrigination with the addition of
// the ability to pass a context and additional request options.
//
// See PutVoiceConnectorOrigination for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by PutVoiceConnectorOrigination in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorOriginationWithContext(ctx aws.Context, input *PutVoiceConnectorOriginationInput, opts ...request.Option) (*PutVoiceConnectorOriginationOutput, error) {
	req, out := c.PutVoiceConnectorOriginationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutVoiceConnectorProxy = "PutVoiceConnectorProxy"

// PutVoiceConnectorProxyRequest generates a "aws/request.Request" representing the
// client's request for the PutVoiceConnectorProxy operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutVoiceConnectorProxy for more information on using the PutVoiceConnectorProxy
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutVoiceConnectorProxyRequest method.
//	req, resp := client.PutVoiceConnectorProxyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorProxy
//
// Deprecated: Replaced by PutVoiceConnectorProxy in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorProxyRequest(input *PutVoiceConnectorProxyInput) (req *request.Request, output *PutVoiceConnectorProxyOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, PutVoiceConnectorProxy, has been deprecated")
	}
	op := &request.Operation{
		Name:       opPutVoiceConnectorProxy,
		HTTPMethod: "PUT",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/programmable-numbers/proxy",
	}

	if input == nil {
		input = &PutVoiceConnectorProxyInput{}
	}

	output = &PutVoiceConnectorProxyOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutVoiceConnectorProxy API operation for Amazon Chime.
//
// Puts the specified proxy configuration to the specified Amazon Chime Voice
// Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, PutVoiceConnectorProxy (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PutVoiceConnectorProxy.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation PutVoiceConnectorProxy for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorProxy
//
// Deprecated: Replaced by PutVoiceConnectorProxy in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorProxy(input *PutVoiceConnectorProxyInput) (*PutVoiceConnectorProxyOutput, error) {
	req, out := c.PutVoiceConnectorProxyRequest(input)
	return out, req.Send()
}

// PutVoiceConnectorProxyWithContext is the same as PutVoiceConnectorProxy with the addition of
// the ability to pass a context and additional request options.
//
// See PutVoiceConnectorProxy for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by PutVoiceConnectorProxy in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorProxyWithContext(ctx aws.Context, input *PutVoiceConnectorProxyInput, opts ...request.Option) (*PutVoiceConnectorProxyOutput, error) {
	req, out := c.PutVoiceConnectorProxyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutVoiceConnectorStreamingConfiguration = "PutVoiceConnectorStreamingConfiguration"

// PutVoiceConnectorStreamingConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the PutVoiceConnectorStreamingConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutVoiceConnectorStreamingConfiguration for more information on using the PutVoiceConnectorStreamingConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutVoiceConnectorStreamingConfigurationRequest method.
//	req, resp := client.PutVoiceConnectorStreamingConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorStreamingConfiguration
//
// Deprecated: Replaced by PutVoiceConnectorStreamingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorStreamingConfigurationRequest(input *PutVoiceConnectorStreamingConfigurationInput) (req *request.Request, output *PutVoiceConnectorStreamingConfigurationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, PutVoiceConnectorStreamingConfiguration, has been deprecated")
	}
	op := &request.Operation{
		Name:       opPutVoiceConnectorStreamingConfiguration,
		HTTPMethod: "PUT",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/streaming-configuration",
	}

	if input == nil {
		input = &PutVoiceConnectorStreamingConfigurationInput{}
	}

	output = &PutVoiceConnectorStreamingConfigurationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutVoiceConnectorStreamingConfiguration API operation for Amazon Chime.
//
// Adds a streaming configuration for the specified Amazon Chime Voice Connector.
// The streaming configuration specifies whether media streaming is enabled
// for sending to Kinesis. It also sets the retention period, in hours, for
// the Amazon Kinesis data.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, PutVoiceConnectorStreamingConfiguration (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PutVoiceConnectorStreamingConfiguration.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation PutVoiceConnectorStreamingConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorStreamingConfiguration
//
// Deprecated: Replaced by PutVoiceConnectorStreamingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorStreamingConfiguration(input *PutVoiceConnectorStreamingConfigurationInput) (*PutVoiceConnectorStreamingConfigurationOutput, error) {
	req, out := c.PutVoiceConnectorStreamingConfigurationRequest(input)
	return out, req.Send()
}

// PutVoiceConnectorStreamingConfigurationWithContext is the same as PutVoiceConnectorStreamingConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See PutVoiceConnectorStreamingConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by PutVoiceConnectorStreamingConfiguration in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorStreamingConfigurationWithContext(ctx aws.Context, input *PutVoiceConnectorStreamingConfigurationInput, opts ...request.Option) (*PutVoiceConnectorStreamingConfigurationOutput, error) {
	req, out := c.PutVoiceConnectorStreamingConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutVoiceConnectorTermination = "PutVoiceConnectorTermination"

// PutVoiceConnectorTerminationRequest generates a "aws/request.Request" representing the
// client's request for the PutVoiceConnectorTermination operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutVoiceConnectorTermination for more information on using the PutVoiceConnectorTermination
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutVoiceConnectorTerminationRequest method.
//	req, resp := client.PutVoiceConnectorTerminationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorTermination
//
// Deprecated: Replaced by PutVoiceConnectorTermination in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorTerminationRequest(input *PutVoiceConnectorTerminationInput) (req *request.Request, output *PutVoiceConnectorTerminationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, PutVoiceConnectorTermination, has been deprecated")
	}
	op := &request.Operation{
		Name:       opPutVoiceConnectorTermination,
		HTTPMethod: "PUT",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/termination",
	}

	if input == nil {
		input = &PutVoiceConnectorTerminationInput{}
	}

	output = &PutVoiceConnectorTerminationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutVoiceConnectorTermination API operation for Amazon Chime.
//
// Adds termination settings for the specified Amazon Chime Voice Connector.
//
// If emergency calling is configured for the Amazon Chime Voice Connector,
// it must be deleted prior to turning off termination settings.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, PutVoiceConnectorTermination (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PutVoiceConnectorTermination.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation PutVoiceConnectorTermination for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorTermination
//
// Deprecated: Replaced by PutVoiceConnectorTermination in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorTermination(input *PutVoiceConnectorTerminationInput) (*PutVoiceConnectorTerminationOutput, error) {
	req, out := c.PutVoiceConnectorTerminationRequest(input)
	return out, req.Send()
}

// PutVoiceConnectorTerminationWithContext is the same as PutVoiceConnectorTermination with the addition of
// the ability to pass a context and additional request options.
//
// See PutVoiceConnectorTermination for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by PutVoiceConnectorTermination in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorTerminationWithContext(ctx aws.Context, input *PutVoiceConnectorTerminationInput, opts ...request.Option) (*PutVoiceConnectorTerminationOutput, error) {
	req, out := c.PutVoiceConnectorTerminationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutVoiceConnectorTerminationCredentials = "PutVoiceConnectorTerminationCredentials"

// PutVoiceConnectorTerminationCredentialsRequest generates a "aws/request.Request" representing the
// client's request for the PutVoiceConnectorTerminationCredentials operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutVoiceConnectorTerminationCredentials for more information on using the PutVoiceConnectorTerminationCredentials
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutVoiceConnectorTerminationCredentialsRequest method.
//	req, resp := client.PutVoiceConnectorTerminationCredentialsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorTerminationCredentials
//
// Deprecated: Replaced by PutVoiceConnectorTerminationCredentials in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorTerminationCredentialsRequest(input *PutVoiceConnectorTerminationCredentialsInput) (req *request.Request, output *PutVoiceConnectorTerminationCredentialsOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, PutVoiceConnectorTerminationCredentials, has been deprecated")
	}
	op := &request.Operation{
		Name:       opPutVoiceConnectorTerminationCredentials,
		HTTPMethod: "POST",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/termination/credentials?operation=put",
	}

	if input == nil {
		input = &PutVoiceConnectorTerminationCredentialsInput{}
	}

	output = &PutVoiceConnectorTerminationCredentialsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// PutVoiceConnectorTerminationCredentials API operation for Amazon Chime.
//
// Adds termination SIP credentials for the specified Amazon Chime Voice Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, PutVoiceConnectorTerminationCredentials (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PutVoiceConnectorTerminationCredentials.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation PutVoiceConnectorTerminationCredentials for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/PutVoiceConnectorTerminationCredentials
//
// Deprecated: Replaced by PutVoiceConnectorTerminationCredentials in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorTerminationCredentials(input *PutVoiceConnectorTerminationCredentialsInput) (*PutVoiceConnectorTerminationCredentialsOutput, error) {
	req, out := c.PutVoiceConnectorTerminationCredentialsRequest(input)
	return out, req.Send()
}

// PutVoiceConnectorTerminationCredentialsWithContext is the same as PutVoiceConnectorTerminationCredentials with the addition of
// the ability to pass a context and additional request options.
//
// See PutVoiceConnectorTerminationCredentials for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by PutVoiceConnectorTerminationCredentials in the Amazon Chime SDK Voice Namespace
func (c *Chime) PutVoiceConnectorTerminationCredentialsWithContext(ctx aws.Context, input *PutVoiceConnectorTerminationCredentialsInput, opts ...request.Option) (*PutVoiceConnectorTerminationCredentialsOutput, error) {
	req, out := c.PutVoiceConnectorTerminationCredentialsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opRedactChannelMessage = "RedactChannelMessage"

// RedactChannelMessageRequest generates a "aws/request.Request" representing the
// client's request for the RedactChannelMessage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See RedactChannelMessage for more information on using the RedactChannelMessage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the RedactChannelMessageRequest method.
//	req, resp := client.RedactChannelMessageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/RedactChannelMessage
//
// Deprecated: Replaced by RedactChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) RedactChannelMessageRequest(input *RedactChannelMessageInput) (req *request.Request, output *RedactChannelMessageOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, RedactChannelMessage, has been deprecated")
	}
	op := &request.Operation{
		Name:       opRedactChannelMessage,
		HTTPMethod: "POST",
		HTTPPath:   "/channels/{channelArn}/messages/{messageId}?operation=redact",
	}

	if input == nil {
		input = &RedactChannelMessageInput{}
	}

	output = &RedactChannelMessageOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// RedactChannelMessage API operation for Amazon Chime.
//
// Redacts message content, but not metadata. The message exists in the back
// end, but the action returns null content, and the state shows as redacted.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, RedactChannelMessage (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_RedactChannelMessage.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation RedactChannelMessage for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/RedactChannelMessage
//
// Deprecated: Replaced by RedactChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) RedactChannelMessage(input *RedactChannelMessageInput) (*RedactChannelMessageOutput, error) {
	req, out := c.RedactChannelMessageRequest(input)
	return out, req.Send()
}

// RedactChannelMessageWithContext is the same as RedactChannelMessage with the addition of
// the ability to pass a context and additional request options.
//
// See RedactChannelMessage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by RedactChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) RedactChannelMessageWithContext(ctx aws.Context, input *RedactChannelMessageInput, opts ...request.Option) (*RedactChannelMessageOutput, error) {
	req, out := c.RedactChannelMessageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opRedactConversationMessage = "RedactConversationMessage"

// RedactConversationMessageRequest generates a "aws/request.Request" representing the
// client's request for the RedactConversationMessage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See RedactConversationMessage for more information on using the RedactConversationMessage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the RedactConversationMessageRequest method.
//	req, resp := client.RedactConversationMessageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/RedactConversationMessage
func (c *Chime) RedactConversationMessageRequest(input *RedactConversationMessageInput) (req *request.Request, output *RedactConversationMessageOutput) {
	op := &request.Operation{
		Name:       opRedactConversationMessage,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/conversations/{conversationId}/messages/{messageId}?operation=redact",
	}

	if input == nil {
		input = &RedactConversationMessageInput{}
	}

	output = &RedactConversationMessageOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// RedactConversationMessage API operation for Amazon Chime.
//
// Redacts the specified message from the specified Amazon Chime conversation.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation RedactConversationMessage for usage and error information.
//
// Returned Error Types:
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/RedactConversationMessage
func (c *Chime) RedactConversationMessage(input *RedactConversationMessageInput) (*RedactConversationMessageOutput, error) {
	req, out := c.RedactConversationMessageRequest(input)
	return out, req.Send()
}

// RedactConversationMessageWithContext is the same as RedactConversationMessage with the addition of
// the ability to pass a context and additional request options.
//
// See RedactConversationMessage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) RedactConversationMessageWithContext(ctx aws.Context, input *RedactConversationMessageInput, opts ...request.Option) (*RedactConversationMessageOutput, error) {
	req, out := c.RedactConversationMessageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opRedactRoomMessage = "RedactRoomMessage"

// RedactRoomMessageRequest generates a "aws/request.Request" representing the
// client's request for the RedactRoomMessage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See RedactRoomMessage for more information on using the RedactRoomMessage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the RedactRoomMessageRequest method.
//	req, resp := client.RedactRoomMessageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/RedactRoomMessage
func (c *Chime) RedactRoomMessageRequest(input *RedactRoomMessageInput) (req *request.Request, output *RedactRoomMessageOutput) {
	op := &request.Operation{
		Name:       opRedactRoomMessage,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/rooms/{roomId}/messages/{messageId}?operation=redact",
	}

	if input == nil {
		input = &RedactRoomMessageInput{}
	}

	output = &RedactRoomMessageOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// RedactRoomMessage API operation for Amazon Chime.
//
// Redacts the specified message from the specified Amazon Chime channel.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation RedactRoomMessage for usage and error information.
//
// Returned Error Types:
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/RedactRoomMessage
func (c *Chime) RedactRoomMessage(input *RedactRoomMessageInput) (*RedactRoomMessageOutput, error) {
	req, out := c.RedactRoomMessageRequest(input)
	return out, req.Send()
}

// RedactRoomMessageWithContext is the same as RedactRoomMessage with the addition of
// the ability to pass a context and additional request options.
//
// See RedactRoomMessage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) RedactRoomMessageWithContext(ctx aws.Context, input *RedactRoomMessageInput, opts ...request.Option) (*RedactRoomMessageOutput, error) {
	req, out := c.RedactRoomMessageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opRegenerateSecurityToken = "RegenerateSecurityToken"

// RegenerateSecurityTokenRequest generates a "aws/request.Request" representing the
// client's request for the RegenerateSecurityToken operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See RegenerateSecurityToken for more information on using the RegenerateSecurityToken
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the RegenerateSecurityTokenRequest method.
//	req, resp := client.RegenerateSecurityTokenRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/RegenerateSecurityToken
func (c *Chime) RegenerateSecurityTokenRequest(input *RegenerateSecurityTokenInput) (req *request.Request, output *RegenerateSecurityTokenOutput) {
	op := &request.Operation{
		Name:       opRegenerateSecurityToken,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/bots/{botId}?operation=regenerate-security-token",
	}

	if input == nil {
		input = &RegenerateSecurityTokenInput{}
	}

	output = &RegenerateSecurityTokenOutput{}
	req = c.newRequest(op, input, output)
	return
}

// RegenerateSecurityToken API operation for Amazon Chime.
//
// Regenerates the security token for a bot.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation RegenerateSecurityToken for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/RegenerateSecurityToken
func (c *Chime) RegenerateSecurityToken(input *RegenerateSecurityTokenInput) (*RegenerateSecurityTokenOutput, error) {
	req, out := c.RegenerateSecurityTokenRequest(input)
	return out, req.Send()
}

// RegenerateSecurityTokenWithContext is the same as RegenerateSecurityToken with the addition of
// the ability to pass a context and additional request options.
//
// See RegenerateSecurityToken for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) RegenerateSecurityTokenWithContext(ctx aws.Context, input *RegenerateSecurityTokenInput, opts ...request.Option) (*RegenerateSecurityTokenOutput, error) {
	req, out := c.RegenerateSecurityTokenRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opResetPersonalPIN = "ResetPersonalPIN"

// ResetPersonalPINRequest generates a "aws/request.Request" representing the
// client's request for the ResetPersonalPIN operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ResetPersonalPIN for more information on using the ResetPersonalPIN
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ResetPersonalPINRequest method.
//	req, resp := client.ResetPersonalPINRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ResetPersonalPIN
func (c *Chime) ResetPersonalPINRequest(input *ResetPersonalPINInput) (req *request.Request, output *ResetPersonalPINOutput) {
	op := &request.Operation{
		Name:       opResetPersonalPIN,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/users/{userId}?operation=reset-personal-pin",
	}

	if input == nil {
		input = &ResetPersonalPINInput{}
	}

	output = &ResetPersonalPINOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ResetPersonalPIN API operation for Amazon Chime.
//
// Resets the personal meeting PIN for the specified user on an Amazon Chime
// account. Returns the User object with the updated personal meeting PIN.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ResetPersonalPIN for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ResetPersonalPIN
func (c *Chime) ResetPersonalPIN(input *ResetPersonalPINInput) (*ResetPersonalPINOutput, error) {
	req, out := c.ResetPersonalPINRequest(input)
	return out, req.Send()
}

// ResetPersonalPINWithContext is the same as ResetPersonalPIN with the addition of
// the ability to pass a context and additional request options.
//
// See ResetPersonalPIN for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) ResetPersonalPINWithContext(ctx aws.Context, input *ResetPersonalPINInput, opts ...request.Option) (*ResetPersonalPINOutput, error) {
	req, out := c.ResetPersonalPINRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opRestorePhoneNumber = "RestorePhoneNumber"

// RestorePhoneNumberRequest generates a "aws/request.Request" representing the
// client's request for the RestorePhoneNumber operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See RestorePhoneNumber for more information on using the RestorePhoneNumber
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the RestorePhoneNumberRequest method.
//	req, resp := client.RestorePhoneNumberRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/RestorePhoneNumber
func (c *Chime) RestorePhoneNumberRequest(input *RestorePhoneNumberInput) (req *request.Request, output *RestorePhoneNumberOutput) {
	op := &request.Operation{
		Name:       opRestorePhoneNumber,
		HTTPMethod: "POST",
		HTTPPath:   "/phone-numbers/{phoneNumberId}?operation=restore",
	}

	if input == nil {
		input = &RestorePhoneNumberInput{}
	}

	output = &RestorePhoneNumberOutput{}
	req = c.newRequest(op, input, output)
	return
}

// RestorePhoneNumber API operation for Amazon Chime.
//
// Moves a phone number from the Deletion queue back into the phone number Inventory.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation RestorePhoneNumber for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/RestorePhoneNumber
func (c *Chime) RestorePhoneNumber(input *RestorePhoneNumberInput) (*RestorePhoneNumberOutput, error) {
	req, out := c.RestorePhoneNumberRequest(input)
	return out, req.Send()
}

// RestorePhoneNumberWithContext is the same as RestorePhoneNumber with the addition of
// the ability to pass a context and additional request options.
//
// See RestorePhoneNumber for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) RestorePhoneNumberWithContext(ctx aws.Context, input *RestorePhoneNumberInput, opts ...request.Option) (*RestorePhoneNumberOutput, error) {
	req, out := c.RestorePhoneNumberRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opSearchAvailablePhoneNumbers = "SearchAvailablePhoneNumbers"

// SearchAvailablePhoneNumbersRequest generates a "aws/request.Request" representing the
// client's request for the SearchAvailablePhoneNumbers operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See SearchAvailablePhoneNumbers for more information on using the SearchAvailablePhoneNumbers
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the SearchAvailablePhoneNumbersRequest method.
//	req, resp := client.SearchAvailablePhoneNumbersRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/SearchAvailablePhoneNumbers
func (c *Chime) SearchAvailablePhoneNumbersRequest(input *SearchAvailablePhoneNumbersInput) (req *request.Request, output *SearchAvailablePhoneNumbersOutput) {
	op := &request.Operation{
		Name:       opSearchAvailablePhoneNumbers,
		HTTPMethod: "GET",
		HTTPPath:   "/search?type=phone-numbers",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &SearchAvailablePhoneNumbersInput{}
	}

	output = &SearchAvailablePhoneNumbersOutput{}
	req = c.newRequest(op, input, output)
	return
}

// SearchAvailablePhoneNumbers API operation for Amazon Chime.
//
// Searches for phone numbers that can be ordered. For US numbers, provide at
// least one of the following search filters: AreaCode, City, State, or TollFreePrefix.
// If you provide City, you must also provide State. Numbers outside the US
// only support the PhoneNumberType filter, which you must use.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation SearchAvailablePhoneNumbers for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - AccessDeniedException
//     You don't have permissions to perform the requested operation.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/SearchAvailablePhoneNumbers
func (c *Chime) SearchAvailablePhoneNumbers(input *SearchAvailablePhoneNumbersInput) (*SearchAvailablePhoneNumbersOutput, error) {
	req, out := c.SearchAvailablePhoneNumbersRequest(input)
	return out, req.Send()
}

// SearchAvailablePhoneNumbersWithContext is the same as SearchAvailablePhoneNumbers with the addition of
// the ability to pass a context and additional request options.
//
// See SearchAvailablePhoneNumbers for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) SearchAvailablePhoneNumbersWithContext(ctx aws.Context, input *SearchAvailablePhoneNumbersInput, opts ...request.Option) (*SearchAvailablePhoneNumbersOutput, error) {
	req, out := c.SearchAvailablePhoneNumbersRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// SearchAvailablePhoneNumbersPages iterates over the pages of a SearchAvailablePhoneNumbers operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See SearchAvailablePhoneNumbers method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a SearchAvailablePhoneNumbers operation.
//	pageNum := 0
//	err := client.SearchAvailablePhoneNumbersPages(params,
//	    func(page *chime.SearchAvailablePhoneNumbersOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Chime) SearchAvailablePhoneNumbersPages(input *SearchAvailablePhoneNumbersInput, fn func(*SearchAvailablePhoneNumbersOutput, bool) bool) error {
	return c.SearchAvailablePhoneNumbersPagesWithContext(aws.BackgroundContext(), input, fn)
}

// SearchAvailablePhoneNumbersPagesWithContext same as SearchAvailablePhoneNumbersPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) SearchAvailablePhoneNumbersPagesWithContext(ctx aws.Context, input *SearchAvailablePhoneNumbersInput, fn func(*SearchAvailablePhoneNumbersOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *SearchAvailablePhoneNumbersInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.SearchAvailablePhoneNumbersRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*SearchAvailablePhoneNumbersOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opSendChannelMessage = "SendChannelMessage"

// SendChannelMessageRequest generates a "aws/request.Request" representing the
// client's request for the SendChannelMessage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See SendChannelMessage for more information on using the SendChannelMessage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the SendChannelMessageRequest method.
//	req, resp := client.SendChannelMessageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/SendChannelMessage
//
// Deprecated: Replaced by SendChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) SendChannelMessageRequest(input *SendChannelMessageInput) (req *request.Request, output *SendChannelMessageOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, SendChannelMessage, has been deprecated")
	}
	op := &request.Operation{
		Name:       opSendChannelMessage,
		HTTPMethod: "POST",
		HTTPPath:   "/channels/{channelArn}/messages",
	}

	if input == nil {
		input = &SendChannelMessageInput{}
	}

	output = &SendChannelMessageOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// SendChannelMessage API operation for Amazon Chime.
//
// Sends a message to a particular channel that the member is a part of.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// Also, STANDARD messages can contain 4KB of data and the 1KB of metadata.
// CONTROL messages can contain 30 bytes of data and no metadata.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, SendChannelMessage (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation SendChannelMessage for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/SendChannelMessage
//
// Deprecated: Replaced by SendChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) SendChannelMessage(input *SendChannelMessageInput) (*SendChannelMessageOutput, error) {
	req, out := c.SendChannelMessageRequest(input)
	return out, req.Send()
}

// SendChannelMessageWithContext is the same as SendChannelMessage with the addition of
// the ability to pass a context and additional request options.
//
// See SendChannelMessage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by SendChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) SendChannelMessageWithContext(ctx aws.Context, input *SendChannelMessageInput, opts ...request.Option) (*SendChannelMessageOutput, error) {
	req, out := c.SendChannelMessageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStartMeetingTranscription = "StartMeetingTranscription"

// StartMeetingTranscriptionRequest generates a "aws/request.Request" representing the
// client's request for the StartMeetingTranscription operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StartMeetingTranscription for more information on using the StartMeetingTranscription
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StartMeetingTranscriptionRequest method.
//	req, resp := client.StartMeetingTranscriptionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/StartMeetingTranscription
//
// Deprecated: Replaced by StartMeetingTranscription in the Amazon Chime SDK Meetings Namespace
func (c *Chime) StartMeetingTranscriptionRequest(input *StartMeetingTranscriptionInput) (req *request.Request, output *StartMeetingTranscriptionOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, StartMeetingTranscription, has been deprecated")
	}
	op := &request.Operation{
		Name:       opStartMeetingTranscription,
		HTTPMethod: "POST",
		HTTPPath:   "/meetings/{meetingId}/transcription?operation=start",
	}

	if input == nil {
		input = &StartMeetingTranscriptionInput{}
	}

	output = &StartMeetingTranscriptionOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StartMeetingTranscription API operation for Amazon Chime.
//
// Starts transcription for the specified meetingId. For more information, refer
// to Using Amazon Chime SDK live transcription (https://docs.aws.amazon.com/chime-sdk/latest/dg/meeting-transcription.html)
// in the Amazon Chime SDK Developer Guide.
//
// If you specify an invalid configuration, a TranscriptFailed event will be
// sent with the contents of the BadRequestException generated by Amazon Transcribe.
// For more information on each parameter and which combinations are valid,
// refer to the StartStreamTranscription (https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartStreamTranscription.html)
// API in the Amazon Transcribe Developer Guide.
//
// Amazon Chime SDK live transcription is powered by Amazon Transcribe. Use
// of Amazon Transcribe is subject to the AWS Service Terms (https://aws.amazon.com/service-terms/),
// including the terms specific to the AWS Machine Learning and Artificial Intelligence
// Services.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, StartMeetingTranscription (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StartMeetingTranscription.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation StartMeetingTranscription for usage and error information.
//
// Returned Error Types:
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - UnprocessableEntityException
//     The request was well-formed but was unable to be followed due to semantic
//     errors.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/StartMeetingTranscription
//
// Deprecated: Replaced by StartMeetingTranscription in the Amazon Chime SDK Meetings Namespace
func (c *Chime) StartMeetingTranscription(input *StartMeetingTranscriptionInput) (*StartMeetingTranscriptionOutput, error) {
	req, out := c.StartMeetingTranscriptionRequest(input)
	return out, req.Send()
}

// StartMeetingTranscriptionWithContext is the same as StartMeetingTranscription with the addition of
// the ability to pass a context and additional request options.
//
// See StartMeetingTranscription for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by StartMeetingTranscription in the Amazon Chime SDK Meetings Namespace
func (c *Chime) StartMeetingTranscriptionWithContext(ctx aws.Context, input *StartMeetingTranscriptionInput, opts ...request.Option) (*StartMeetingTranscriptionOutput, error) {
	req, out := c.StartMeetingTranscriptionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopMeetingTranscription = "StopMeetingTranscription"

// StopMeetingTranscriptionRequest generates a "aws/request.Request" representing the
// client's request for the StopMeetingTranscription operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopMeetingTranscription for more information on using the StopMeetingTranscription
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopMeetingTranscriptionRequest method.
//	req, resp := client.StopMeetingTranscriptionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/StopMeetingTranscription
//
// Deprecated: Replaced by StopMeetingTranscription in the Amazon Chime SDK Meetings Namespace
func (c *Chime) StopMeetingTranscriptionRequest(input *StopMeetingTranscriptionInput) (req *request.Request, output *StopMeetingTranscriptionOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, StopMeetingTranscription, has been deprecated")
	}
	op := &request.Operation{
		Name:       opStopMeetingTranscription,
		HTTPMethod: "POST",
		HTTPPath:   "/meetings/{meetingId}/transcription?operation=stop",
	}

	if input == nil {
		input = &StopMeetingTranscriptionInput{}
	}

	output = &StopMeetingTranscriptionOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StopMeetingTranscription API operation for Amazon Chime.
//
// Stops transcription for the specified meetingId.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, StopMeetingTranscription (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StopMeetingTranscription.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation StopMeetingTranscription for usage and error information.
//
// Returned Error Types:
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - UnprocessableEntityException
//     The request was well-formed but was unable to be followed due to semantic
//     errors.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/StopMeetingTranscription
//
// Deprecated: Replaced by StopMeetingTranscription in the Amazon Chime SDK Meetings Namespace
func (c *Chime) StopMeetingTranscription(input *StopMeetingTranscriptionInput) (*StopMeetingTranscriptionOutput, error) {
	req, out := c.StopMeetingTranscriptionRequest(input)
	return out, req.Send()
}

// StopMeetingTranscriptionWithContext is the same as StopMeetingTranscription with the addition of
// the ability to pass a context and additional request options.
//
// See StopMeetingTranscription for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by StopMeetingTranscription in the Amazon Chime SDK Meetings Namespace
func (c *Chime) StopMeetingTranscriptionWithContext(ctx aws.Context, input *StopMeetingTranscriptionInput, opts ...request.Option) (*StopMeetingTranscriptionOutput, error) {
	req, out := c.StopMeetingTranscriptionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opTagAttendee = "TagAttendee"

// TagAttendeeRequest generates a "aws/request.Request" representing the
// client's request for the TagAttendee operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See TagAttendee for more information on using the TagAttendee
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the TagAttendeeRequest method.
//	req, resp := client.TagAttendeeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/TagAttendee
//
// Deprecated: Attendee Tags are not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) TagAttendeeRequest(input *TagAttendeeInput) (req *request.Request, output *TagAttendeeOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, TagAttendee, has been deprecated")
	}
	op := &request.Operation{
		Name:       opTagAttendee,
		HTTPMethod: "POST",
		HTTPPath:   "/meetings/{meetingId}/attendees/{attendeeId}/tags?operation=add",
	}

	if input == nil {
		input = &TagAttendeeInput{}
	}

	output = &TagAttendeeOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// TagAttendee API operation for Amazon Chime.
//
// Applies the specified tags to the specified Amazon Chime attendee.
//
// TagAttendee is not supported in the Amazon Chime SDK Meetings Namespace.
// Update your application to remove calls to this API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation TagAttendee for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/TagAttendee
//
// Deprecated: Attendee Tags are not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) TagAttendee(input *TagAttendeeInput) (*TagAttendeeOutput, error) {
	req, out := c.TagAttendeeRequest(input)
	return out, req.Send()
}

// TagAttendeeWithContext is the same as TagAttendee with the addition of
// the ability to pass a context and additional request options.
//
// See TagAttendee for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Attendee Tags are not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) TagAttendeeWithContext(ctx aws.Context, input *TagAttendeeInput, opts ...request.Option) (*TagAttendeeOutput, error) {
	req, out := c.TagAttendeeRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opTagMeeting = "TagMeeting"

// TagMeetingRequest generates a "aws/request.Request" representing the
// client's request for the TagMeeting operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See TagMeeting for more information on using the TagMeeting
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the TagMeetingRequest method.
//	req, resp := client.TagMeetingRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/TagMeeting
//
// Deprecated: Use TagResource in the Amazon Chime SDK Meetings Namespace.
func (c *Chime) TagMeetingRequest(input *TagMeetingInput) (req *request.Request, output *TagMeetingOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, TagMeeting, has been deprecated")
	}
	op := &request.Operation{
		Name:       opTagMeeting,
		HTTPMethod: "POST",
		HTTPPath:   "/meetings/{meetingId}/tags?operation=add",
	}

	if input == nil {
		input = &TagMeetingInput{}
	}

	output = &TagMeetingOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// TagMeeting API operation for Amazon Chime.
//
// Applies the specified tags to the specified Amazon Chime SDK meeting.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, TagResource (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_TagResource.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation TagMeeting for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/TagMeeting
//
// Deprecated: Use TagResource in the Amazon Chime SDK Meetings Namespace.
func (c *Chime) TagMeeting(input *TagMeetingInput) (*TagMeetingOutput, error) {
	req, out := c.TagMeetingRequest(input)
	return out, req.Send()
}

// TagMeetingWithContext is the same as TagMeeting with the addition of
// the ability to pass a context and additional request options.
//
// See TagMeeting for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Use TagResource in the Amazon Chime SDK Meetings Namespace.
func (c *Chime) TagMeetingWithContext(ctx aws.Context, input *TagMeetingInput, opts ...request.Option) (*TagMeetingOutput, error) {
	req, out := c.TagMeetingRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opTagResource = "TagResource"

// TagResourceRequest generates a "aws/request.Request" representing the
// client's request for the TagResource operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See TagResource for more information on using the TagResource
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the TagResourceRequest method.
//	req, resp := client.TagResourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/TagResource
//
// Deprecated: Replaced by TagResource in the Amazon Chime SDK Voice, Amazon Chime SDK Meetings, Amazon Chime SDK Identity, Amazon Chime SDK Messaging, and Amazon Chime SDK Media Pipelines Namespaces
func (c *Chime) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, TagResource, has been deprecated")
	}
	op := &request.Operation{
		Name:       opTagResource,
		HTTPMethod: "POST",
		HTTPPath:   "/tags?operation=tag-resource",
	}

	if input == nil {
		input = &TagResourceInput{}
	}

	output = &TagResourceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// TagResource API operation for Amazon Chime.
//
// Applies the specified tags to the specified Amazon Chime SDK meeting resource.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, TagResource (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_TagResource.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation TagResource for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/TagResource
//
// Deprecated: Replaced by TagResource in the Amazon Chime SDK Voice, Amazon Chime SDK Meetings, Amazon Chime SDK Identity, Amazon Chime SDK Messaging, and Amazon Chime SDK Media Pipelines Namespaces
func (c *Chime) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
	req, out := c.TagResourceRequest(input)
	return out, req.Send()
}

// TagResourceWithContext is the same as TagResource with the addition of
// the ability to pass a context and additional request options.
//
// See TagResource for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by TagResource in the Amazon Chime SDK Voice, Amazon Chime SDK Meetings, Amazon Chime SDK Identity, Amazon Chime SDK Messaging, and Amazon Chime SDK Media Pipelines Namespaces
func (c *Chime) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
	req, out := c.TagResourceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUntagAttendee = "UntagAttendee"

// UntagAttendeeRequest generates a "aws/request.Request" representing the
// client's request for the UntagAttendee operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UntagAttendee for more information on using the UntagAttendee
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UntagAttendeeRequest method.
//	req, resp := client.UntagAttendeeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UntagAttendee
//
// Deprecated: Attendee Tags are not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) UntagAttendeeRequest(input *UntagAttendeeInput) (req *request.Request, output *UntagAttendeeOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UntagAttendee, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUntagAttendee,
		HTTPMethod: "POST",
		HTTPPath:   "/meetings/{meetingId}/attendees/{attendeeId}/tags?operation=delete",
	}

	if input == nil {
		input = &UntagAttendeeInput{}
	}

	output = &UntagAttendeeOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UntagAttendee API operation for Amazon Chime.
//
// Untags the specified tags from the specified Amazon Chime SDK attendee.
//
// UntagAttendee is not supported in the Amazon Chime SDK Meetings Namespace.
// Update your application to remove calls to this API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UntagAttendee for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UntagAttendee
//
// Deprecated: Attendee Tags are not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) UntagAttendee(input *UntagAttendeeInput) (*UntagAttendeeOutput, error) {
	req, out := c.UntagAttendeeRequest(input)
	return out, req.Send()
}

// UntagAttendeeWithContext is the same as UntagAttendee with the addition of
// the ability to pass a context and additional request options.
//
// See UntagAttendee for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Attendee Tags are not supported in the Amazon Chime SDK Meetings Namespace. Update your application to remove calls to this API.
func (c *Chime) UntagAttendeeWithContext(ctx aws.Context, input *UntagAttendeeInput, opts ...request.Option) (*UntagAttendeeOutput, error) {
	req, out := c.UntagAttendeeRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUntagMeeting = "UntagMeeting"

// UntagMeetingRequest generates a "aws/request.Request" representing the
// client's request for the UntagMeeting operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UntagMeeting for more information on using the UntagMeeting
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UntagMeetingRequest method.
//	req, resp := client.UntagMeetingRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UntagMeeting
//
// Deprecated: Use UntagResource in the Amazon Chime SDK Meetings Namespace.
func (c *Chime) UntagMeetingRequest(input *UntagMeetingInput) (req *request.Request, output *UntagMeetingOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UntagMeeting, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUntagMeeting,
		HTTPMethod: "POST",
		HTTPPath:   "/meetings/{meetingId}/tags?operation=delete",
	}

	if input == nil {
		input = &UntagMeetingInput{}
	}

	output = &UntagMeetingOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UntagMeeting API operation for Amazon Chime.
//
// Untags the specified tags from the specified Amazon Chime SDK meeting.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, UntagResource (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_UntagResource.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UntagMeeting for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UntagMeeting
//
// Deprecated: Use UntagResource in the Amazon Chime SDK Meetings Namespace.
func (c *Chime) UntagMeeting(input *UntagMeetingInput) (*UntagMeetingOutput, error) {
	req, out := c.UntagMeetingRequest(input)
	return out, req.Send()
}

// UntagMeetingWithContext is the same as UntagMeeting with the addition of
// the ability to pass a context and additional request options.
//
// See UntagMeeting for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Use UntagResource in the Amazon Chime SDK Meetings Namespace.
func (c *Chime) UntagMeetingWithContext(ctx aws.Context, input *UntagMeetingInput, opts ...request.Option) (*UntagMeetingOutput, error) {
	req, out := c.UntagMeetingRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUntagResource = "UntagResource"

// UntagResourceRequest generates a "aws/request.Request" representing the
// client's request for the UntagResource operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UntagResource for more information on using the UntagResource
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UntagResourceRequest method.
//	req, resp := client.UntagResourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UntagResource
//
// Deprecated: Replaced by UntagResource in the Amazon Chime SDK Voice, Amazon Chime SDK Meetings, Amazon Chime SDK Identity, Amazon Chime SDK Messaging, and Amazon Chime SDK Media Pipelines Namespaces
func (c *Chime) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UntagResource, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUntagResource,
		HTTPMethod: "POST",
		HTTPPath:   "/tags?operation=untag-resource",
	}

	if input == nil {
		input = &UntagResourceInput{}
	}

	output = &UntagResourceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UntagResource API operation for Amazon Chime.
//
// Untags the specified tags from the specified Amazon Chime SDK meeting resource.
//
// Applies the specified tags to the specified Amazon Chime SDK meeting resource.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, UntagResource (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_UntagResource.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UntagResource for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UntagResource
//
// Deprecated: Replaced by UntagResource in the Amazon Chime SDK Voice, Amazon Chime SDK Meetings, Amazon Chime SDK Identity, Amazon Chime SDK Messaging, and Amazon Chime SDK Media Pipelines Namespaces
func (c *Chime) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
	req, out := c.UntagResourceRequest(input)
	return out, req.Send()
}

// UntagResourceWithContext is the same as UntagResource with the addition of
// the ability to pass a context and additional request options.
//
// See UntagResource for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by UntagResource in the Amazon Chime SDK Voice, Amazon Chime SDK Meetings, Amazon Chime SDK Identity, Amazon Chime SDK Messaging, and Amazon Chime SDK Media Pipelines Namespaces
func (c *Chime) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
	req, out := c.UntagResourceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateAccount = "UpdateAccount"

// UpdateAccountRequest generates a "aws/request.Request" representing the
// client's request for the UpdateAccount operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateAccount for more information on using the UpdateAccount
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateAccountRequest method.
//	req, resp := client.UpdateAccountRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateAccount
func (c *Chime) UpdateAccountRequest(input *UpdateAccountInput) (req *request.Request, output *UpdateAccountOutput) {
	op := &request.Operation{
		Name:       opUpdateAccount,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}",
	}

	if input == nil {
		input = &UpdateAccountInput{}
	}

	output = &UpdateAccountOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateAccount API operation for Amazon Chime.
//
// Updates account details for the specified Amazon Chime account. Currently,
// only account name and default license updates are supported for this action.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateAccount for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateAccount
func (c *Chime) UpdateAccount(input *UpdateAccountInput) (*UpdateAccountOutput, error) {
	req, out := c.UpdateAccountRequest(input)
	return out, req.Send()
}

// UpdateAccountWithContext is the same as UpdateAccount with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateAccount for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) UpdateAccountWithContext(ctx aws.Context, input *UpdateAccountInput, opts ...request.Option) (*UpdateAccountOutput, error) {
	req, out := c.UpdateAccountRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateAccountSettings = "UpdateAccountSettings"

// UpdateAccountSettingsRequest generates a "aws/request.Request" representing the
// client's request for the UpdateAccountSettings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateAccountSettings for more information on using the UpdateAccountSettings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateAccountSettingsRequest method.
//	req, resp := client.UpdateAccountSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateAccountSettings
func (c *Chime) UpdateAccountSettingsRequest(input *UpdateAccountSettingsInput) (req *request.Request, output *UpdateAccountSettingsOutput) {
	op := &request.Operation{
		Name:       opUpdateAccountSettings,
		HTTPMethod: "PUT",
		HTTPPath:   "/accounts/{accountId}/settings",
	}

	if input == nil {
		input = &UpdateAccountSettingsInput{}
	}

	output = &UpdateAccountSettingsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UpdateAccountSettings API operation for Amazon Chime.
//
// Updates the settings for the specified Amazon Chime account. You can update
// settings for remote control of shared screens, or for the dial-out option.
// For more information about these settings, see Use the Policies Page (https://docs.aws.amazon.com/chime/latest/ag/policies.html)
// in the Amazon Chime Administration Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateAccountSettings for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateAccountSettings
func (c *Chime) UpdateAccountSettings(input *UpdateAccountSettingsInput) (*UpdateAccountSettingsOutput, error) {
	req, out := c.UpdateAccountSettingsRequest(input)
	return out, req.Send()
}

// UpdateAccountSettingsWithContext is the same as UpdateAccountSettings with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateAccountSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) UpdateAccountSettingsWithContext(ctx aws.Context, input *UpdateAccountSettingsInput, opts ...request.Option) (*UpdateAccountSettingsOutput, error) {
	req, out := c.UpdateAccountSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateAppInstance = "UpdateAppInstance"

// UpdateAppInstanceRequest generates a "aws/request.Request" representing the
// client's request for the UpdateAppInstance operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateAppInstance for more information on using the UpdateAppInstance
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateAppInstanceRequest method.
//	req, resp := client.UpdateAppInstanceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateAppInstance
//
// Deprecated: Replaced by UpdateAppInstance in the Amazon Chime SDK Identity Namespace
func (c *Chime) UpdateAppInstanceRequest(input *UpdateAppInstanceInput) (req *request.Request, output *UpdateAppInstanceOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UpdateAppInstance, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUpdateAppInstance,
		HTTPMethod: "PUT",
		HTTPPath:   "/app-instances/{appInstanceArn}",
	}

	if input == nil {
		input = &UpdateAppInstanceInput{}
	}

	output = &UpdateAppInstanceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// UpdateAppInstance API operation for Amazon Chime.
//
// Updates AppInstance metadata.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, UpdateAppInstance (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_UpdateAppInstance.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateAppInstance for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateAppInstance
//
// Deprecated: Replaced by UpdateAppInstance in the Amazon Chime SDK Identity Namespace
func (c *Chime) UpdateAppInstance(input *UpdateAppInstanceInput) (*UpdateAppInstanceOutput, error) {
	req, out := c.UpdateAppInstanceRequest(input)
	return out, req.Send()
}

// UpdateAppInstanceWithContext is the same as UpdateAppInstance with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateAppInstance for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by UpdateAppInstance in the Amazon Chime SDK Identity Namespace
func (c *Chime) UpdateAppInstanceWithContext(ctx aws.Context, input *UpdateAppInstanceInput, opts ...request.Option) (*UpdateAppInstanceOutput, error) {
	req, out := c.UpdateAppInstanceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateAppInstanceUser = "UpdateAppInstanceUser"

// UpdateAppInstanceUserRequest generates a "aws/request.Request" representing the
// client's request for the UpdateAppInstanceUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateAppInstanceUser for more information on using the UpdateAppInstanceUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateAppInstanceUserRequest method.
//	req, resp := client.UpdateAppInstanceUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateAppInstanceUser
//
// Deprecated: Replaced by UpdateAppInstanceUser in the Amazon Chime SDK Identity Namespace
func (c *Chime) UpdateAppInstanceUserRequest(input *UpdateAppInstanceUserInput) (req *request.Request, output *UpdateAppInstanceUserOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UpdateAppInstanceUser, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUpdateAppInstanceUser,
		HTTPMethod: "PUT",
		HTTPPath:   "/app-instance-users/{appInstanceUserArn}",
	}

	if input == nil {
		input = &UpdateAppInstanceUserInput{}
	}

	output = &UpdateAppInstanceUserOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("identity-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// UpdateAppInstanceUser API operation for Amazon Chime.
//
// Updates the details of an AppInstanceUser. You can update names and metadata.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, UpdateAppInstanceUser (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_UpdateAppInstanceUser.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateAppInstanceUser for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateAppInstanceUser
//
// Deprecated: Replaced by UpdateAppInstanceUser in the Amazon Chime SDK Identity Namespace
func (c *Chime) UpdateAppInstanceUser(input *UpdateAppInstanceUserInput) (*UpdateAppInstanceUserOutput, error) {
	req, out := c.UpdateAppInstanceUserRequest(input)
	return out, req.Send()
}

// UpdateAppInstanceUserWithContext is the same as UpdateAppInstanceUser with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateAppInstanceUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by UpdateAppInstanceUser in the Amazon Chime SDK Identity Namespace
func (c *Chime) UpdateAppInstanceUserWithContext(ctx aws.Context, input *UpdateAppInstanceUserInput, opts ...request.Option) (*UpdateAppInstanceUserOutput, error) {
	req, out := c.UpdateAppInstanceUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateBot = "UpdateBot"

// UpdateBotRequest generates a "aws/request.Request" representing the
// client's request for the UpdateBot operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateBot for more information on using the UpdateBot
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateBotRequest method.
//	req, resp := client.UpdateBotRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateBot
func (c *Chime) UpdateBotRequest(input *UpdateBotInput) (req *request.Request, output *UpdateBotOutput) {
	op := &request.Operation{
		Name:       opUpdateBot,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/bots/{botId}",
	}

	if input == nil {
		input = &UpdateBotInput{}
	}

	output = &UpdateBotOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateBot API operation for Amazon Chime.
//
// Updates the status of the specified bot, such as starting or stopping the
// bot from running in your Amazon Chime Enterprise account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateBot for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateBot
func (c *Chime) UpdateBot(input *UpdateBotInput) (*UpdateBotOutput, error) {
	req, out := c.UpdateBotRequest(input)
	return out, req.Send()
}

// UpdateBotWithContext is the same as UpdateBot with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateBot for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) UpdateBotWithContext(ctx aws.Context, input *UpdateBotInput, opts ...request.Option) (*UpdateBotOutput, error) {
	req, out := c.UpdateBotRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateChannel = "UpdateChannel"

// UpdateChannelRequest generates a "aws/request.Request" representing the
// client's request for the UpdateChannel operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateChannel for more information on using the UpdateChannel
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateChannelRequest method.
//	req, resp := client.UpdateChannelRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateChannel
//
// Deprecated: Replaced by UpdateChannel in the Amazon Chime SDK Messaging Namespace
func (c *Chime) UpdateChannelRequest(input *UpdateChannelInput) (req *request.Request, output *UpdateChannelOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UpdateChannel, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUpdateChannel,
		HTTPMethod: "PUT",
		HTTPPath:   "/channels/{channelArn}",
	}

	if input == nil {
		input = &UpdateChannelInput{}
	}

	output = &UpdateChannelOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// UpdateChannel API operation for Amazon Chime.
//
// Update a channel's attributes.
//
// Restriction: You can't change a channel's privacy.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, UpdateChannel (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_UpdateChannel.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateChannel for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateChannel
//
// Deprecated: Replaced by UpdateChannel in the Amazon Chime SDK Messaging Namespace
func (c *Chime) UpdateChannel(input *UpdateChannelInput) (*UpdateChannelOutput, error) {
	req, out := c.UpdateChannelRequest(input)
	return out, req.Send()
}

// UpdateChannelWithContext is the same as UpdateChannel with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateChannel for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by UpdateChannel in the Amazon Chime SDK Messaging Namespace
func (c *Chime) UpdateChannelWithContext(ctx aws.Context, input *UpdateChannelInput, opts ...request.Option) (*UpdateChannelOutput, error) {
	req, out := c.UpdateChannelRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateChannelMessage = "UpdateChannelMessage"

// UpdateChannelMessageRequest generates a "aws/request.Request" representing the
// client's request for the UpdateChannelMessage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateChannelMessage for more information on using the UpdateChannelMessage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateChannelMessageRequest method.
//	req, resp := client.UpdateChannelMessageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateChannelMessage
//
// Deprecated: Replaced by UpdateChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) UpdateChannelMessageRequest(input *UpdateChannelMessageInput) (req *request.Request, output *UpdateChannelMessageOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UpdateChannelMessage, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUpdateChannelMessage,
		HTTPMethod: "PUT",
		HTTPPath:   "/channels/{channelArn}/messages/{messageId}",
	}

	if input == nil {
		input = &UpdateChannelMessageInput{}
	}

	output = &UpdateChannelMessageOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// UpdateChannelMessage API operation for Amazon Chime.
//
// Updates the content of a message.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, UpdateChannelMessage (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_UpdateChannelMessage.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateChannelMessage for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateChannelMessage
//
// Deprecated: Replaced by UpdateChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) UpdateChannelMessage(input *UpdateChannelMessageInput) (*UpdateChannelMessageOutput, error) {
	req, out := c.UpdateChannelMessageRequest(input)
	return out, req.Send()
}

// UpdateChannelMessageWithContext is the same as UpdateChannelMessage with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateChannelMessage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by UpdateChannelMessage in the Amazon Chime SDK Messaging Namespace
func (c *Chime) UpdateChannelMessageWithContext(ctx aws.Context, input *UpdateChannelMessageInput, opts ...request.Option) (*UpdateChannelMessageOutput, error) {
	req, out := c.UpdateChannelMessageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateChannelReadMarker = "UpdateChannelReadMarker"

// UpdateChannelReadMarkerRequest generates a "aws/request.Request" representing the
// client's request for the UpdateChannelReadMarker operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateChannelReadMarker for more information on using the UpdateChannelReadMarker
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateChannelReadMarkerRequest method.
//	req, resp := client.UpdateChannelReadMarkerRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateChannelReadMarker
//
// Deprecated: Replaced by UpdateChannelReadMarker in the Amazon Chime SDK Messaging Namespace
func (c *Chime) UpdateChannelReadMarkerRequest(input *UpdateChannelReadMarkerInput) (req *request.Request, output *UpdateChannelReadMarkerOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UpdateChannelReadMarker, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUpdateChannelReadMarker,
		HTTPMethod: "PUT",
		HTTPPath:   "/channels/{channelArn}/readMarker",
	}

	if input == nil {
		input = &UpdateChannelReadMarkerInput{}
	}

	output = &UpdateChannelReadMarkerOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("messaging-", nil))
	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
	return
}

// UpdateChannelReadMarker API operation for Amazon Chime.
//
// The details of the time when a user last read messages in a channel.
//
// The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn
// of the user that makes the API call as the value in the header.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, UpdateChannelReadMarker (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_UpdateChannelReadMarker.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateChannelReadMarker for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateChannelReadMarker
//
// Deprecated: Replaced by UpdateChannelReadMarker in the Amazon Chime SDK Messaging Namespace
func (c *Chime) UpdateChannelReadMarker(input *UpdateChannelReadMarkerInput) (*UpdateChannelReadMarkerOutput, error) {
	req, out := c.UpdateChannelReadMarkerRequest(input)
	return out, req.Send()
}

// UpdateChannelReadMarkerWithContext is the same as UpdateChannelReadMarker with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateChannelReadMarker for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by UpdateChannelReadMarker in the Amazon Chime SDK Messaging Namespace
func (c *Chime) UpdateChannelReadMarkerWithContext(ctx aws.Context, input *UpdateChannelReadMarkerInput, opts ...request.Option) (*UpdateChannelReadMarkerOutput, error) {
	req, out := c.UpdateChannelReadMarkerRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateGlobalSettings = "UpdateGlobalSettings"

// UpdateGlobalSettingsRequest generates a "aws/request.Request" representing the
// client's request for the UpdateGlobalSettings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateGlobalSettings for more information on using the UpdateGlobalSettings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateGlobalSettingsRequest method.
//	req, resp := client.UpdateGlobalSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateGlobalSettings
func (c *Chime) UpdateGlobalSettingsRequest(input *UpdateGlobalSettingsInput) (req *request.Request, output *UpdateGlobalSettingsOutput) {
	op := &request.Operation{
		Name:       opUpdateGlobalSettings,
		HTTPMethod: "PUT",
		HTTPPath:   "/settings",
	}

	if input == nil {
		input = &UpdateGlobalSettingsInput{}
	}

	output = &UpdateGlobalSettingsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UpdateGlobalSettings API operation for Amazon Chime.
//
// Updates global settings for the administrator's AWS account, such as Amazon
// Chime Business Calling and Amazon Chime Voice Connector settings.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateGlobalSettings for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateGlobalSettings
func (c *Chime) UpdateGlobalSettings(input *UpdateGlobalSettingsInput) (*UpdateGlobalSettingsOutput, error) {
	req, out := c.UpdateGlobalSettingsRequest(input)
	return out, req.Send()
}

// UpdateGlobalSettingsWithContext is the same as UpdateGlobalSettings with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateGlobalSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) UpdateGlobalSettingsWithContext(ctx aws.Context, input *UpdateGlobalSettingsInput, opts ...request.Option) (*UpdateGlobalSettingsOutput, error) {
	req, out := c.UpdateGlobalSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdatePhoneNumber = "UpdatePhoneNumber"

// UpdatePhoneNumberRequest generates a "aws/request.Request" representing the
// client's request for the UpdatePhoneNumber operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdatePhoneNumber for more information on using the UpdatePhoneNumber
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdatePhoneNumberRequest method.
//	req, resp := client.UpdatePhoneNumberRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdatePhoneNumber
func (c *Chime) UpdatePhoneNumberRequest(input *UpdatePhoneNumberInput) (req *request.Request, output *UpdatePhoneNumberOutput) {
	op := &request.Operation{
		Name:       opUpdatePhoneNumber,
		HTTPMethod: "POST",
		HTTPPath:   "/phone-numbers/{phoneNumberId}",
	}

	if input == nil {
		input = &UpdatePhoneNumberInput{}
	}

	output = &UpdatePhoneNumberOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdatePhoneNumber API operation for Amazon Chime.
//
// Updates phone number details, such as product type or calling name, for the
// specified phone number ID. You can update one phone number detail at a time.
// For example, you can update either the product type or the calling name in
// one action.
//
// For toll-free numbers, you cannot use the Amazon Chime Business Calling product
// type. For numbers outside the U.S., you must use the Amazon Chime SIP Media
// Application Dial-In product type.
//
// Updates to outbound calling names can take 72 hours to complete. Pending
// updates to outbound calling names must be complete before you can request
// another update.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdatePhoneNumber for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdatePhoneNumber
func (c *Chime) UpdatePhoneNumber(input *UpdatePhoneNumberInput) (*UpdatePhoneNumberOutput, error) {
	req, out := c.UpdatePhoneNumberRequest(input)
	return out, req.Send()
}

// UpdatePhoneNumberWithContext is the same as UpdatePhoneNumber with the addition of
// the ability to pass a context and additional request options.
//
// See UpdatePhoneNumber for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) UpdatePhoneNumberWithContext(ctx aws.Context, input *UpdatePhoneNumberInput, opts ...request.Option) (*UpdatePhoneNumberOutput, error) {
	req, out := c.UpdatePhoneNumberRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdatePhoneNumberSettings = "UpdatePhoneNumberSettings"

// UpdatePhoneNumberSettingsRequest generates a "aws/request.Request" representing the
// client's request for the UpdatePhoneNumberSettings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdatePhoneNumberSettings for more information on using the UpdatePhoneNumberSettings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdatePhoneNumberSettingsRequest method.
//	req, resp := client.UpdatePhoneNumberSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdatePhoneNumberSettings
func (c *Chime) UpdatePhoneNumberSettingsRequest(input *UpdatePhoneNumberSettingsInput) (req *request.Request, output *UpdatePhoneNumberSettingsOutput) {
	op := &request.Operation{
		Name:       opUpdatePhoneNumberSettings,
		HTTPMethod: "PUT",
		HTTPPath:   "/settings/phone-number",
	}

	if input == nil {
		input = &UpdatePhoneNumberSettingsInput{}
	}

	output = &UpdatePhoneNumberSettingsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UpdatePhoneNumberSettings API operation for Amazon Chime.
//
// Updates the phone number settings for the administrator's AWS account, such
// as the default outbound calling name. You can update the default outbound
// calling name once every seven days. Outbound calling names can take up to
// 72 hours to update.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdatePhoneNumberSettings for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdatePhoneNumberSettings
func (c *Chime) UpdatePhoneNumberSettings(input *UpdatePhoneNumberSettingsInput) (*UpdatePhoneNumberSettingsOutput, error) {
	req, out := c.UpdatePhoneNumberSettingsRequest(input)
	return out, req.Send()
}

// UpdatePhoneNumberSettingsWithContext is the same as UpdatePhoneNumberSettings with the addition of
// the ability to pass a context and additional request options.
//
// See UpdatePhoneNumberSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) UpdatePhoneNumberSettingsWithContext(ctx aws.Context, input *UpdatePhoneNumberSettingsInput, opts ...request.Option) (*UpdatePhoneNumberSettingsOutput, error) {
	req, out := c.UpdatePhoneNumberSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateProxySession = "UpdateProxySession"

// UpdateProxySessionRequest generates a "aws/request.Request" representing the
// client's request for the UpdateProxySession operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateProxySession for more information on using the UpdateProxySession
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateProxySessionRequest method.
//	req, resp := client.UpdateProxySessionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateProxySession
//
// Deprecated: Replaced by UpdateProxySession in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateProxySessionRequest(input *UpdateProxySessionInput) (req *request.Request, output *UpdateProxySessionOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UpdateProxySession, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUpdateProxySession,
		HTTPMethod: "POST",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}/proxy-sessions/{proxySessionId}",
	}

	if input == nil {
		input = &UpdateProxySessionInput{}
	}

	output = &UpdateProxySessionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateProxySession API operation for Amazon Chime.
//
// Updates the specified proxy session details, such as voice or SMS capabilities.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, UpdateProxySession (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateProxySession.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateProxySession for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateProxySession
//
// Deprecated: Replaced by UpdateProxySession in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateProxySession(input *UpdateProxySessionInput) (*UpdateProxySessionOutput, error) {
	req, out := c.UpdateProxySessionRequest(input)
	return out, req.Send()
}

// UpdateProxySessionWithContext is the same as UpdateProxySession with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateProxySession for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by UpdateProxySession in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateProxySessionWithContext(ctx aws.Context, input *UpdateProxySessionInput, opts ...request.Option) (*UpdateProxySessionOutput, error) {
	req, out := c.UpdateProxySessionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateRoom = "UpdateRoom"

// UpdateRoomRequest generates a "aws/request.Request" representing the
// client's request for the UpdateRoom operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateRoom for more information on using the UpdateRoom
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateRoomRequest method.
//	req, resp := client.UpdateRoomRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateRoom
func (c *Chime) UpdateRoomRequest(input *UpdateRoomInput) (req *request.Request, output *UpdateRoomOutput) {
	op := &request.Operation{
		Name:       opUpdateRoom,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/rooms/{roomId}",
	}

	if input == nil {
		input = &UpdateRoomInput{}
	}

	output = &UpdateRoomOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateRoom API operation for Amazon Chime.
//
// Updates room details, such as the room name, for a room in an Amazon Chime
// Enterprise account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateRoom for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateRoom
func (c *Chime) UpdateRoom(input *UpdateRoomInput) (*UpdateRoomOutput, error) {
	req, out := c.UpdateRoomRequest(input)
	return out, req.Send()
}

// UpdateRoomWithContext is the same as UpdateRoom with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateRoom for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) UpdateRoomWithContext(ctx aws.Context, input *UpdateRoomInput, opts ...request.Option) (*UpdateRoomOutput, error) {
	req, out := c.UpdateRoomRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateRoomMembership = "UpdateRoomMembership"

// UpdateRoomMembershipRequest generates a "aws/request.Request" representing the
// client's request for the UpdateRoomMembership operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateRoomMembership for more information on using the UpdateRoomMembership
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateRoomMembershipRequest method.
//	req, resp := client.UpdateRoomMembershipRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateRoomMembership
func (c *Chime) UpdateRoomMembershipRequest(input *UpdateRoomMembershipInput) (req *request.Request, output *UpdateRoomMembershipOutput) {
	op := &request.Operation{
		Name:       opUpdateRoomMembership,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/rooms/{roomId}/memberships/{memberId}",
	}

	if input == nil {
		input = &UpdateRoomMembershipInput{}
	}

	output = &UpdateRoomMembershipOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateRoomMembership API operation for Amazon Chime.
//
// Updates room membership details, such as the member role, for a room in an
// Amazon Chime Enterprise account. The member role designates whether the member
// is a chat room administrator or a general chat room member. The member role
// can be updated only for user IDs.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateRoomMembership for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateRoomMembership
func (c *Chime) UpdateRoomMembership(input *UpdateRoomMembershipInput) (*UpdateRoomMembershipOutput, error) {
	req, out := c.UpdateRoomMembershipRequest(input)
	return out, req.Send()
}

// UpdateRoomMembershipWithContext is the same as UpdateRoomMembership with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateRoomMembership for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) UpdateRoomMembershipWithContext(ctx aws.Context, input *UpdateRoomMembershipInput, opts ...request.Option) (*UpdateRoomMembershipOutput, error) {
	req, out := c.UpdateRoomMembershipRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateSipMediaApplication = "UpdateSipMediaApplication"

// UpdateSipMediaApplicationRequest generates a "aws/request.Request" representing the
// client's request for the UpdateSipMediaApplication operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateSipMediaApplication for more information on using the UpdateSipMediaApplication
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateSipMediaApplicationRequest method.
//	req, resp := client.UpdateSipMediaApplicationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateSipMediaApplication
//
// Deprecated: Replaced by UpdateSipMediaApplication in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateSipMediaApplicationRequest(input *UpdateSipMediaApplicationInput) (req *request.Request, output *UpdateSipMediaApplicationOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UpdateSipMediaApplication, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUpdateSipMediaApplication,
		HTTPMethod: "PUT",
		HTTPPath:   "/sip-media-applications/{sipMediaApplicationId}",
	}

	if input == nil {
		input = &UpdateSipMediaApplicationInput{}
	}

	output = &UpdateSipMediaApplicationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateSipMediaApplication API operation for Amazon Chime.
//
// Updates the details of the specified SIP media application.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, UpdateSipMediaApplication (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateSipMediaApplication.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateSipMediaApplication for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateSipMediaApplication
//
// Deprecated: Replaced by UpdateSipMediaApplication in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateSipMediaApplication(input *UpdateSipMediaApplicationInput) (*UpdateSipMediaApplicationOutput, error) {
	req, out := c.UpdateSipMediaApplicationRequest(input)
	return out, req.Send()
}

// UpdateSipMediaApplicationWithContext is the same as UpdateSipMediaApplication with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateSipMediaApplication for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by UpdateSipMediaApplication in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateSipMediaApplicationWithContext(ctx aws.Context, input *UpdateSipMediaApplicationInput, opts ...request.Option) (*UpdateSipMediaApplicationOutput, error) {
	req, out := c.UpdateSipMediaApplicationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateSipMediaApplicationCall = "UpdateSipMediaApplicationCall"

// UpdateSipMediaApplicationCallRequest generates a "aws/request.Request" representing the
// client's request for the UpdateSipMediaApplicationCall operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateSipMediaApplicationCall for more information on using the UpdateSipMediaApplicationCall
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateSipMediaApplicationCallRequest method.
//	req, resp := client.UpdateSipMediaApplicationCallRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateSipMediaApplicationCall
//
// Deprecated: Replaced by UpdateSipMediaApplicationCall in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateSipMediaApplicationCallRequest(input *UpdateSipMediaApplicationCallInput) (req *request.Request, output *UpdateSipMediaApplicationCallOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UpdateSipMediaApplicationCall, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUpdateSipMediaApplicationCall,
		HTTPMethod: "POST",
		HTTPPath:   "/sip-media-applications/{sipMediaApplicationId}/calls/{transactionId}",
	}

	if input == nil {
		input = &UpdateSipMediaApplicationCallInput{}
	}

	output = &UpdateSipMediaApplicationCallOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateSipMediaApplicationCall API operation for Amazon Chime.
//
// Invokes the AWS Lambda function associated with the SIP media application
// and transaction ID in an update request. The Lambda function can then return
// a new set of actions.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, UpdateSipMediaApplicationCall (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateSipMediaApplicationCall.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateSipMediaApplicationCall for usage and error information.
//
// Returned Error Types:
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateSipMediaApplicationCall
//
// Deprecated: Replaced by UpdateSipMediaApplicationCall in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateSipMediaApplicationCall(input *UpdateSipMediaApplicationCallInput) (*UpdateSipMediaApplicationCallOutput, error) {
	req, out := c.UpdateSipMediaApplicationCallRequest(input)
	return out, req.Send()
}

// UpdateSipMediaApplicationCallWithContext is the same as UpdateSipMediaApplicationCall with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateSipMediaApplicationCall for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by UpdateSipMediaApplicationCall in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateSipMediaApplicationCallWithContext(ctx aws.Context, input *UpdateSipMediaApplicationCallInput, opts ...request.Option) (*UpdateSipMediaApplicationCallOutput, error) {
	req, out := c.UpdateSipMediaApplicationCallRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateSipRule = "UpdateSipRule"

// UpdateSipRuleRequest generates a "aws/request.Request" representing the
// client's request for the UpdateSipRule operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateSipRule for more information on using the UpdateSipRule
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateSipRuleRequest method.
//	req, resp := client.UpdateSipRuleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateSipRule
//
// Deprecated: Replaced by UpdateSipRule in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateSipRuleRequest(input *UpdateSipRuleInput) (req *request.Request, output *UpdateSipRuleOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UpdateSipRule, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUpdateSipRule,
		HTTPMethod: "PUT",
		HTTPPath:   "/sip-rules/{sipRuleId}",
	}

	if input == nil {
		input = &UpdateSipRuleInput{}
	}

	output = &UpdateSipRuleOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateSipRule API operation for Amazon Chime.
//
// Updates the details of the specified SIP rule.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, UpdateSipRule (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateSipRule.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateSipRule for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ResourceLimitExceededException
//     The request exceeds the resource limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateSipRule
//
// Deprecated: Replaced by UpdateSipRule in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateSipRule(input *UpdateSipRuleInput) (*UpdateSipRuleOutput, error) {
	req, out := c.UpdateSipRuleRequest(input)
	return out, req.Send()
}

// UpdateSipRuleWithContext is the same as UpdateSipRule with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateSipRule for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by UpdateSipRule in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateSipRuleWithContext(ctx aws.Context, input *UpdateSipRuleInput, opts ...request.Option) (*UpdateSipRuleOutput, error) {
	req, out := c.UpdateSipRuleRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateUser = "UpdateUser"

// UpdateUserRequest generates a "aws/request.Request" representing the
// client's request for the UpdateUser operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateUser for more information on using the UpdateUser
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateUserRequest method.
//	req, resp := client.UpdateUserRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateUser
func (c *Chime) UpdateUserRequest(input *UpdateUserInput) (req *request.Request, output *UpdateUserOutput) {
	op := &request.Operation{
		Name:       opUpdateUser,
		HTTPMethod: "POST",
		HTTPPath:   "/accounts/{accountId}/users/{userId}",
	}

	if input == nil {
		input = &UpdateUserInput{}
	}

	output = &UpdateUserOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateUser API operation for Amazon Chime.
//
// Updates user details for a specified user ID. Currently, only LicenseType
// updates are supported for this action.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateUser for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateUser
func (c *Chime) UpdateUser(input *UpdateUserInput) (*UpdateUserOutput, error) {
	req, out := c.UpdateUserRequest(input)
	return out, req.Send()
}

// UpdateUserWithContext is the same as UpdateUser with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateUser for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) UpdateUserWithContext(ctx aws.Context, input *UpdateUserInput, opts ...request.Option) (*UpdateUserOutput, error) {
	req, out := c.UpdateUserRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateUserSettings = "UpdateUserSettings"

// UpdateUserSettingsRequest generates a "aws/request.Request" representing the
// client's request for the UpdateUserSettings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateUserSettings for more information on using the UpdateUserSettings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateUserSettingsRequest method.
//	req, resp := client.UpdateUserSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateUserSettings
func (c *Chime) UpdateUserSettingsRequest(input *UpdateUserSettingsInput) (req *request.Request, output *UpdateUserSettingsOutput) {
	op := &request.Operation{
		Name:       opUpdateUserSettings,
		HTTPMethod: "PUT",
		HTTPPath:   "/accounts/{accountId}/users/{userId}/settings",
	}

	if input == nil {
		input = &UpdateUserSettingsInput{}
	}

	output = &UpdateUserSettingsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UpdateUserSettings API operation for Amazon Chime.
//
// Updates the settings for the specified user, such as phone number settings.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateUserSettings for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateUserSettings
func (c *Chime) UpdateUserSettings(input *UpdateUserSettingsInput) (*UpdateUserSettingsOutput, error) {
	req, out := c.UpdateUserSettingsRequest(input)
	return out, req.Send()
}

// UpdateUserSettingsWithContext is the same as UpdateUserSettings with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateUserSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Chime) UpdateUserSettingsWithContext(ctx aws.Context, input *UpdateUserSettingsInput, opts ...request.Option) (*UpdateUserSettingsOutput, error) {
	req, out := c.UpdateUserSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateVoiceConnector = "UpdateVoiceConnector"

// UpdateVoiceConnectorRequest generates a "aws/request.Request" representing the
// client's request for the UpdateVoiceConnector operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateVoiceConnector for more information on using the UpdateVoiceConnector
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateVoiceConnectorRequest method.
//	req, resp := client.UpdateVoiceConnectorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateVoiceConnector
//
// Deprecated: Replaced by UpdateVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateVoiceConnectorRequest(input *UpdateVoiceConnectorInput) (req *request.Request, output *UpdateVoiceConnectorOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UpdateVoiceConnector, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUpdateVoiceConnector,
		HTTPMethod: "PUT",
		HTTPPath:   "/voice-connectors/{voiceConnectorId}",
	}

	if input == nil {
		input = &UpdateVoiceConnectorInput{}
	}

	output = &UpdateVoiceConnectorOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateVoiceConnector API operation for Amazon Chime.
//
// Updates details for the specified Amazon Chime Voice Connector.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, UpdateVoiceConnector (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateVoiceConnector.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateVoiceConnector for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateVoiceConnector
//
// Deprecated: Replaced by UpdateVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateVoiceConnector(input *UpdateVoiceConnectorInput) (*UpdateVoiceConnectorOutput, error) {
	req, out := c.UpdateVoiceConnectorRequest(input)
	return out, req.Send()
}

// UpdateVoiceConnectorWithContext is the same as UpdateVoiceConnector with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateVoiceConnector for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by UpdateVoiceConnector in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateVoiceConnectorWithContext(ctx aws.Context, input *UpdateVoiceConnectorInput, opts ...request.Option) (*UpdateVoiceConnectorOutput, error) {
	req, out := c.UpdateVoiceConnectorRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateVoiceConnectorGroup = "UpdateVoiceConnectorGroup"

// UpdateVoiceConnectorGroupRequest generates a "aws/request.Request" representing the
// client's request for the UpdateVoiceConnectorGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateVoiceConnectorGroup for more information on using the UpdateVoiceConnectorGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateVoiceConnectorGroupRequest method.
//	req, resp := client.UpdateVoiceConnectorGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateVoiceConnectorGroup
//
// Deprecated: Replaced by UpdateVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateVoiceConnectorGroupRequest(input *UpdateVoiceConnectorGroupInput) (req *request.Request, output *UpdateVoiceConnectorGroupOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, UpdateVoiceConnectorGroup, has been deprecated")
	}
	op := &request.Operation{
		Name:       opUpdateVoiceConnectorGroup,
		HTTPMethod: "PUT",
		HTTPPath:   "/voice-connector-groups/{voiceConnectorGroupId}",
	}

	if input == nil {
		input = &UpdateVoiceConnectorGroupInput{}
	}

	output = &UpdateVoiceConnectorGroupOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateVoiceConnectorGroup API operation for Amazon Chime.
//
// Updates details of the specified Amazon Chime Voice Connector group, such
// as the name and Amazon Chime Voice Connector priority ranking.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, UpdateVoiceConnectorGroup (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateVoiceConnectorGroup.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation UpdateVoiceConnectorGroup for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ConflictException
//     The request could not be processed because of conflict in the current state
//     of the resource.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/UpdateVoiceConnectorGroup
//
// Deprecated: Replaced by UpdateVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateVoiceConnectorGroup(input *UpdateVoiceConnectorGroupInput) (*UpdateVoiceConnectorGroupOutput, error) {
	req, out := c.UpdateVoiceConnectorGroupRequest(input)
	return out, req.Send()
}

// UpdateVoiceConnectorGroupWithContext is the same as UpdateVoiceConnectorGroup with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateVoiceConnectorGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by UpdateVoiceConnectorGroup in the Amazon Chime SDK Voice Namespace
func (c *Chime) UpdateVoiceConnectorGroupWithContext(ctx aws.Context, input *UpdateVoiceConnectorGroupInput, opts ...request.Option) (*UpdateVoiceConnectorGroupOutput, error) {
	req, out := c.UpdateVoiceConnectorGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opValidateE911Address = "ValidateE911Address"

// ValidateE911AddressRequest generates a "aws/request.Request" representing the
// client's request for the ValidateE911Address operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ValidateE911Address for more information on using the ValidateE911Address
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ValidateE911AddressRequest method.
//	req, resp := client.ValidateE911AddressRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ValidateE911Address
//
// Deprecated: Replaced by ValidateE911Address in the Amazon Chime SDK Voice Namespace
func (c *Chime) ValidateE911AddressRequest(input *ValidateE911AddressInput) (req *request.Request, output *ValidateE911AddressOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, ValidateE911Address, has been deprecated")
	}
	op := &request.Operation{
		Name:       opValidateE911Address,
		HTTPMethod: "POST",
		HTTPPath:   "/emergency-calling/address",
	}

	if input == nil {
		input = &ValidateE911AddressInput{}
	}

	output = &ValidateE911AddressOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ValidateE911Address API operation for Amazon Chime.
//
// Validates an address to be used for 911 calls made with Amazon Chime Voice
// Connectors. You can use validated addresses in a Presence Information Data
// Format Location Object file that you include in SIP requests. That helps
// ensure that addresses are routed to the appropriate Public Safety Answering
// Point.
//
// This API is is no longer supported and will not be updated. We recommend
// using the latest version, ValidateE911Address (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_ValidateE911Address.html),
// in the Amazon Chime SDK.
//
// Using the latest version requires migrating to a dedicated namespace. For
// more information, refer to Migrating from the Amazon Chime namespace (https://docs.aws.amazon.com/chime-sdk/latest/dg/migrate-from-chm-namespace.html)
// in the Amazon Chime SDK Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon Chime's
// API operation ValidateE911Address for usage and error information.
//
// Returned Error Types:
//
//   - UnauthorizedClientException
//     The client is not currently authorized to make the request.
//
//   - NotFoundException
//     One or more of the resources in the request does not exist in the system.
//
//   - ForbiddenException
//     The client is permanently forbidden from making the request.
//
//   - BadRequestException
//     The input parameters don't match the service's restrictions.
//
//   - ThrottledClientException
//     The client exceeded its request rate limit.
//
//   - ServiceUnavailableException
//     The service is currently unavailable.
//
//   - ServiceFailureException
//     The service encountered an unexpected error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ValidateE911Address
//
// Deprecated: Replaced by ValidateE911Address in the Amazon Chime SDK Voice Namespace
func (c *Chime) ValidateE911Address(input *ValidateE911AddressInput) (*ValidateE911AddressOutput, error) {
	req, out := c.ValidateE911AddressRequest(input)
	return out, req.Send()
}

// ValidateE911AddressWithContext is the same as ValidateE911Address with the addition of
// the ability to pass a context and additional request options.
//
// See ValidateE911Address for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
//
// Deprecated: Replaced by ValidateE911Address in the Amazon Chime SDK Voice Namespace
func (c *Chime) ValidateE911AddressWithContext(ctx aws.Context, input *ValidateE911AddressInput, opts ...request.Option) (*ValidateE911AddressOutput, error) {
	req, out := c.ValidateE911AddressRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// You don't have permissions to perform the requested operation.
type AccessDeniedException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Code_ *string `locationName:"Code" type:"string" enum:"ErrorCode"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccessDeniedException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccessDeniedException) GoString() string {
	return s.String()
}

func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
	return &AccessDeniedException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *AccessDeniedException) Code() string {
	return "AccessDeniedException"
}

// Message returns the exception's message.
func (s *AccessDeniedException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *AccessDeniedException) OrigErr() error {
	return nil
}

func (s *AccessDeniedException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *AccessDeniedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *AccessDeniedException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The Amazon Chime account details. An AWS account can have multiple Amazon
// Chime accounts.
type Account struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `type:"string" required:"true"`

	// The status of the account.
	AccountStatus *string `type:"string" enum:"AccountStatus"`

	// The Amazon Chime account type. For more information about different account
	// types, see Managing Your Amazon Chime Accounts (https://docs.aws.amazon.com/chime/latest/ag/manage-chime-account.html)
	// in the Amazon Chime Administration Guide.
	AccountType *string `type:"string" enum:"AccountType"`

	// The AWS account ID.
	//
	// AwsAccountId is a required field
	AwsAccountId *string `type:"string" required:"true"`

	// The Amazon Chime account creation timestamp, in ISO 8601 format.
	CreatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The default license for the Amazon Chime account.
	DefaultLicense *string `type:"string" enum:"License"`

	// The Amazon Chime account name.
	//
	// Name is a required field
	Name *string `type:"string" required:"true"`

	// The sign-in delegate groups associated with the account.
	SigninDelegateGroups []*SigninDelegateGroup `type:"list"`

	// Supported licenses for the Amazon Chime account.
	SupportedLicenses []*string `type:"list" enum:"License"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Account) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Account) GoString() string {
	return s.String()
}

// SetAccountId sets the AccountId field's value.
func (s *Account) SetAccountId(v string) *Account {
	s.AccountId = &v
	return s
}

// SetAccountStatus sets the AccountStatus field's value.
func (s *Account) SetAccountStatus(v string) *Account {
	s.AccountStatus = &v
	return s
}

// SetAccountType sets the AccountType field's value.
func (s *Account) SetAccountType(v string) *Account {
	s.AccountType = &v
	return s
}

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *Account) SetAwsAccountId(v string) *Account {
	s.AwsAccountId = &v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *Account) SetCreatedTimestamp(v time.Time) *Account {
	s.CreatedTimestamp = &v
	return s
}

// SetDefaultLicense sets the DefaultLicense field's value.
func (s *Account) SetDefaultLicense(v string) *Account {
	s.DefaultLicense = &v
	return s
}

// SetName sets the Name field's value.
func (s *Account) SetName(v string) *Account {
	s.Name = &v
	return s
}

// SetSigninDelegateGroups sets the SigninDelegateGroups field's value.
func (s *Account) SetSigninDelegateGroups(v []*SigninDelegateGroup) *Account {
	s.SigninDelegateGroups = v
	return s
}

// SetSupportedLicenses sets the SupportedLicenses field's value.
func (s *Account) SetSupportedLicenses(v []*string) *Account {
	s.SupportedLicenses = v
	return s
}

// Settings related to the Amazon Chime account. This includes settings that
// start or stop remote control of shared screens, or start or stop the dial-out
// option in the Amazon Chime web application. For more information about these
// settings, see Use the Policies Page (https://docs.aws.amazon.com/chime/latest/ag/policies.html)
// in the Amazon Chime Administration Guide.
type AccountSettings struct {
	_ struct{} `type:"structure"`

	// Setting that stops or starts remote control of shared screens during meetings.
	DisableRemoteControl *bool `type:"boolean"`

	// Setting that allows meeting participants to choose the Call me at a phone
	// number option. For more information, see Join a Meeting without the Amazon
	// Chime App (https://docs.aws.amazon.com/chime/latest/ug/chime-join-meeting.html).
	EnableDialOut *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccountSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccountSettings) GoString() string {
	return s.String()
}

// SetDisableRemoteControl sets the DisableRemoteControl field's value.
func (s *AccountSettings) SetDisableRemoteControl(v bool) *AccountSettings {
	s.DisableRemoteControl = &v
	return s
}

// SetEnableDialOut sets the EnableDialOut field's value.
func (s *AccountSettings) SetEnableDialOut(v bool) *AccountSettings {
	s.EnableDialOut = &v
	return s
}

// A validated address.
type Address struct {
	_ struct{} `type:"structure"`

	// The city of an address.
	//
	// City is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Address's
	// String and GoString methods.
	City *string `locationName:"city" type:"string" sensitive:"true"`

	// The country of an address.
	//
	// Country is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Address's
	// String and GoString methods.
	Country *string `locationName:"country" type:"string" sensitive:"true"`

	// An address suffix location, such as the S. Unit A in Central Park S. Unit
	// A.
	//
	// PostDirectional is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Address's
	// String and GoString methods.
	PostDirectional *string `locationName:"postDirectional" type:"string" sensitive:"true"`

	// The postal code of an address.
	//
	// PostalCode is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Address's
	// String and GoString methods.
	PostalCode *string `locationName:"postalCode" type:"string" sensitive:"true"`

	// The Zip + 4 or postal code + 4 of an address.
	//
	// PostalCodePlus4 is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Address's
	// String and GoString methods.
	PostalCodePlus4 *string `locationName:"postalCodePlus4" type:"string" sensitive:"true"`

	// An address prefix location, such as the N in N. Third St..
	//
	// PreDirectional is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Address's
	// String and GoString methods.
	PreDirectional *string `locationName:"preDirectional" type:"string" sensitive:"true"`

	// The state of an address.
	//
	// State is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Address's
	// String and GoString methods.
	State *string `locationName:"state" type:"string" sensitive:"true"`

	// The address street, such as 8th Avenue.
	//
	// StreetName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Address's
	// String and GoString methods.
	StreetName *string `locationName:"streetName" type:"string" sensitive:"true"`

	// The numeric portion of an address.
	//
	// StreetNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Address's
	// String and GoString methods.
	StreetNumber *string `locationName:"streetNumber" type:"string" sensitive:"true"`

	// The address suffix, such as the N in 8th Avenue N.
	//
	// StreetSuffix is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Address's
	// String and GoString methods.
	StreetSuffix *string `locationName:"streetSuffix" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Address) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Address) GoString() string {
	return s.String()
}

// SetCity sets the City field's value.
func (s *Address) SetCity(v string) *Address {
	s.City = &v
	return s
}

// SetCountry sets the Country field's value.
func (s *Address) SetCountry(v string) *Address {
	s.Country = &v
	return s
}

// SetPostDirectional sets the PostDirectional field's value.
func (s *Address) SetPostDirectional(v string) *Address {
	s.PostDirectional = &v
	return s
}

// SetPostalCode sets the PostalCode field's value.
func (s *Address) SetPostalCode(v string) *Address {
	s.PostalCode = &v
	return s
}

// SetPostalCodePlus4 sets the PostalCodePlus4 field's value.
func (s *Address) SetPostalCodePlus4(v string) *Address {
	s.PostalCodePlus4 = &v
	return s
}

// SetPreDirectional sets the PreDirectional field's value.
func (s *Address) SetPreDirectional(v string) *Address {
	s.PreDirectional = &v
	return s
}

// SetState sets the State field's value.
func (s *Address) SetState(v string) *Address {
	s.State = &v
	return s
}

// SetStreetName sets the StreetName field's value.
func (s *Address) SetStreetName(v string) *Address {
	s.StreetName = &v
	return s
}

// SetStreetNumber sets the StreetNumber field's value.
func (s *Address) SetStreetNumber(v string) *Address {
	s.StreetNumber = &v
	return s
}

// SetStreetSuffix sets the StreetSuffix field's value.
func (s *Address) SetStreetSuffix(v string) *Address {
	s.StreetSuffix = &v
	return s
}

// The Alexa for Business metadata associated with an Amazon Chime user, used
// to integrate Alexa for Business with a device.
type AlexaForBusinessMetadata struct {
	_ struct{} `type:"structure"`

	// The ARN of the room resource.
	//
	// AlexaForBusinessRoomArn is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AlexaForBusinessMetadata's
	// String and GoString methods.
	AlexaForBusinessRoomArn *string `type:"string" sensitive:"true"`

	// Starts or stops Alexa for Business.
	IsAlexaForBusinessEnabled *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlexaForBusinessMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlexaForBusinessMetadata) GoString() string {
	return s.String()
}

// SetAlexaForBusinessRoomArn sets the AlexaForBusinessRoomArn field's value.
func (s *AlexaForBusinessMetadata) SetAlexaForBusinessRoomArn(v string) *AlexaForBusinessMetadata {
	s.AlexaForBusinessRoomArn = &v
	return s
}

// SetIsAlexaForBusinessEnabled sets the IsAlexaForBusinessEnabled field's value.
func (s *AlexaForBusinessMetadata) SetIsAlexaForBusinessEnabled(v bool) *AlexaForBusinessMetadata {
	s.IsAlexaForBusinessEnabled = &v
	return s
}

// The details of an AppInstance, an instance of an Amazon Chime SDK messaging
// application.
type AppInstance struct {
	_ struct{} `type:"structure"`

	// The ARN of the messaging instance.
	AppInstanceArn *string `min:"5" type:"string"`

	// The time at which an AppInstance was created. In epoch milliseconds.
	CreatedTimestamp *time.Time `type:"timestamp"`

	// The time an AppInstance was last updated. In epoch milliseconds.
	LastUpdatedTimestamp *time.Time `type:"timestamp"`

	// The metadata of an AppInstance.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AppInstance's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// The name of an AppInstance.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AppInstance's
	// String and GoString methods.
	Name *string `min:"1" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstance) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstance) GoString() string {
	return s.String()
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *AppInstance) SetAppInstanceArn(v string) *AppInstance {
	s.AppInstanceArn = &v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *AppInstance) SetCreatedTimestamp(v time.Time) *AppInstance {
	s.CreatedTimestamp = &v
	return s
}

// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
func (s *AppInstance) SetLastUpdatedTimestamp(v time.Time) *AppInstance {
	s.LastUpdatedTimestamp = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *AppInstance) SetMetadata(v string) *AppInstance {
	s.Metadata = &v
	return s
}

// SetName sets the Name field's value.
func (s *AppInstance) SetName(v string) *AppInstance {
	s.Name = &v
	return s
}

// The details of an AppInstanceAdmin.
type AppInstanceAdmin struct {
	_ struct{} `type:"structure"`

	// The AppInstanceAdmin data.
	Admin *Identity `type:"structure"`

	// The ARN of the AppInstance for which the user is an administrator.
	AppInstanceArn *string `min:"5" type:"string"`

	// The time at which an administrator was created.
	CreatedTimestamp *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceAdmin) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceAdmin) GoString() string {
	return s.String()
}

// SetAdmin sets the Admin field's value.
func (s *AppInstanceAdmin) SetAdmin(v *Identity) *AppInstanceAdmin {
	s.Admin = v
	return s
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *AppInstanceAdmin) SetAppInstanceArn(v string) *AppInstanceAdmin {
	s.AppInstanceArn = &v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *AppInstanceAdmin) SetCreatedTimestamp(v time.Time) *AppInstanceAdmin {
	s.CreatedTimestamp = &v
	return s
}

// Summary of the details of an AppInstanceAdmin.
type AppInstanceAdminSummary struct {
	_ struct{} `type:"structure"`

	// The details of the AppInstanceAdmin.
	Admin *Identity `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceAdminSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceAdminSummary) GoString() string {
	return s.String()
}

// SetAdmin sets the Admin field's value.
func (s *AppInstanceAdminSummary) SetAdmin(v *Identity) *AppInstanceAdminSummary {
	s.Admin = v
	return s
}

// The details of the data-retention settings for an AppInstance.
type AppInstanceRetentionSettings struct {
	_ struct{} `type:"structure"`

	// The length of time in days to retain the messages in a channel.
	ChannelRetentionSettings *ChannelRetentionSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceRetentionSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceRetentionSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AppInstanceRetentionSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AppInstanceRetentionSettings"}
	if s.ChannelRetentionSettings != nil {
		if err := s.ChannelRetentionSettings.Validate(); err != nil {
			invalidParams.AddNested("ChannelRetentionSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelRetentionSettings sets the ChannelRetentionSettings field's value.
func (s *AppInstanceRetentionSettings) SetChannelRetentionSettings(v *ChannelRetentionSettings) *AppInstanceRetentionSettings {
	s.ChannelRetentionSettings = v
	return s
}

// The details of the streaming configuration of an AppInstance.
type AppInstanceStreamingConfiguration struct {
	_ struct{} `type:"structure"`

	// The type of data to be streamed.
	//
	// AppInstanceDataType is a required field
	AppInstanceDataType *string `type:"string" required:"true" enum:"AppInstanceDataType"`

	// The resource ARN.
	//
	// ResourceArn is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AppInstanceStreamingConfiguration's
	// String and GoString methods.
	//
	// ResourceArn is a required field
	ResourceArn *string `min:"1" type:"string" required:"true" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceStreamingConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceStreamingConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AppInstanceStreamingConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AppInstanceStreamingConfiguration"}
	if s.AppInstanceDataType == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceDataType"))
	}
	if s.ResourceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
	}
	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceDataType sets the AppInstanceDataType field's value.
func (s *AppInstanceStreamingConfiguration) SetAppInstanceDataType(v string) *AppInstanceStreamingConfiguration {
	s.AppInstanceDataType = &v
	return s
}

// SetResourceArn sets the ResourceArn field's value.
func (s *AppInstanceStreamingConfiguration) SetResourceArn(v string) *AppInstanceStreamingConfiguration {
	s.ResourceArn = &v
	return s
}

// Summary of the data for an AppInstance.
type AppInstanceSummary struct {
	_ struct{} `type:"structure"`

	// The AppInstance ARN.
	AppInstanceArn *string `min:"5" type:"string"`

	// The metadata of the AppInstance.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AppInstanceSummary's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// The name of the AppInstance.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AppInstanceSummary's
	// String and GoString methods.
	Name *string `min:"1" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceSummary) GoString() string {
	return s.String()
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *AppInstanceSummary) SetAppInstanceArn(v string) *AppInstanceSummary {
	s.AppInstanceArn = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *AppInstanceSummary) SetMetadata(v string) *AppInstanceSummary {
	s.Metadata = &v
	return s
}

// SetName sets the Name field's value.
func (s *AppInstanceSummary) SetName(v string) *AppInstanceSummary {
	s.Name = &v
	return s
}

// The details of an AppInstanceUser.
type AppInstanceUser struct {
	_ struct{} `type:"structure"`

	// The ARN of the AppInstanceUser.
	AppInstanceUserArn *string `min:"5" type:"string"`

	// The time at which the AppInstanceUser was created.
	CreatedTimestamp *time.Time `type:"timestamp"`

	// The time at which the AppInstanceUser was last updated.
	LastUpdatedTimestamp *time.Time `type:"timestamp"`

	// The metadata of the AppInstanceUser.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AppInstanceUser's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// The name of the AppInstanceUser.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AppInstanceUser's
	// String and GoString methods.
	Name *string `min:"1" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceUser) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceUser) GoString() string {
	return s.String()
}

// SetAppInstanceUserArn sets the AppInstanceUserArn field's value.
func (s *AppInstanceUser) SetAppInstanceUserArn(v string) *AppInstanceUser {
	s.AppInstanceUserArn = &v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *AppInstanceUser) SetCreatedTimestamp(v time.Time) *AppInstanceUser {
	s.CreatedTimestamp = &v
	return s
}

// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
func (s *AppInstanceUser) SetLastUpdatedTimestamp(v time.Time) *AppInstanceUser {
	s.LastUpdatedTimestamp = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *AppInstanceUser) SetMetadata(v string) *AppInstanceUser {
	s.Metadata = &v
	return s
}

// SetName sets the Name field's value.
func (s *AppInstanceUser) SetName(v string) *AppInstanceUser {
	s.Name = &v
	return s
}

// Summary of the membership details of an AppInstanceUser.
type AppInstanceUserMembershipSummary struct {
	_ struct{} `type:"structure"`

	// The time at which a message was last read.
	ReadMarkerTimestamp *time.Time `type:"timestamp"`

	// The type of ChannelMembership.
	Type *string `type:"string" enum:"ChannelMembershipType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceUserMembershipSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceUserMembershipSummary) GoString() string {
	return s.String()
}

// SetReadMarkerTimestamp sets the ReadMarkerTimestamp field's value.
func (s *AppInstanceUserMembershipSummary) SetReadMarkerTimestamp(v time.Time) *AppInstanceUserMembershipSummary {
	s.ReadMarkerTimestamp = &v
	return s
}

// SetType sets the Type field's value.
func (s *AppInstanceUserMembershipSummary) SetType(v string) *AppInstanceUserMembershipSummary {
	s.Type = &v
	return s
}

// Summary of the details of an AppInstanceUser.
type AppInstanceUserSummary struct {
	_ struct{} `type:"structure"`

	// The ARN of the AppInstanceUser.
	AppInstanceUserArn *string `min:"5" type:"string"`

	// The metadata of the AppInstanceUser.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AppInstanceUserSummary's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// The name of an AppInstanceUser.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AppInstanceUserSummary's
	// String and GoString methods.
	Name *string `min:"1" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceUserSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppInstanceUserSummary) GoString() string {
	return s.String()
}

// SetAppInstanceUserArn sets the AppInstanceUserArn field's value.
func (s *AppInstanceUserSummary) SetAppInstanceUserArn(v string) *AppInstanceUserSummary {
	s.AppInstanceUserArn = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *AppInstanceUserSummary) SetMetadata(v string) *AppInstanceUserSummary {
	s.Metadata = &v
	return s
}

// SetName sets the Name field's value.
func (s *AppInstanceUserSummary) SetName(v string) *AppInstanceUserSummary {
	s.Name = &v
	return s
}

// The configuration for the artifacts.
type ArtifactsConfiguration struct {
	_ struct{} `type:"structure"`

	// The configuration for the audio artifacts.
	//
	// Audio is a required field
	Audio *AudioArtifactsConfiguration `type:"structure" required:"true"`

	// The configuration for the content artifacts.
	//
	// Content is a required field
	Content *ContentArtifactsConfiguration `type:"structure" required:"true"`

	// The configuration for the video artifacts.
	//
	// Video is a required field
	Video *VideoArtifactsConfiguration `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ArtifactsConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ArtifactsConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ArtifactsConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ArtifactsConfiguration"}
	if s.Audio == nil {
		invalidParams.Add(request.NewErrParamRequired("Audio"))
	}
	if s.Content == nil {
		invalidParams.Add(request.NewErrParamRequired("Content"))
	}
	if s.Video == nil {
		invalidParams.Add(request.NewErrParamRequired("Video"))
	}
	if s.Audio != nil {
		if err := s.Audio.Validate(); err != nil {
			invalidParams.AddNested("Audio", err.(request.ErrInvalidParams))
		}
	}
	if s.Content != nil {
		if err := s.Content.Validate(); err != nil {
			invalidParams.AddNested("Content", err.(request.ErrInvalidParams))
		}
	}
	if s.Video != nil {
		if err := s.Video.Validate(); err != nil {
			invalidParams.AddNested("Video", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAudio sets the Audio field's value.
func (s *ArtifactsConfiguration) SetAudio(v *AudioArtifactsConfiguration) *ArtifactsConfiguration {
	s.Audio = v
	return s
}

// SetContent sets the Content field's value.
func (s *ArtifactsConfiguration) SetContent(v *ContentArtifactsConfiguration) *ArtifactsConfiguration {
	s.Content = v
	return s
}

// SetVideo sets the Video field's value.
func (s *ArtifactsConfiguration) SetVideo(v *VideoArtifactsConfiguration) *ArtifactsConfiguration {
	s.Video = v
	return s
}

type AssociatePhoneNumberWithUserInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The phone number, in E.164 format.
	//
	// E164PhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AssociatePhoneNumberWithUserInput's
	// String and GoString methods.
	//
	// E164PhoneNumber is a required field
	E164PhoneNumber *string `type:"string" required:"true" sensitive:"true"`

	// The user ID.
	//
	// UserId is a required field
	UserId *string `location:"uri" locationName:"userId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociatePhoneNumberWithUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociatePhoneNumberWithUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AssociatePhoneNumberWithUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AssociatePhoneNumberWithUserInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.E164PhoneNumber == nil {
		invalidParams.Add(request.NewErrParamRequired("E164PhoneNumber"))
	}
	if s.UserId == nil {
		invalidParams.Add(request.NewErrParamRequired("UserId"))
	}
	if s.UserId != nil && len(*s.UserId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UserId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *AssociatePhoneNumberWithUserInput) SetAccountId(v string) *AssociatePhoneNumberWithUserInput {
	s.AccountId = &v
	return s
}

// SetE164PhoneNumber sets the E164PhoneNumber field's value.
func (s *AssociatePhoneNumberWithUserInput) SetE164PhoneNumber(v string) *AssociatePhoneNumberWithUserInput {
	s.E164PhoneNumber = &v
	return s
}

// SetUserId sets the UserId field's value.
func (s *AssociatePhoneNumberWithUserInput) SetUserId(v string) *AssociatePhoneNumberWithUserInput {
	s.UserId = &v
	return s
}

type AssociatePhoneNumberWithUserOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociatePhoneNumberWithUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociatePhoneNumberWithUserOutput) GoString() string {
	return s.String()
}

type AssociatePhoneNumbersWithVoiceConnectorGroupInput struct {
	_ struct{} `type:"structure"`

	// List of phone numbers, in E.164 format.
	//
	// E164PhoneNumbers is a required field
	E164PhoneNumbers []*string `type:"list" required:"true"`

	// If true, associates the provided phone numbers with the provided Amazon Chime
	// Voice Connector Group and removes any previously existing associations. If
	// false, does not associate any phone numbers that have previously existing
	// associations.
	ForceAssociate *bool `type:"boolean"`

	// The Amazon Chime Voice Connector group ID.
	//
	// VoiceConnectorGroupId is a required field
	VoiceConnectorGroupId *string `location:"uri" locationName:"voiceConnectorGroupId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociatePhoneNumbersWithVoiceConnectorGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociatePhoneNumbersWithVoiceConnectorGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AssociatePhoneNumbersWithVoiceConnectorGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AssociatePhoneNumbersWithVoiceConnectorGroupInput"}
	if s.E164PhoneNumbers == nil {
		invalidParams.Add(request.NewErrParamRequired("E164PhoneNumbers"))
	}
	if s.VoiceConnectorGroupId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorGroupId"))
	}
	if s.VoiceConnectorGroupId != nil && len(*s.VoiceConnectorGroupId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorGroupId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetE164PhoneNumbers sets the E164PhoneNumbers field's value.
func (s *AssociatePhoneNumbersWithVoiceConnectorGroupInput) SetE164PhoneNumbers(v []*string) *AssociatePhoneNumbersWithVoiceConnectorGroupInput {
	s.E164PhoneNumbers = v
	return s
}

// SetForceAssociate sets the ForceAssociate field's value.
func (s *AssociatePhoneNumbersWithVoiceConnectorGroupInput) SetForceAssociate(v bool) *AssociatePhoneNumbersWithVoiceConnectorGroupInput {
	s.ForceAssociate = &v
	return s
}

// SetVoiceConnectorGroupId sets the VoiceConnectorGroupId field's value.
func (s *AssociatePhoneNumbersWithVoiceConnectorGroupInput) SetVoiceConnectorGroupId(v string) *AssociatePhoneNumbersWithVoiceConnectorGroupInput {
	s.VoiceConnectorGroupId = &v
	return s
}

type AssociatePhoneNumbersWithVoiceConnectorGroupOutput struct {
	_ struct{} `type:"structure"`

	// If the action fails for one or more of the phone numbers in the request,
	// a list of the phone numbers is returned, along with error codes and error
	// messages.
	PhoneNumberErrors []*PhoneNumberError `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociatePhoneNumbersWithVoiceConnectorGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociatePhoneNumbersWithVoiceConnectorGroupOutput) GoString() string {
	return s.String()
}

// SetPhoneNumberErrors sets the PhoneNumberErrors field's value.
func (s *AssociatePhoneNumbersWithVoiceConnectorGroupOutput) SetPhoneNumberErrors(v []*PhoneNumberError) *AssociatePhoneNumbersWithVoiceConnectorGroupOutput {
	s.PhoneNumberErrors = v
	return s
}

type AssociatePhoneNumbersWithVoiceConnectorInput struct {
	_ struct{} `type:"structure"`

	// List of phone numbers, in E.164 format.
	//
	// E164PhoneNumbers is a required field
	E164PhoneNumbers []*string `type:"list" required:"true"`

	// If true, associates the provided phone numbers with the provided Amazon Chime
	// Voice Connector and removes any previously existing associations. If false,
	// does not associate any phone numbers that have previously existing associations.
	ForceAssociate *bool `type:"boolean"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociatePhoneNumbersWithVoiceConnectorInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociatePhoneNumbersWithVoiceConnectorInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AssociatePhoneNumbersWithVoiceConnectorInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AssociatePhoneNumbersWithVoiceConnectorInput"}
	if s.E164PhoneNumbers == nil {
		invalidParams.Add(request.NewErrParamRequired("E164PhoneNumbers"))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetE164PhoneNumbers sets the E164PhoneNumbers field's value.
func (s *AssociatePhoneNumbersWithVoiceConnectorInput) SetE164PhoneNumbers(v []*string) *AssociatePhoneNumbersWithVoiceConnectorInput {
	s.E164PhoneNumbers = v
	return s
}

// SetForceAssociate sets the ForceAssociate field's value.
func (s *AssociatePhoneNumbersWithVoiceConnectorInput) SetForceAssociate(v bool) *AssociatePhoneNumbersWithVoiceConnectorInput {
	s.ForceAssociate = &v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *AssociatePhoneNumbersWithVoiceConnectorInput) SetVoiceConnectorId(v string) *AssociatePhoneNumbersWithVoiceConnectorInput {
	s.VoiceConnectorId = &v
	return s
}

type AssociatePhoneNumbersWithVoiceConnectorOutput struct {
	_ struct{} `type:"structure"`

	// If the action fails for one or more of the phone numbers in the request,
	// a list of the phone numbers is returned, along with error codes and error
	// messages.
	PhoneNumberErrors []*PhoneNumberError `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociatePhoneNumbersWithVoiceConnectorOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociatePhoneNumbersWithVoiceConnectorOutput) GoString() string {
	return s.String()
}

// SetPhoneNumberErrors sets the PhoneNumberErrors field's value.
func (s *AssociatePhoneNumbersWithVoiceConnectorOutput) SetPhoneNumberErrors(v []*PhoneNumberError) *AssociatePhoneNumbersWithVoiceConnectorOutput {
	s.PhoneNumberErrors = v
	return s
}

type AssociateSigninDelegateGroupsWithAccountInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The sign-in delegate groups.
	//
	// SigninDelegateGroups is a required field
	SigninDelegateGroups []*SigninDelegateGroup `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociateSigninDelegateGroupsWithAccountInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociateSigninDelegateGroupsWithAccountInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AssociateSigninDelegateGroupsWithAccountInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AssociateSigninDelegateGroupsWithAccountInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.SigninDelegateGroups == nil {
		invalidParams.Add(request.NewErrParamRequired("SigninDelegateGroups"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *AssociateSigninDelegateGroupsWithAccountInput) SetAccountId(v string) *AssociateSigninDelegateGroupsWithAccountInput {
	s.AccountId = &v
	return s
}

// SetSigninDelegateGroups sets the SigninDelegateGroups field's value.
func (s *AssociateSigninDelegateGroupsWithAccountInput) SetSigninDelegateGroups(v []*SigninDelegateGroup) *AssociateSigninDelegateGroupsWithAccountInput {
	s.SigninDelegateGroups = v
	return s
}

type AssociateSigninDelegateGroupsWithAccountOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociateSigninDelegateGroupsWithAccountOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociateSigninDelegateGroupsWithAccountOutput) GoString() string {
	return s.String()
}

// An Amazon Chime SDK meeting attendee. Includes a unique AttendeeId and JoinToken
// . The JoinToken allows a client to authenticate and join as the specified
// attendee. The JoinToken expires when the meeting ends or when DeleteAttendee
// is called. After that, the attendee is unable to join the meeting.
//
// We recommend securely transferring each JoinToken from your server application
// to the client so that no other client has access to the token except for
// the one authorized to represent the attendee.
type Attendee struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime SDK attendee ID.
	AttendeeId *string `type:"string"`

	// The Amazon Chime SDK external user ID. An idempotency token. Links the attendee
	// to an identity managed by a builder application.
	//
	// ExternalUserId is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Attendee's
	// String and GoString methods.
	ExternalUserId *string `min:"2" type:"string" sensitive:"true"`

	// The join token used by the Amazon Chime SDK attendee.
	//
	// JoinToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Attendee's
	// String and GoString methods.
	JoinToken *string `min:"2" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Attendee) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Attendee) GoString() string {
	return s.String()
}

// SetAttendeeId sets the AttendeeId field's value.
func (s *Attendee) SetAttendeeId(v string) *Attendee {
	s.AttendeeId = &v
	return s
}

// SetExternalUserId sets the ExternalUserId field's value.
func (s *Attendee) SetExternalUserId(v string) *Attendee {
	s.ExternalUserId = &v
	return s
}

// SetJoinToken sets the JoinToken field's value.
func (s *Attendee) SetJoinToken(v string) *Attendee {
	s.JoinToken = &v
	return s
}

// The audio artifact configuration object.
type AudioArtifactsConfiguration struct {
	_ struct{} `type:"structure"`

	// The MUX type of the audio artifact configuration object.
	//
	// MuxType is a required field
	MuxType *string `type:"string" required:"true" enum:"AudioMuxType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AudioArtifactsConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AudioArtifactsConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AudioArtifactsConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AudioArtifactsConfiguration"}
	if s.MuxType == nil {
		invalidParams.Add(request.NewErrParamRequired("MuxType"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMuxType sets the MuxType field's value.
func (s *AudioArtifactsConfiguration) SetMuxType(v string) *AudioArtifactsConfiguration {
	s.MuxType = &v
	return s
}

// The input parameters don't match the service's restrictions.
type BadRequestException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Code_ *string `locationName:"Code" type:"string" enum:"ErrorCode"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BadRequestException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BadRequestException) GoString() string {
	return s.String()
}

func newErrorBadRequestException(v protocol.ResponseMetadata) error {
	return &BadRequestException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *BadRequestException) Code() string {
	return "BadRequestException"
}

// Message returns the exception's message.
func (s *BadRequestException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *BadRequestException) OrigErr() error {
	return nil
}

func (s *BadRequestException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *BadRequestException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *BadRequestException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The membership information, including member ARNs, the channel ARN, and membership
// types.
type BatchChannelMemberships struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel to which you're adding users.
	ChannelArn *string `min:"5" type:"string"`

	// The identifier of the member who invited another member.
	InvitedBy *Identity `type:"structure"`

	// The users successfully added to the request.
	Members []*Identity `type:"list"`

	// The membership types set for the channel users.
	Type *string `type:"string" enum:"ChannelMembershipType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchChannelMemberships) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchChannelMemberships) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *BatchChannelMemberships) SetChannelArn(v string) *BatchChannelMemberships {
	s.ChannelArn = &v
	return s
}

// SetInvitedBy sets the InvitedBy field's value.
func (s *BatchChannelMemberships) SetInvitedBy(v *Identity) *BatchChannelMemberships {
	s.InvitedBy = v
	return s
}

// SetMembers sets the Members field's value.
func (s *BatchChannelMemberships) SetMembers(v []*Identity) *BatchChannelMemberships {
	s.Members = v
	return s
}

// SetType sets the Type field's value.
func (s *BatchChannelMemberships) SetType(v string) *BatchChannelMemberships {
	s.Type = &v
	return s
}

type BatchCreateAttendeeInput struct {
	_ struct{} `type:"structure"`

	// The request containing the attendees to create.
	//
	// Attendees is a required field
	Attendees []*CreateAttendeeRequestItem `type:"list" required:"true"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateAttendeeInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateAttendeeInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BatchCreateAttendeeInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BatchCreateAttendeeInput"}
	if s.Attendees == nil {
		invalidParams.Add(request.NewErrParamRequired("Attendees"))
	}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}
	if s.Attendees != nil {
		for i, v := range s.Attendees {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attendees", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAttendees sets the Attendees field's value.
func (s *BatchCreateAttendeeInput) SetAttendees(v []*CreateAttendeeRequestItem) *BatchCreateAttendeeInput {
	s.Attendees = v
	return s
}

// SetMeetingId sets the MeetingId field's value.
func (s *BatchCreateAttendeeInput) SetMeetingId(v string) *BatchCreateAttendeeInput {
	s.MeetingId = &v
	return s
}

type BatchCreateAttendeeOutput struct {
	_ struct{} `type:"structure"`

	// The attendee information, including attendees IDs and join tokens.
	Attendees []*Attendee `type:"list"`

	// If the action fails for one or more of the attendees in the request, a list
	// of the attendees is returned, along with error codes and error messages.
	Errors []*CreateAttendeeError `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateAttendeeOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateAttendeeOutput) GoString() string {
	return s.String()
}

// SetAttendees sets the Attendees field's value.
func (s *BatchCreateAttendeeOutput) SetAttendees(v []*Attendee) *BatchCreateAttendeeOutput {
	s.Attendees = v
	return s
}

// SetErrors sets the Errors field's value.
func (s *BatchCreateAttendeeOutput) SetErrors(v []*CreateAttendeeError) *BatchCreateAttendeeOutput {
	s.Errors = v
	return s
}

// A list of failed member ARNs, error codes, and error messages.
type BatchCreateChannelMembershipError struct {
	_ struct{} `type:"structure"`

	// The error code.
	ErrorCode *string `type:"string" enum:"ErrorCode"`

	// The error message.
	ErrorMessage *string `type:"string"`

	// The ARN of the member that the service couldn't add.
	MemberArn *string `min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateChannelMembershipError) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateChannelMembershipError) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *BatchCreateChannelMembershipError) SetErrorCode(v string) *BatchCreateChannelMembershipError {
	s.ErrorCode = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *BatchCreateChannelMembershipError) SetErrorMessage(v string) *BatchCreateChannelMembershipError {
	s.ErrorMessage = &v
	return s
}

// SetMemberArn sets the MemberArn field's value.
func (s *BatchCreateChannelMembershipError) SetMemberArn(v string) *BatchCreateChannelMembershipError {
	s.MemberArn = &v
	return s
}

type BatchCreateChannelMembershipInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel to which you're adding users.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The ARNs of the members you want to add to the channel.
	//
	// MemberArns is a required field
	MemberArns []*string `min:"1" type:"list" required:"true"`

	// The membership type of a user, DEFAULT or HIDDEN. Default members are always
	// returned as part of ListChannelMemberships. Hidden members are only returned
	// if the type filter in ListChannelMemberships equals HIDDEN. Otherwise hidden
	// members are not returned. This is only supported by moderators.
	Type *string `type:"string" enum:"ChannelMembershipType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateChannelMembershipInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateChannelMembershipInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BatchCreateChannelMembershipInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BatchCreateChannelMembershipInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MemberArns == nil {
		invalidParams.Add(request.NewErrParamRequired("MemberArns"))
	}
	if s.MemberArns != nil && len(s.MemberArns) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MemberArns", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *BatchCreateChannelMembershipInput) SetChannelArn(v string) *BatchCreateChannelMembershipInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *BatchCreateChannelMembershipInput) SetChimeBearer(v string) *BatchCreateChannelMembershipInput {
	s.ChimeBearer = &v
	return s
}

// SetMemberArns sets the MemberArns field's value.
func (s *BatchCreateChannelMembershipInput) SetMemberArns(v []*string) *BatchCreateChannelMembershipInput {
	s.MemberArns = v
	return s
}

// SetType sets the Type field's value.
func (s *BatchCreateChannelMembershipInput) SetType(v string) *BatchCreateChannelMembershipInput {
	s.Type = &v
	return s
}

type BatchCreateChannelMembershipOutput struct {
	_ struct{} `type:"structure"`

	// The list of channel memberships in the response.
	BatchChannelMemberships *BatchChannelMemberships `type:"structure"`

	// If the action fails for one or more of the memberships in the request, a
	// list of the memberships is returned, along with error codes and error messages.
	Errors []*BatchCreateChannelMembershipError `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateChannelMembershipOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateChannelMembershipOutput) GoString() string {
	return s.String()
}

// SetBatchChannelMemberships sets the BatchChannelMemberships field's value.
func (s *BatchCreateChannelMembershipOutput) SetBatchChannelMemberships(v *BatchChannelMemberships) *BatchCreateChannelMembershipOutput {
	s.BatchChannelMemberships = v
	return s
}

// SetErrors sets the Errors field's value.
func (s *BatchCreateChannelMembershipOutput) SetErrors(v []*BatchCreateChannelMembershipError) *BatchCreateChannelMembershipOutput {
	s.Errors = v
	return s
}

type BatchCreateRoomMembershipInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The list of membership items.
	//
	// MembershipItemList is a required field
	MembershipItemList []*MembershipItem `type:"list" required:"true"`

	// The room ID.
	//
	// RoomId is a required field
	RoomId *string `location:"uri" locationName:"roomId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateRoomMembershipInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateRoomMembershipInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BatchCreateRoomMembershipInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BatchCreateRoomMembershipInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.MembershipItemList == nil {
		invalidParams.Add(request.NewErrParamRequired("MembershipItemList"))
	}
	if s.RoomId == nil {
		invalidParams.Add(request.NewErrParamRequired("RoomId"))
	}
	if s.RoomId != nil && len(*s.RoomId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RoomId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *BatchCreateRoomMembershipInput) SetAccountId(v string) *BatchCreateRoomMembershipInput {
	s.AccountId = &v
	return s
}

// SetMembershipItemList sets the MembershipItemList field's value.
func (s *BatchCreateRoomMembershipInput) SetMembershipItemList(v []*MembershipItem) *BatchCreateRoomMembershipInput {
	s.MembershipItemList = v
	return s
}

// SetRoomId sets the RoomId field's value.
func (s *BatchCreateRoomMembershipInput) SetRoomId(v string) *BatchCreateRoomMembershipInput {
	s.RoomId = &v
	return s
}

type BatchCreateRoomMembershipOutput struct {
	_ struct{} `type:"structure"`

	// If the action fails for one or more of the member IDs in the request, a list
	// of the member IDs is returned, along with error codes and error messages.
	Errors []*MemberError `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateRoomMembershipOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchCreateRoomMembershipOutput) GoString() string {
	return s.String()
}

// SetErrors sets the Errors field's value.
func (s *BatchCreateRoomMembershipOutput) SetErrors(v []*MemberError) *BatchCreateRoomMembershipOutput {
	s.Errors = v
	return s
}

type BatchDeletePhoneNumberInput struct {
	_ struct{} `type:"structure"`

	// List of phone number IDs.
	//
	// PhoneNumberIds is a required field
	PhoneNumberIds []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDeletePhoneNumberInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDeletePhoneNumberInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BatchDeletePhoneNumberInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BatchDeletePhoneNumberInput"}
	if s.PhoneNumberIds == nil {
		invalidParams.Add(request.NewErrParamRequired("PhoneNumberIds"))
	}
	if s.PhoneNumberIds != nil && len(s.PhoneNumberIds) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PhoneNumberIds", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPhoneNumberIds sets the PhoneNumberIds field's value.
func (s *BatchDeletePhoneNumberInput) SetPhoneNumberIds(v []*string) *BatchDeletePhoneNumberInput {
	s.PhoneNumberIds = v
	return s
}

type BatchDeletePhoneNumberOutput struct {
	_ struct{} `type:"structure"`

	// If the action fails for one or more of the phone numbers in the request,
	// a list of the phone numbers is returned, along with error codes and error
	// messages.
	PhoneNumberErrors []*PhoneNumberError `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDeletePhoneNumberOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDeletePhoneNumberOutput) GoString() string {
	return s.String()
}

// SetPhoneNumberErrors sets the PhoneNumberErrors field's value.
func (s *BatchDeletePhoneNumberOutput) SetPhoneNumberErrors(v []*PhoneNumberError) *BatchDeletePhoneNumberOutput {
	s.PhoneNumberErrors = v
	return s
}

type BatchSuspendUserInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The request containing the user IDs to suspend.
	//
	// UserIdList is a required field
	UserIdList []*string `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchSuspendUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchSuspendUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BatchSuspendUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BatchSuspendUserInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.UserIdList == nil {
		invalidParams.Add(request.NewErrParamRequired("UserIdList"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *BatchSuspendUserInput) SetAccountId(v string) *BatchSuspendUserInput {
	s.AccountId = &v
	return s
}

// SetUserIdList sets the UserIdList field's value.
func (s *BatchSuspendUserInput) SetUserIdList(v []*string) *BatchSuspendUserInput {
	s.UserIdList = v
	return s
}

type BatchSuspendUserOutput struct {
	_ struct{} `type:"structure"`

	// If the BatchSuspendUser action fails for one or more of the user IDs in the
	// request, a list of the user IDs is returned, along with error codes and error
	// messages.
	UserErrors []*UserError `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchSuspendUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchSuspendUserOutput) GoString() string {
	return s.String()
}

// SetUserErrors sets the UserErrors field's value.
func (s *BatchSuspendUserOutput) SetUserErrors(v []*UserError) *BatchSuspendUserOutput {
	s.UserErrors = v
	return s
}

type BatchUnsuspendUserInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The request containing the user IDs to unsuspend.
	//
	// UserIdList is a required field
	UserIdList []*string `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchUnsuspendUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchUnsuspendUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BatchUnsuspendUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BatchUnsuspendUserInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.UserIdList == nil {
		invalidParams.Add(request.NewErrParamRequired("UserIdList"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *BatchUnsuspendUserInput) SetAccountId(v string) *BatchUnsuspendUserInput {
	s.AccountId = &v
	return s
}

// SetUserIdList sets the UserIdList field's value.
func (s *BatchUnsuspendUserInput) SetUserIdList(v []*string) *BatchUnsuspendUserInput {
	s.UserIdList = v
	return s
}

type BatchUnsuspendUserOutput struct {
	_ struct{} `type:"structure"`

	// If the BatchUnsuspendUser action fails for one or more of the user IDs in
	// the request, a list of the user IDs is returned, along with error codes and
	// error messages.
	UserErrors []*UserError `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchUnsuspendUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchUnsuspendUserOutput) GoString() string {
	return s.String()
}

// SetUserErrors sets the UserErrors field's value.
func (s *BatchUnsuspendUserOutput) SetUserErrors(v []*UserError) *BatchUnsuspendUserOutput {
	s.UserErrors = v
	return s
}

type BatchUpdatePhoneNumberInput struct {
	_ struct{} `type:"structure"`

	// The request containing the phone number IDs and product types or calling
	// names to update.
	//
	// UpdatePhoneNumberRequestItems is a required field
	UpdatePhoneNumberRequestItems []*UpdatePhoneNumberRequestItem `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchUpdatePhoneNumberInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchUpdatePhoneNumberInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BatchUpdatePhoneNumberInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BatchUpdatePhoneNumberInput"}
	if s.UpdatePhoneNumberRequestItems == nil {
		invalidParams.Add(request.NewErrParamRequired("UpdatePhoneNumberRequestItems"))
	}
	if s.UpdatePhoneNumberRequestItems != nil {
		for i, v := range s.UpdatePhoneNumberRequestItems {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UpdatePhoneNumberRequestItems", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetUpdatePhoneNumberRequestItems sets the UpdatePhoneNumberRequestItems field's value.
func (s *BatchUpdatePhoneNumberInput) SetUpdatePhoneNumberRequestItems(v []*UpdatePhoneNumberRequestItem) *BatchUpdatePhoneNumberInput {
	s.UpdatePhoneNumberRequestItems = v
	return s
}

type BatchUpdatePhoneNumberOutput struct {
	_ struct{} `type:"structure"`

	// If the action fails for one or more of the phone numbers in the request,
	// a list of the phone numbers is returned, along with error codes and error
	// messages.
	PhoneNumberErrors []*PhoneNumberError `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchUpdatePhoneNumberOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchUpdatePhoneNumberOutput) GoString() string {
	return s.String()
}

// SetPhoneNumberErrors sets the PhoneNumberErrors field's value.
func (s *BatchUpdatePhoneNumberOutput) SetPhoneNumberErrors(v []*PhoneNumberError) *BatchUpdatePhoneNumberOutput {
	s.PhoneNumberErrors = v
	return s
}

type BatchUpdateUserInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The request containing the user IDs and details to update.
	//
	// UpdateUserRequestItems is a required field
	UpdateUserRequestItems []*UpdateUserRequestItem `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchUpdateUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchUpdateUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BatchUpdateUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BatchUpdateUserInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.UpdateUserRequestItems == nil {
		invalidParams.Add(request.NewErrParamRequired("UpdateUserRequestItems"))
	}
	if s.UpdateUserRequestItems != nil {
		for i, v := range s.UpdateUserRequestItems {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UpdateUserRequestItems", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *BatchUpdateUserInput) SetAccountId(v string) *BatchUpdateUserInput {
	s.AccountId = &v
	return s
}

// SetUpdateUserRequestItems sets the UpdateUserRequestItems field's value.
func (s *BatchUpdateUserInput) SetUpdateUserRequestItems(v []*UpdateUserRequestItem) *BatchUpdateUserInput {
	s.UpdateUserRequestItems = v
	return s
}

type BatchUpdateUserOutput struct {
	_ struct{} `type:"structure"`

	// If the BatchUpdateUser action fails for one or more of the user IDs in the
	// request, a list of the user IDs is returned, along with error codes and error
	// messages.
	UserErrors []*UserError `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchUpdateUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchUpdateUserOutput) GoString() string {
	return s.String()
}

// SetUserErrors sets the UserErrors field's value.
func (s *BatchUpdateUserOutput) SetUserErrors(v []*UserError) *BatchUpdateUserOutput {
	s.UserErrors = v
	return s
}

// A resource that allows Enterprise account administrators to configure an
// interface to receive events from Amazon Chime.
type Bot struct {
	_ struct{} `type:"structure"`

	// The bot email address.
	//
	// BotEmail is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Bot's
	// String and GoString methods.
	BotEmail *string `type:"string" sensitive:"true"`

	// The bot ID.
	BotId *string `type:"string"`

	// The bot type.
	BotType *string `type:"string" enum:"BotType"`

	// The bot creation timestamp, in ISO 8601 format.
	CreatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// When true, the bot is stopped from running in your account.
	Disabled *bool `type:"boolean"`

	// The bot display name.
	//
	// DisplayName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Bot's
	// String and GoString methods.
	DisplayName *string `type:"string" sensitive:"true"`

	// The security token used to authenticate Amazon Chime with the outgoing event
	// endpoint.
	//
	// SecurityToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Bot's
	// String and GoString methods.
	SecurityToken *string `type:"string" sensitive:"true"`

	// The updated bot timestamp, in ISO 8601 format.
	UpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The unique ID for the bot user.
	UserId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Bot) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Bot) GoString() string {
	return s.String()
}

// SetBotEmail sets the BotEmail field's value.
func (s *Bot) SetBotEmail(v string) *Bot {
	s.BotEmail = &v
	return s
}

// SetBotId sets the BotId field's value.
func (s *Bot) SetBotId(v string) *Bot {
	s.BotId = &v
	return s
}

// SetBotType sets the BotType field's value.
func (s *Bot) SetBotType(v string) *Bot {
	s.BotType = &v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *Bot) SetCreatedTimestamp(v time.Time) *Bot {
	s.CreatedTimestamp = &v
	return s
}

// SetDisabled sets the Disabled field's value.
func (s *Bot) SetDisabled(v bool) *Bot {
	s.Disabled = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *Bot) SetDisplayName(v string) *Bot {
	s.DisplayName = &v
	return s
}

// SetSecurityToken sets the SecurityToken field's value.
func (s *Bot) SetSecurityToken(v string) *Bot {
	s.SecurityToken = &v
	return s
}

// SetUpdatedTimestamp sets the UpdatedTimestamp field's value.
func (s *Bot) SetUpdatedTimestamp(v time.Time) *Bot {
	s.UpdatedTimestamp = &v
	return s
}

// SetUserId sets the UserId field's value.
func (s *Bot) SetUserId(v string) *Bot {
	s.UserId = &v
	return s
}

// The Amazon Chime Business Calling settings for the administrator's AWS account.
// Includes any Amazon S3 buckets designated for storing call detail records.
type BusinessCallingSettings struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 bucket designated for call detail record storage.
	CdrBucket *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BusinessCallingSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BusinessCallingSettings) GoString() string {
	return s.String()
}

// SetCdrBucket sets the CdrBucket field's value.
func (s *BusinessCallingSettings) SetCdrBucket(v string) *BusinessCallingSettings {
	s.CdrBucket = &v
	return s
}

// A suggested address.
type CandidateAddress struct {
	_ struct{} `type:"structure"`

	// The city of a candidate address.
	//
	// City is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CandidateAddress's
	// String and GoString methods.
	City *string `locationName:"city" type:"string" sensitive:"true"`

	// The country of a candidate address.
	//
	// Country is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CandidateAddress's
	// String and GoString methods.
	Country *string `locationName:"country" type:"string" sensitive:"true"`

	// The postal code of a candidate address.
	//
	// PostalCode is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CandidateAddress's
	// String and GoString methods.
	PostalCode *string `locationName:"postalCode" type:"string" sensitive:"true"`

	// The Zip + 4 or postal code + 4 of a candidate address.
	//
	// PostalCodePlus4 is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CandidateAddress's
	// String and GoString methods.
	PostalCodePlus4 *string `locationName:"postalCodePlus4" type:"string" sensitive:"true"`

	// The state of a candidate address.
	//
	// State is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CandidateAddress's
	// String and GoString methods.
	State *string `locationName:"state" type:"string" sensitive:"true"`

	// The street information of a candidate address
	//
	// StreetInfo is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CandidateAddress's
	// String and GoString methods.
	StreetInfo *string `locationName:"streetInfo" type:"string" sensitive:"true"`

	// The numeric portion of a candidate address.
	//
	// StreetNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CandidateAddress's
	// String and GoString methods.
	StreetNumber *string `locationName:"streetNumber" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CandidateAddress) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CandidateAddress) GoString() string {
	return s.String()
}

// SetCity sets the City field's value.
func (s *CandidateAddress) SetCity(v string) *CandidateAddress {
	s.City = &v
	return s
}

// SetCountry sets the Country field's value.
func (s *CandidateAddress) SetCountry(v string) *CandidateAddress {
	s.Country = &v
	return s
}

// SetPostalCode sets the PostalCode field's value.
func (s *CandidateAddress) SetPostalCode(v string) *CandidateAddress {
	s.PostalCode = &v
	return s
}

// SetPostalCodePlus4 sets the PostalCodePlus4 field's value.
func (s *CandidateAddress) SetPostalCodePlus4(v string) *CandidateAddress {
	s.PostalCodePlus4 = &v
	return s
}

// SetState sets the State field's value.
func (s *CandidateAddress) SetState(v string) *CandidateAddress {
	s.State = &v
	return s
}

// SetStreetInfo sets the StreetInfo field's value.
func (s *CandidateAddress) SetStreetInfo(v string) *CandidateAddress {
	s.StreetInfo = &v
	return s
}

// SetStreetNumber sets the StreetNumber field's value.
func (s *CandidateAddress) SetStreetNumber(v string) *CandidateAddress {
	s.StreetNumber = &v
	return s
}

// The details of a channel.
type Channel struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	ChannelArn *string `min:"5" type:"string"`

	// The AppInstanceUser who created the channel.
	CreatedBy *Identity `type:"structure"`

	// The time at which the AppInstanceUser created the channel.
	CreatedTimestamp *time.Time `type:"timestamp"`

	// The time at which a member sent the last message in the channel.
	LastMessageTimestamp *time.Time `type:"timestamp"`

	// The time at which a channel was last updated.
	LastUpdatedTimestamp *time.Time `type:"timestamp"`

	// The channel's metadata.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Channel's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// The mode of the channel.
	Mode *string `type:"string" enum:"ChannelMode"`

	// The name of the channel.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Channel's
	// String and GoString methods.
	Name *string `min:"1" type:"string" sensitive:"true"`

	// The channel's privacy setting.
	Privacy *string `type:"string" enum:"ChannelPrivacy"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Channel) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Channel) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *Channel) SetChannelArn(v string) *Channel {
	s.ChannelArn = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *Channel) SetCreatedBy(v *Identity) *Channel {
	s.CreatedBy = v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *Channel) SetCreatedTimestamp(v time.Time) *Channel {
	s.CreatedTimestamp = &v
	return s
}

// SetLastMessageTimestamp sets the LastMessageTimestamp field's value.
func (s *Channel) SetLastMessageTimestamp(v time.Time) *Channel {
	s.LastMessageTimestamp = &v
	return s
}

// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
func (s *Channel) SetLastUpdatedTimestamp(v time.Time) *Channel {
	s.LastUpdatedTimestamp = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *Channel) SetMetadata(v string) *Channel {
	s.Metadata = &v
	return s
}

// SetMode sets the Mode field's value.
func (s *Channel) SetMode(v string) *Channel {
	s.Mode = &v
	return s
}

// SetName sets the Name field's value.
func (s *Channel) SetName(v string) *Channel {
	s.Name = &v
	return s
}

// SetPrivacy sets the Privacy field's value.
func (s *Channel) SetPrivacy(v string) *Channel {
	s.Privacy = &v
	return s
}

// The details of a channel ban.
type ChannelBan struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel from which a member is being banned.
	ChannelArn *string `min:"5" type:"string"`

	// The AppInstanceUser who created the ban.
	CreatedBy *Identity `type:"structure"`

	// The time at which the ban was created.
	CreatedTimestamp *time.Time `type:"timestamp"`

	// The member being banned from the channel.
	Member *Identity `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelBan) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelBan) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *ChannelBan) SetChannelArn(v string) *ChannelBan {
	s.ChannelArn = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *ChannelBan) SetCreatedBy(v *Identity) *ChannelBan {
	s.CreatedBy = v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *ChannelBan) SetCreatedTimestamp(v time.Time) *ChannelBan {
	s.CreatedTimestamp = &v
	return s
}

// SetMember sets the Member field's value.
func (s *ChannelBan) SetMember(v *Identity) *ChannelBan {
	s.Member = v
	return s
}

// Summary of the details of a ChannelBan.
type ChannelBanSummary struct {
	_ struct{} `type:"structure"`

	// The member being banned from a channel.
	Member *Identity `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelBanSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelBanSummary) GoString() string {
	return s.String()
}

// SetMember sets the Member field's value.
func (s *ChannelBanSummary) SetMember(v *Identity) *ChannelBanSummary {
	s.Member = v
	return s
}

// The details of a channel member.
type ChannelMembership struct {
	_ struct{} `type:"structure"`

	// The ARN of the member's channel.
	ChannelArn *string `min:"5" type:"string"`

	// The time at which the channel membership was created.
	CreatedTimestamp *time.Time `type:"timestamp"`

	// The identifier of the member who invited another member.
	InvitedBy *Identity `type:"structure"`

	// The time at which a channel membership was last updated.
	LastUpdatedTimestamp *time.Time `type:"timestamp"`

	// The data of the channel member.
	Member *Identity `type:"structure"`

	// The membership type set for the channel member.
	Type *string `type:"string" enum:"ChannelMembershipType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelMembership) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelMembership) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *ChannelMembership) SetChannelArn(v string) *ChannelMembership {
	s.ChannelArn = &v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *ChannelMembership) SetCreatedTimestamp(v time.Time) *ChannelMembership {
	s.CreatedTimestamp = &v
	return s
}

// SetInvitedBy sets the InvitedBy field's value.
func (s *ChannelMembership) SetInvitedBy(v *Identity) *ChannelMembership {
	s.InvitedBy = v
	return s
}

// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
func (s *ChannelMembership) SetLastUpdatedTimestamp(v time.Time) *ChannelMembership {
	s.LastUpdatedTimestamp = &v
	return s
}

// SetMember sets the Member field's value.
func (s *ChannelMembership) SetMember(v *Identity) *ChannelMembership {
	s.Member = v
	return s
}

// SetType sets the Type field's value.
func (s *ChannelMembership) SetType(v string) *ChannelMembership {
	s.Type = &v
	return s
}

// Summary of the channel membership details of an AppInstanceUser.
type ChannelMembershipForAppInstanceUserSummary struct {
	_ struct{} `type:"structure"`

	// Summary of the membership details of an AppInstanceUser.
	AppInstanceUserMembershipSummary *AppInstanceUserMembershipSummary `type:"structure"`

	// Summary of the details of a Channel.
	ChannelSummary *ChannelSummary `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelMembershipForAppInstanceUserSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelMembershipForAppInstanceUserSummary) GoString() string {
	return s.String()
}

// SetAppInstanceUserMembershipSummary sets the AppInstanceUserMembershipSummary field's value.
func (s *ChannelMembershipForAppInstanceUserSummary) SetAppInstanceUserMembershipSummary(v *AppInstanceUserMembershipSummary) *ChannelMembershipForAppInstanceUserSummary {
	s.AppInstanceUserMembershipSummary = v
	return s
}

// SetChannelSummary sets the ChannelSummary field's value.
func (s *ChannelMembershipForAppInstanceUserSummary) SetChannelSummary(v *ChannelSummary) *ChannelMembershipForAppInstanceUserSummary {
	s.ChannelSummary = v
	return s
}

// Summary of the details of a ChannelMembership.
type ChannelMembershipSummary struct {
	_ struct{} `type:"structure"`

	// A member's summary data.
	Member *Identity `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelMembershipSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelMembershipSummary) GoString() string {
	return s.String()
}

// SetMember sets the Member field's value.
func (s *ChannelMembershipSummary) SetMember(v *Identity) *ChannelMembershipSummary {
	s.Member = v
	return s
}

// The details of a message in a channel.
type ChannelMessage struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	ChannelArn *string `min:"5" type:"string"`

	// The message content.
	//
	// Content is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ChannelMessage's
	// String and GoString methods.
	Content *string `type:"string" sensitive:"true"`

	// The time at which the message was created.
	CreatedTimestamp *time.Time `type:"timestamp"`

	// The time at which a message was edited.
	LastEditedTimestamp *time.Time `type:"timestamp"`

	// The time at which a message was updated.
	LastUpdatedTimestamp *time.Time `type:"timestamp"`

	// The ID of a message.
	MessageId *string `min:"1" type:"string"`

	// The message metadata.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ChannelMessage's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// The persistence setting for a channel message.
	Persistence *string `type:"string" enum:"ChannelMessagePersistenceType"`

	// Hides the content of a message.
	Redacted *bool `type:"boolean"`

	// The message sender.
	Sender *Identity `type:"structure"`

	// The message type.
	Type *string `type:"string" enum:"ChannelMessageType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelMessage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelMessage) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *ChannelMessage) SetChannelArn(v string) *ChannelMessage {
	s.ChannelArn = &v
	return s
}

// SetContent sets the Content field's value.
func (s *ChannelMessage) SetContent(v string) *ChannelMessage {
	s.Content = &v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *ChannelMessage) SetCreatedTimestamp(v time.Time) *ChannelMessage {
	s.CreatedTimestamp = &v
	return s
}

// SetLastEditedTimestamp sets the LastEditedTimestamp field's value.
func (s *ChannelMessage) SetLastEditedTimestamp(v time.Time) *ChannelMessage {
	s.LastEditedTimestamp = &v
	return s
}

// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
func (s *ChannelMessage) SetLastUpdatedTimestamp(v time.Time) *ChannelMessage {
	s.LastUpdatedTimestamp = &v
	return s
}

// SetMessageId sets the MessageId field's value.
func (s *ChannelMessage) SetMessageId(v string) *ChannelMessage {
	s.MessageId = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *ChannelMessage) SetMetadata(v string) *ChannelMessage {
	s.Metadata = &v
	return s
}

// SetPersistence sets the Persistence field's value.
func (s *ChannelMessage) SetPersistence(v string) *ChannelMessage {
	s.Persistence = &v
	return s
}

// SetRedacted sets the Redacted field's value.
func (s *ChannelMessage) SetRedacted(v bool) *ChannelMessage {
	s.Redacted = &v
	return s
}

// SetSender sets the Sender field's value.
func (s *ChannelMessage) SetSender(v *Identity) *ChannelMessage {
	s.Sender = v
	return s
}

// SetType sets the Type field's value.
func (s *ChannelMessage) SetType(v string) *ChannelMessage {
	s.Type = &v
	return s
}

// Summary of the messages in a Channel.
type ChannelMessageSummary struct {
	_ struct{} `type:"structure"`

	// The content of the message.
	//
	// Content is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ChannelMessageSummary's
	// String and GoString methods.
	Content *string `type:"string" sensitive:"true"`

	// The time at which the message summary was created.
	CreatedTimestamp *time.Time `type:"timestamp"`

	// The time at which a message was last edited.
	LastEditedTimestamp *time.Time `type:"timestamp"`

	// The time at which a message was last updated.
	LastUpdatedTimestamp *time.Time `type:"timestamp"`

	// The ID of the message.
	MessageId *string `min:"1" type:"string"`

	// The metadata of the message.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ChannelMessageSummary's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// Indicates whether a message was redacted.
	Redacted *bool `type:"boolean"`

	// The message sender.
	Sender *Identity `type:"structure"`

	// The type of message.
	Type *string `type:"string" enum:"ChannelMessageType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelMessageSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelMessageSummary) GoString() string {
	return s.String()
}

// SetContent sets the Content field's value.
func (s *ChannelMessageSummary) SetContent(v string) *ChannelMessageSummary {
	s.Content = &v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *ChannelMessageSummary) SetCreatedTimestamp(v time.Time) *ChannelMessageSummary {
	s.CreatedTimestamp = &v
	return s
}

// SetLastEditedTimestamp sets the LastEditedTimestamp field's value.
func (s *ChannelMessageSummary) SetLastEditedTimestamp(v time.Time) *ChannelMessageSummary {
	s.LastEditedTimestamp = &v
	return s
}

// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
func (s *ChannelMessageSummary) SetLastUpdatedTimestamp(v time.Time) *ChannelMessageSummary {
	s.LastUpdatedTimestamp = &v
	return s
}

// SetMessageId sets the MessageId field's value.
func (s *ChannelMessageSummary) SetMessageId(v string) *ChannelMessageSummary {
	s.MessageId = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *ChannelMessageSummary) SetMetadata(v string) *ChannelMessageSummary {
	s.Metadata = &v
	return s
}

// SetRedacted sets the Redacted field's value.
func (s *ChannelMessageSummary) SetRedacted(v bool) *ChannelMessageSummary {
	s.Redacted = &v
	return s
}

// SetSender sets the Sender field's value.
func (s *ChannelMessageSummary) SetSender(v *Identity) *ChannelMessageSummary {
	s.Sender = v
	return s
}

// SetType sets the Type field's value.
func (s *ChannelMessageSummary) SetType(v string) *ChannelMessageSummary {
	s.Type = &v
	return s
}

// Summary of the details of a moderated channel.
type ChannelModeratedByAppInstanceUserSummary struct {
	_ struct{} `type:"structure"`

	// Summary of the details of a Channel.
	ChannelSummary *ChannelSummary `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelModeratedByAppInstanceUserSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelModeratedByAppInstanceUserSummary) GoString() string {
	return s.String()
}

// SetChannelSummary sets the ChannelSummary field's value.
func (s *ChannelModeratedByAppInstanceUserSummary) SetChannelSummary(v *ChannelSummary) *ChannelModeratedByAppInstanceUserSummary {
	s.ChannelSummary = v
	return s
}

// The details of a channel moderator.
type ChannelModerator struct {
	_ struct{} `type:"structure"`

	// The ARN of the moderator's channel.
	ChannelArn *string `min:"5" type:"string"`

	// The AppInstanceUser who created the moderator.
	CreatedBy *Identity `type:"structure"`

	// The time at which the moderator was created.
	CreatedTimestamp *time.Time `type:"timestamp"`

	// The moderator's data.
	Moderator *Identity `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelModerator) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelModerator) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *ChannelModerator) SetChannelArn(v string) *ChannelModerator {
	s.ChannelArn = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *ChannelModerator) SetCreatedBy(v *Identity) *ChannelModerator {
	s.CreatedBy = v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *ChannelModerator) SetCreatedTimestamp(v time.Time) *ChannelModerator {
	s.CreatedTimestamp = &v
	return s
}

// SetModerator sets the Moderator field's value.
func (s *ChannelModerator) SetModerator(v *Identity) *ChannelModerator {
	s.Moderator = v
	return s
}

// Summary of the details of a ChannelModerator.
type ChannelModeratorSummary struct {
	_ struct{} `type:"structure"`

	// The data for a moderator.
	Moderator *Identity `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelModeratorSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelModeratorSummary) GoString() string {
	return s.String()
}

// SetModerator sets the Moderator field's value.
func (s *ChannelModeratorSummary) SetModerator(v *Identity) *ChannelModeratorSummary {
	s.Moderator = v
	return s
}

// The details of the retention settings for a channel.
type ChannelRetentionSettings struct {
	_ struct{} `type:"structure"`

	// The time in days to retain the messages in a channel.
	RetentionDays *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelRetentionSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelRetentionSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ChannelRetentionSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ChannelRetentionSettings"}
	if s.RetentionDays != nil && *s.RetentionDays < 1 {
		invalidParams.Add(request.NewErrParamMinValue("RetentionDays", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetRetentionDays sets the RetentionDays field's value.
func (s *ChannelRetentionSettings) SetRetentionDays(v int64) *ChannelRetentionSettings {
	s.RetentionDays = &v
	return s
}

// Summary of the details of a Channel.
type ChannelSummary struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	ChannelArn *string `min:"5" type:"string"`

	// The time at which the last message in a channel was sent.
	LastMessageTimestamp *time.Time `type:"timestamp"`

	// The metadata of the channel.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ChannelSummary's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// The mode of the channel.
	Mode *string `type:"string" enum:"ChannelMode"`

	// The name of the channel.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ChannelSummary's
	// String and GoString methods.
	Name *string `min:"1" type:"string" sensitive:"true"`

	// The privacy setting of the channel.
	Privacy *string `type:"string" enum:"ChannelPrivacy"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelSummary) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *ChannelSummary) SetChannelArn(v string) *ChannelSummary {
	s.ChannelArn = &v
	return s
}

// SetLastMessageTimestamp sets the LastMessageTimestamp field's value.
func (s *ChannelSummary) SetLastMessageTimestamp(v time.Time) *ChannelSummary {
	s.LastMessageTimestamp = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *ChannelSummary) SetMetadata(v string) *ChannelSummary {
	s.Metadata = &v
	return s
}

// SetMode sets the Mode field's value.
func (s *ChannelSummary) SetMode(v string) *ChannelSummary {
	s.Mode = &v
	return s
}

// SetName sets the Name field's value.
func (s *ChannelSummary) SetName(v string) *ChannelSummary {
	s.Name = &v
	return s
}

// SetPrivacy sets the Privacy field's value.
func (s *ChannelSummary) SetPrivacy(v string) *ChannelSummary {
	s.Privacy = &v
	return s
}

// The configuration object of the Amazon Chime SDK meeting for a specified
// media capture pipeline. SourceType must be ChimeSdkMeeting.
type ChimeSdkMeetingConfiguration struct {
	_ struct{} `type:"structure"`

	// The configuration for the artifacts in an Amazon Chime SDK meeting.
	ArtifactsConfiguration *ArtifactsConfiguration `type:"structure"`

	// The source configuration for a specified media capture pipeline.
	SourceConfiguration *SourceConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChimeSdkMeetingConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChimeSdkMeetingConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ChimeSdkMeetingConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ChimeSdkMeetingConfiguration"}
	if s.ArtifactsConfiguration != nil {
		if err := s.ArtifactsConfiguration.Validate(); err != nil {
			invalidParams.AddNested("ArtifactsConfiguration", err.(request.ErrInvalidParams))
		}
	}
	if s.SourceConfiguration != nil {
		if err := s.SourceConfiguration.Validate(); err != nil {
			invalidParams.AddNested("SourceConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetArtifactsConfiguration sets the ArtifactsConfiguration field's value.
func (s *ChimeSdkMeetingConfiguration) SetArtifactsConfiguration(v *ArtifactsConfiguration) *ChimeSdkMeetingConfiguration {
	s.ArtifactsConfiguration = v
	return s
}

// SetSourceConfiguration sets the SourceConfiguration field's value.
func (s *ChimeSdkMeetingConfiguration) SetSourceConfiguration(v *SourceConfiguration) *ChimeSdkMeetingConfiguration {
	s.SourceConfiguration = v
	return s
}

// The request could not be processed because of conflict in the current state
// of the resource.
type ConflictException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Code_ *string `locationName:"Code" type:"string" enum:"ErrorCode"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConflictException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConflictException) GoString() string {
	return s.String()
}

func newErrorConflictException(v protocol.ResponseMetadata) error {
	return &ConflictException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ConflictException) Code() string {
	return "ConflictException"
}

// Message returns the exception's message.
func (s *ConflictException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ConflictException) OrigErr() error {
	return nil
}

func (s *ConflictException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ConflictException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ConflictException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The content artifact object.
type ContentArtifactsConfiguration struct {
	_ struct{} `type:"structure"`

	// The MUX type of the artifact configuration.
	MuxType *string `type:"string" enum:"ContentMuxType"`

	// Indicates whether the content artifact is enabled or disabled.
	//
	// State is a required field
	State *string `type:"string" required:"true" enum:"ArtifactsState"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContentArtifactsConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContentArtifactsConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ContentArtifactsConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ContentArtifactsConfiguration"}
	if s.State == nil {
		invalidParams.Add(request.NewErrParamRequired("State"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMuxType sets the MuxType field's value.
func (s *ContentArtifactsConfiguration) SetMuxType(v string) *ContentArtifactsConfiguration {
	s.MuxType = &v
	return s
}

// SetState sets the State field's value.
func (s *ContentArtifactsConfiguration) SetState(v string) *ContentArtifactsConfiguration {
	s.State = &v
	return s
}

// The retention settings that determine how long to retain conversation messages
// for an Amazon Chime Enterprise account.
type ConversationRetentionSettings struct {
	_ struct{} `type:"structure"`

	// The number of days for which to retain conversation messages.
	RetentionDays *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConversationRetentionSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConversationRetentionSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ConversationRetentionSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ConversationRetentionSettings"}
	if s.RetentionDays != nil && *s.RetentionDays < 1 {
		invalidParams.Add(request.NewErrParamMinValue("RetentionDays", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetRetentionDays sets the RetentionDays field's value.
func (s *ConversationRetentionSettings) SetRetentionDays(v int64) *ConversationRetentionSettings {
	s.RetentionDays = &v
	return s
}

type CreateAccountInput struct {
	_ struct{} `type:"structure"`

	// The name of the Amazon Chime account.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAccountInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAccountInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAccountInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAccountInput"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *CreateAccountInput) SetName(v string) *CreateAccountInput {
	s.Name = &v
	return s
}

type CreateAccountOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account details.
	Account *Account `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAccountOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAccountOutput) GoString() string {
	return s.String()
}

// SetAccount sets the Account field's value.
func (s *CreateAccountOutput) SetAccount(v *Account) *CreateAccountOutput {
	s.Account = v
	return s
}

type CreateAppInstanceAdminInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the administrator of the current AppInstance.
	//
	// AppInstanceAdminArn is a required field
	AppInstanceAdminArn *string `min:"5" type:"string" required:"true"`

	// The ARN of the AppInstance.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"uri" locationName:"appInstanceArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInstanceAdminInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInstanceAdminInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAppInstanceAdminInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAppInstanceAdminInput"}
	if s.AppInstanceAdminArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceAdminArn"))
	}
	if s.AppInstanceAdminArn != nil && len(*s.AppInstanceAdminArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceAdminArn", 5))
	}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceAdminArn sets the AppInstanceAdminArn field's value.
func (s *CreateAppInstanceAdminInput) SetAppInstanceAdminArn(v string) *CreateAppInstanceAdminInput {
	s.AppInstanceAdminArn = &v
	return s
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *CreateAppInstanceAdminInput) SetAppInstanceArn(v string) *CreateAppInstanceAdminInput {
	s.AppInstanceArn = &v
	return s
}

type CreateAppInstanceAdminOutput struct {
	_ struct{} `type:"structure"`

	// The name and ARN of the admin for the AppInstance.
	AppInstanceAdmin *Identity `type:"structure"`

	// The ARN of the of the admin for the AppInstance.
	AppInstanceArn *string `min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInstanceAdminOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInstanceAdminOutput) GoString() string {
	return s.String()
}

// SetAppInstanceAdmin sets the AppInstanceAdmin field's value.
func (s *CreateAppInstanceAdminOutput) SetAppInstanceAdmin(v *Identity) *CreateAppInstanceAdminOutput {
	s.AppInstanceAdmin = v
	return s
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *CreateAppInstanceAdminOutput) SetAppInstanceArn(v string) *CreateAppInstanceAdminOutput {
	s.AppInstanceArn = &v
	return s
}

type CreateAppInstanceInput struct {
	_ struct{} `type:"structure"`

	// The ClientRequestToken of the AppInstance.
	//
	// ClientRequestToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAppInstanceInput's
	// String and GoString methods.
	ClientRequestToken *string `min:"2" type:"string" idempotencyToken:"true" sensitive:"true"`

	// The metadata of the AppInstance. Limited to a 1KB string in UTF-8.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAppInstanceInput's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// The name of the AppInstance.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAppInstanceInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true" sensitive:"true"`

	// Tags assigned to the AppInstance.
	Tags []*Tag `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInstanceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInstanceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAppInstanceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAppInstanceInput"}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 2))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *CreateAppInstanceInput) SetClientRequestToken(v string) *CreateAppInstanceInput {
	s.ClientRequestToken = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *CreateAppInstanceInput) SetMetadata(v string) *CreateAppInstanceInput {
	s.Metadata = &v
	return s
}

// SetName sets the Name field's value.
func (s *CreateAppInstanceInput) SetName(v string) *CreateAppInstanceInput {
	s.Name = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateAppInstanceInput) SetTags(v []*Tag) *CreateAppInstanceInput {
	s.Tags = v
	return s
}

type CreateAppInstanceOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Number (ARN) of the AppInstance.
	AppInstanceArn *string `min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInstanceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInstanceOutput) GoString() string {
	return s.String()
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *CreateAppInstanceOutput) SetAppInstanceArn(v string) *CreateAppInstanceOutput {
	s.AppInstanceArn = &v
	return s
}

type CreateAppInstanceUserInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the AppInstance request.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `min:"5" type:"string" required:"true"`

	// The user ID of the AppInstance.
	//
	// AppInstanceUserId is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAppInstanceUserInput's
	// String and GoString methods.
	//
	// AppInstanceUserId is a required field
	AppInstanceUserId *string `min:"1" type:"string" required:"true" sensitive:"true"`

	// The token assigned to the user requesting an AppInstance.
	//
	// ClientRequestToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAppInstanceUserInput's
	// String and GoString methods.
	ClientRequestToken *string `min:"2" type:"string" idempotencyToken:"true" sensitive:"true"`

	// The request's metadata. Limited to a 1KB string in UTF-8.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAppInstanceUserInput's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// The user's name.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAppInstanceUserInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true" sensitive:"true"`

	// Tags assigned to the AppInstanceUser.
	Tags []*Tag `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInstanceUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInstanceUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAppInstanceUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAppInstanceUserInput"}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}
	if s.AppInstanceUserId == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceUserId"))
	}
	if s.AppInstanceUserId != nil && len(*s.AppInstanceUserId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceUserId", 1))
	}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 2))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *CreateAppInstanceUserInput) SetAppInstanceArn(v string) *CreateAppInstanceUserInput {
	s.AppInstanceArn = &v
	return s
}

// SetAppInstanceUserId sets the AppInstanceUserId field's value.
func (s *CreateAppInstanceUserInput) SetAppInstanceUserId(v string) *CreateAppInstanceUserInput {
	s.AppInstanceUserId = &v
	return s
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *CreateAppInstanceUserInput) SetClientRequestToken(v string) *CreateAppInstanceUserInput {
	s.ClientRequestToken = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *CreateAppInstanceUserInput) SetMetadata(v string) *CreateAppInstanceUserInput {
	s.Metadata = &v
	return s
}

// SetName sets the Name field's value.
func (s *CreateAppInstanceUserInput) SetName(v string) *CreateAppInstanceUserInput {
	s.Name = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateAppInstanceUserInput) SetTags(v []*Tag) *CreateAppInstanceUserInput {
	s.Tags = v
	return s
}

type CreateAppInstanceUserOutput struct {
	_ struct{} `type:"structure"`

	// The user's ARN.
	AppInstanceUserArn *string `min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInstanceUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInstanceUserOutput) GoString() string {
	return s.String()
}

// SetAppInstanceUserArn sets the AppInstanceUserArn field's value.
func (s *CreateAppInstanceUserOutput) SetAppInstanceUserArn(v string) *CreateAppInstanceUserOutput {
	s.AppInstanceUserArn = &v
	return s
}

// The list of errors returned when errors are encountered during the BatchCreateAttendee
// and CreateAttendee actions. This includes external user IDs, error codes,
// and error messages.
type CreateAttendeeError struct {
	_ struct{} `type:"structure"`

	// The error code.
	ErrorCode *string `type:"string"`

	// The error message.
	ErrorMessage *string `type:"string"`

	// The Amazon Chime SDK external user ID. An idempotency token. Links the attendee
	// to an identity managed by a builder application.
	//
	// ExternalUserId is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAttendeeError's
	// String and GoString methods.
	ExternalUserId *string `min:"2" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAttendeeError) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAttendeeError) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *CreateAttendeeError) SetErrorCode(v string) *CreateAttendeeError {
	s.ErrorCode = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *CreateAttendeeError) SetErrorMessage(v string) *CreateAttendeeError {
	s.ErrorMessage = &v
	return s
}

// SetExternalUserId sets the ExternalUserId field's value.
func (s *CreateAttendeeError) SetExternalUserId(v string) *CreateAttendeeError {
	s.ExternalUserId = &v
	return s
}

type CreateAttendeeInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime SDK external user ID. An idempotency token. Links the attendee
	// to an identity managed by a builder application.
	//
	// ExternalUserId is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAttendeeInput's
	// String and GoString methods.
	//
	// ExternalUserId is a required field
	ExternalUserId *string `min:"2" type:"string" required:"true" sensitive:"true"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`

	// The tag key-value pairs.
	Tags []*Tag `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAttendeeInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAttendeeInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAttendeeInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAttendeeInput"}
	if s.ExternalUserId == nil {
		invalidParams.Add(request.NewErrParamRequired("ExternalUserId"))
	}
	if s.ExternalUserId != nil && len(*s.ExternalUserId) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("ExternalUserId", 2))
	}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}
	if s.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetExternalUserId sets the ExternalUserId field's value.
func (s *CreateAttendeeInput) SetExternalUserId(v string) *CreateAttendeeInput {
	s.ExternalUserId = &v
	return s
}

// SetMeetingId sets the MeetingId field's value.
func (s *CreateAttendeeInput) SetMeetingId(v string) *CreateAttendeeInput {
	s.MeetingId = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateAttendeeInput) SetTags(v []*Tag) *CreateAttendeeInput {
	s.Tags = v
	return s
}

type CreateAttendeeOutput struct {
	_ struct{} `type:"structure"`

	// The attendee information, including attendee ID and join token.
	Attendee *Attendee `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAttendeeOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAttendeeOutput) GoString() string {
	return s.String()
}

// SetAttendee sets the Attendee field's value.
func (s *CreateAttendeeOutput) SetAttendee(v *Attendee) *CreateAttendeeOutput {
	s.Attendee = v
	return s
}

// The Amazon Chime SDK attendee fields to create, used with the BatchCreateAttendee
// action.
type CreateAttendeeRequestItem struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime SDK external user ID. An idempotency token. Links the attendee
	// to an identity managed by a builder application.
	//
	// ExternalUserId is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAttendeeRequestItem's
	// String and GoString methods.
	//
	// ExternalUserId is a required field
	ExternalUserId *string `min:"2" type:"string" required:"true" sensitive:"true"`

	// The tag key-value pairs.
	Tags []*Tag `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAttendeeRequestItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAttendeeRequestItem) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAttendeeRequestItem) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAttendeeRequestItem"}
	if s.ExternalUserId == nil {
		invalidParams.Add(request.NewErrParamRequired("ExternalUserId"))
	}
	if s.ExternalUserId != nil && len(*s.ExternalUserId) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("ExternalUserId", 2))
	}
	if s.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetExternalUserId sets the ExternalUserId field's value.
func (s *CreateAttendeeRequestItem) SetExternalUserId(v string) *CreateAttendeeRequestItem {
	s.ExternalUserId = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateAttendeeRequestItem) SetTags(v []*Tag) *CreateAttendeeRequestItem {
	s.Tags = v
	return s
}

type CreateBotInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The bot display name.
	//
	// DisplayName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateBotInput's
	// String and GoString methods.
	//
	// DisplayName is a required field
	DisplayName *string `type:"string" required:"true" sensitive:"true"`

	// The domain of the Amazon Chime Enterprise account.
	Domain *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateBotInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateBotInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateBotInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateBotInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.DisplayName == nil {
		invalidParams.Add(request.NewErrParamRequired("DisplayName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *CreateBotInput) SetAccountId(v string) *CreateBotInput {
	s.AccountId = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *CreateBotInput) SetDisplayName(v string) *CreateBotInput {
	s.DisplayName = &v
	return s
}

// SetDomain sets the Domain field's value.
func (s *CreateBotInput) SetDomain(v string) *CreateBotInput {
	s.Domain = &v
	return s
}

type CreateBotOutput struct {
	_ struct{} `type:"structure"`

	// The bot details.
	Bot *Bot `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateBotOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateBotOutput) GoString() string {
	return s.String()
}

// SetBot sets the Bot field's value.
func (s *CreateBotOutput) SetBot(v *Bot) *CreateBotOutput {
	s.Bot = v
	return s
}

type CreateChannelBanInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the ban request.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The ARN of the member being banned.
	//
	// MemberArn is a required field
	MemberArn *string `min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelBanInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelBanInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateChannelBanInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateChannelBanInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MemberArn == nil {
		invalidParams.Add(request.NewErrParamRequired("MemberArn"))
	}
	if s.MemberArn != nil && len(*s.MemberArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("MemberArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *CreateChannelBanInput) SetChannelArn(v string) *CreateChannelBanInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *CreateChannelBanInput) SetChimeBearer(v string) *CreateChannelBanInput {
	s.ChimeBearer = &v
	return s
}

// SetMemberArn sets the MemberArn field's value.
func (s *CreateChannelBanInput) SetMemberArn(v string) *CreateChannelBanInput {
	s.MemberArn = &v
	return s
}

type CreateChannelBanOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the response to the ban request.
	ChannelArn *string `min:"5" type:"string"`

	// The ChannelArn and BannedIdentity of the member in the ban response.
	Member *Identity `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelBanOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelBanOutput) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *CreateChannelBanOutput) SetChannelArn(v string) *CreateChannelBanOutput {
	s.ChannelArn = &v
	return s
}

// SetMember sets the Member field's value.
func (s *CreateChannelBanOutput) SetMember(v *Identity) *CreateChannelBanOutput {
	s.Member = v
	return s
}

type CreateChannelInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel request.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The client token for the request. An Idempotency token.
	//
	// ClientRequestToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateChannelInput's
	// String and GoString methods.
	ClientRequestToken *string `min:"2" type:"string" idempotencyToken:"true" sensitive:"true"`

	// The metadata of the creation request. Limited to 1KB and UTF-8.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateChannelInput's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// The channel mode: UNRESTRICTED or RESTRICTED. Administrators, moderators,
	// and channel members can add themselves and other members to unrestricted
	// channels. Only administrators and moderators can add members to restricted
	// channels.
	Mode *string `type:"string" enum:"ChannelMode"`

	// The name of the channel.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateChannelInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true" sensitive:"true"`

	// The channel's privacy level: PUBLIC or PRIVATE. Private channels aren't discoverable
	// by users outside the channel. Public channels are discoverable by anyone
	// in the AppInstance.
	Privacy *string `type:"string" enum:"ChannelPrivacy"`

	// The tags for the creation request.
	Tags []*Tag `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateChannelInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateChannelInput"}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 2))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *CreateChannelInput) SetAppInstanceArn(v string) *CreateChannelInput {
	s.AppInstanceArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *CreateChannelInput) SetChimeBearer(v string) *CreateChannelInput {
	s.ChimeBearer = &v
	return s
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *CreateChannelInput) SetClientRequestToken(v string) *CreateChannelInput {
	s.ClientRequestToken = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *CreateChannelInput) SetMetadata(v string) *CreateChannelInput {
	s.Metadata = &v
	return s
}

// SetMode sets the Mode field's value.
func (s *CreateChannelInput) SetMode(v string) *CreateChannelInput {
	s.Mode = &v
	return s
}

// SetName sets the Name field's value.
func (s *CreateChannelInput) SetName(v string) *CreateChannelInput {
	s.Name = &v
	return s
}

// SetPrivacy sets the Privacy field's value.
func (s *CreateChannelInput) SetPrivacy(v string) *CreateChannelInput {
	s.Privacy = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateChannelInput) SetTags(v []*Tag) *CreateChannelInput {
	s.Tags = v
	return s
}

type CreateChannelMembershipInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel to which you're adding users.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The ARN of the member you want to add to the channel.
	//
	// MemberArn is a required field
	MemberArn *string `min:"5" type:"string" required:"true"`

	// The membership type of a user, DEFAULT or HIDDEN. Default members are always
	// returned as part of ListChannelMemberships. Hidden members are only returned
	// if the type filter in ListChannelMemberships equals HIDDEN. Otherwise hidden
	// members are not returned. This is only supported by moderators.
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"ChannelMembershipType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelMembershipInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelMembershipInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateChannelMembershipInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateChannelMembershipInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MemberArn == nil {
		invalidParams.Add(request.NewErrParamRequired("MemberArn"))
	}
	if s.MemberArn != nil && len(*s.MemberArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("MemberArn", 5))
	}
	if s.Type == nil {
		invalidParams.Add(request.NewErrParamRequired("Type"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *CreateChannelMembershipInput) SetChannelArn(v string) *CreateChannelMembershipInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *CreateChannelMembershipInput) SetChimeBearer(v string) *CreateChannelMembershipInput {
	s.ChimeBearer = &v
	return s
}

// SetMemberArn sets the MemberArn field's value.
func (s *CreateChannelMembershipInput) SetMemberArn(v string) *CreateChannelMembershipInput {
	s.MemberArn = &v
	return s
}

// SetType sets the Type field's value.
func (s *CreateChannelMembershipInput) SetType(v string) *CreateChannelMembershipInput {
	s.Type = &v
	return s
}

type CreateChannelMembershipOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	ChannelArn *string `min:"5" type:"string"`

	// The ARN and metadata of the member being added.
	Member *Identity `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelMembershipOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelMembershipOutput) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *CreateChannelMembershipOutput) SetChannelArn(v string) *CreateChannelMembershipOutput {
	s.ChannelArn = &v
	return s
}

// SetMember sets the Member field's value.
func (s *CreateChannelMembershipOutput) SetMember(v *Identity) *CreateChannelMembershipOutput {
	s.Member = v
	return s
}

type CreateChannelModeratorInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The ARN of the moderator.
	//
	// ChannelModeratorArn is a required field
	ChannelModeratorArn *string `min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelModeratorInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelModeratorInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateChannelModeratorInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateChannelModeratorInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChannelModeratorArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelModeratorArn"))
	}
	if s.ChannelModeratorArn != nil && len(*s.ChannelModeratorArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelModeratorArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *CreateChannelModeratorInput) SetChannelArn(v string) *CreateChannelModeratorInput {
	s.ChannelArn = &v
	return s
}

// SetChannelModeratorArn sets the ChannelModeratorArn field's value.
func (s *CreateChannelModeratorInput) SetChannelModeratorArn(v string) *CreateChannelModeratorInput {
	s.ChannelModeratorArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *CreateChannelModeratorInput) SetChimeBearer(v string) *CreateChannelModeratorInput {
	s.ChimeBearer = &v
	return s
}

type CreateChannelModeratorOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	ChannelArn *string `min:"5" type:"string"`

	// The ARNs of the channel and the moderator.
	ChannelModerator *Identity `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelModeratorOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelModeratorOutput) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *CreateChannelModeratorOutput) SetChannelArn(v string) *CreateChannelModeratorOutput {
	s.ChannelArn = &v
	return s
}

// SetChannelModerator sets the ChannelModerator field's value.
func (s *CreateChannelModeratorOutput) SetChannelModerator(v *Identity) *CreateChannelModeratorOutput {
	s.ChannelModerator = v
	return s
}

type CreateChannelOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	ChannelArn *string `min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateChannelOutput) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *CreateChannelOutput) SetChannelArn(v string) *CreateChannelOutput {
	s.ChannelArn = &v
	return s
}

type CreateMediaCapturePipelineInput struct {
	_ struct{} `type:"structure"`

	// The configuration for a specified media capture pipeline. SourceType must
	// be ChimeSdkMeeting.
	ChimeSdkMeetingConfiguration *ChimeSdkMeetingConfiguration `type:"structure"`

	// The unique identifier for the client request. The token makes the API request
	// idempotent. Use a different token for different media pipeline requests.
	//
	// ClientRequestToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateMediaCapturePipelineInput's
	// String and GoString methods.
	ClientRequestToken *string `min:"2" type:"string" idempotencyToken:"true" sensitive:"true"`

	// The ARN of the sink type.
	//
	// SinkArn is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateMediaCapturePipelineInput's
	// String and GoString methods.
	//
	// SinkArn is a required field
	SinkArn *string `min:"1" type:"string" required:"true" sensitive:"true"`

	// Destination type to which the media artifacts are saved. You must use an
	// S3 bucket.
	//
	// SinkType is a required field
	SinkType *string `type:"string" required:"true" enum:"MediaPipelineSinkType"`

	// ARN of the source from which the media artifacts are captured.
	//
	// SourceArn is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateMediaCapturePipelineInput's
	// String and GoString methods.
	//
	// SourceArn is a required field
	SourceArn *string `min:"1" type:"string" required:"true" sensitive:"true"`

	// Source type from which the media artifacts will be captured. A Chime SDK
	// Meeting is the only supported source.
	//
	// SourceType is a required field
	SourceType *string `type:"string" required:"true" enum:"MediaPipelineSourceType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMediaCapturePipelineInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMediaCapturePipelineInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateMediaCapturePipelineInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateMediaCapturePipelineInput"}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 2))
	}
	if s.SinkArn == nil {
		invalidParams.Add(request.NewErrParamRequired("SinkArn"))
	}
	if s.SinkArn != nil && len(*s.SinkArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SinkArn", 1))
	}
	if s.SinkType == nil {
		invalidParams.Add(request.NewErrParamRequired("SinkType"))
	}
	if s.SourceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("SourceArn"))
	}
	if s.SourceArn != nil && len(*s.SourceArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SourceArn", 1))
	}
	if s.SourceType == nil {
		invalidParams.Add(request.NewErrParamRequired("SourceType"))
	}
	if s.ChimeSdkMeetingConfiguration != nil {
		if err := s.ChimeSdkMeetingConfiguration.Validate(); err != nil {
			invalidParams.AddNested("ChimeSdkMeetingConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChimeSdkMeetingConfiguration sets the ChimeSdkMeetingConfiguration field's value.
func (s *CreateMediaCapturePipelineInput) SetChimeSdkMeetingConfiguration(v *ChimeSdkMeetingConfiguration) *CreateMediaCapturePipelineInput {
	s.ChimeSdkMeetingConfiguration = v
	return s
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *CreateMediaCapturePipelineInput) SetClientRequestToken(v string) *CreateMediaCapturePipelineInput {
	s.ClientRequestToken = &v
	return s
}

// SetSinkArn sets the SinkArn field's value.
func (s *CreateMediaCapturePipelineInput) SetSinkArn(v string) *CreateMediaCapturePipelineInput {
	s.SinkArn = &v
	return s
}

// SetSinkType sets the SinkType field's value.
func (s *CreateMediaCapturePipelineInput) SetSinkType(v string) *CreateMediaCapturePipelineInput {
	s.SinkType = &v
	return s
}

// SetSourceArn sets the SourceArn field's value.
func (s *CreateMediaCapturePipelineInput) SetSourceArn(v string) *CreateMediaCapturePipelineInput {
	s.SourceArn = &v
	return s
}

// SetSourceType sets the SourceType field's value.
func (s *CreateMediaCapturePipelineInput) SetSourceType(v string) *CreateMediaCapturePipelineInput {
	s.SourceType = &v
	return s
}

type CreateMediaCapturePipelineOutput struct {
	_ struct{} `type:"structure"`

	// A media capture pipeline object, the ID, source type, source ARN, sink type,
	// and sink ARN of a media capture pipeline object.
	MediaCapturePipeline *MediaCapturePipeline `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMediaCapturePipelineOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMediaCapturePipelineOutput) GoString() string {
	return s.String()
}

// SetMediaCapturePipeline sets the MediaCapturePipeline field's value.
func (s *CreateMediaCapturePipelineOutput) SetMediaCapturePipeline(v *MediaCapturePipeline) *CreateMediaCapturePipelineOutput {
	s.MediaCapturePipeline = v
	return s
}

type CreateMeetingDialOutInput struct {
	_ struct{} `type:"structure"`

	// Phone number used as the caller ID when the remote party receives a call.
	//
	// FromPhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateMeetingDialOutInput's
	// String and GoString methods.
	//
	// FromPhoneNumber is a required field
	FromPhoneNumber *string `type:"string" required:"true" sensitive:"true"`

	// Token used by the Amazon Chime SDK attendee. Call the CreateAttendee (https://docs.aws.amazon.com/chime/latest/APIReference/API_CreateAttendee.html)
	// action to get a join token.
	//
	// JoinToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateMeetingDialOutInput's
	// String and GoString methods.
	//
	// JoinToken is a required field
	JoinToken *string `min:"2" type:"string" required:"true" sensitive:"true"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`

	// Phone number called when inviting someone to a meeting.
	//
	// ToPhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateMeetingDialOutInput's
	// String and GoString methods.
	//
	// ToPhoneNumber is a required field
	ToPhoneNumber *string `type:"string" required:"true" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMeetingDialOutInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMeetingDialOutInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateMeetingDialOutInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateMeetingDialOutInput"}
	if s.FromPhoneNumber == nil {
		invalidParams.Add(request.NewErrParamRequired("FromPhoneNumber"))
	}
	if s.JoinToken == nil {
		invalidParams.Add(request.NewErrParamRequired("JoinToken"))
	}
	if s.JoinToken != nil && len(*s.JoinToken) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("JoinToken", 2))
	}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}
	if s.ToPhoneNumber == nil {
		invalidParams.Add(request.NewErrParamRequired("ToPhoneNumber"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFromPhoneNumber sets the FromPhoneNumber field's value.
func (s *CreateMeetingDialOutInput) SetFromPhoneNumber(v string) *CreateMeetingDialOutInput {
	s.FromPhoneNumber = &v
	return s
}

// SetJoinToken sets the JoinToken field's value.
func (s *CreateMeetingDialOutInput) SetJoinToken(v string) *CreateMeetingDialOutInput {
	s.JoinToken = &v
	return s
}

// SetMeetingId sets the MeetingId field's value.
func (s *CreateMeetingDialOutInput) SetMeetingId(v string) *CreateMeetingDialOutInput {
	s.MeetingId = &v
	return s
}

// SetToPhoneNumber sets the ToPhoneNumber field's value.
func (s *CreateMeetingDialOutInput) SetToPhoneNumber(v string) *CreateMeetingDialOutInput {
	s.ToPhoneNumber = &v
	return s
}

type CreateMeetingDialOutOutput struct {
	_ struct{} `type:"structure"`

	// Unique ID that tracks API calls.
	TransactionId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMeetingDialOutOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMeetingDialOutOutput) GoString() string {
	return s.String()
}

// SetTransactionId sets the TransactionId field's value.
func (s *CreateMeetingDialOutOutput) SetTransactionId(v string) *CreateMeetingDialOutOutput {
	s.TransactionId = &v
	return s
}

type CreateMeetingInput struct {
	_ struct{} `type:"structure"`

	// The unique identifier for the client request. Use a different token for different
	// meetings.
	//
	// ClientRequestToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateMeetingInput's
	// String and GoString methods.
	ClientRequestToken *string `min:"2" type:"string" idempotencyToken:"true" sensitive:"true"`

	// The external meeting ID.
	//
	// ExternalMeetingId is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateMeetingInput's
	// String and GoString methods.
	ExternalMeetingId *string `min:"2" type:"string" sensitive:"true"`

	// The Region in which to create the meeting. Default: us-east-1.
	//
	// Available values: af-south-1 , ap-northeast-1 , ap-northeast-2 , ap-south-1
	// , ap-southeast-1 , ap-southeast-2 , ca-central-1 , eu-central-1 , eu-north-1
	// , eu-south-1 , eu-west-1 , eu-west-2 , eu-west-3 , sa-east-1 , us-east-1
	// , us-east-2 , us-west-1 , us-west-2 .
	MediaRegion *string `type:"string"`

	// Reserved.
	//
	// MeetingHostId is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateMeetingInput's
	// String and GoString methods.
	MeetingHostId *string `min:"2" type:"string" sensitive:"true"`

	// The configuration for resource targets to receive notifications when meeting
	// and attendee events occur.
	NotificationsConfiguration *MeetingNotificationConfiguration `type:"structure"`

	// The tag key-value pairs.
	Tags []*Tag `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMeetingInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMeetingInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateMeetingInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateMeetingInput"}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 2))
	}
	if s.ExternalMeetingId != nil && len(*s.ExternalMeetingId) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("ExternalMeetingId", 2))
	}
	if s.MeetingHostId != nil && len(*s.MeetingHostId) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingHostId", 2))
	}
	if s.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}
	if s.NotificationsConfiguration != nil {
		if err := s.NotificationsConfiguration.Validate(); err != nil {
			invalidParams.AddNested("NotificationsConfiguration", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *CreateMeetingInput) SetClientRequestToken(v string) *CreateMeetingInput {
	s.ClientRequestToken = &v
	return s
}

// SetExternalMeetingId sets the ExternalMeetingId field's value.
func (s *CreateMeetingInput) SetExternalMeetingId(v string) *CreateMeetingInput {
	s.ExternalMeetingId = &v
	return s
}

// SetMediaRegion sets the MediaRegion field's value.
func (s *CreateMeetingInput) SetMediaRegion(v string) *CreateMeetingInput {
	s.MediaRegion = &v
	return s
}

// SetMeetingHostId sets the MeetingHostId field's value.
func (s *CreateMeetingInput) SetMeetingHostId(v string) *CreateMeetingInput {
	s.MeetingHostId = &v
	return s
}

// SetNotificationsConfiguration sets the NotificationsConfiguration field's value.
func (s *CreateMeetingInput) SetNotificationsConfiguration(v *MeetingNotificationConfiguration) *CreateMeetingInput {
	s.NotificationsConfiguration = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateMeetingInput) SetTags(v []*Tag) *CreateMeetingInput {
	s.Tags = v
	return s
}

type CreateMeetingOutput struct {
	_ struct{} `type:"structure"`

	// The meeting information, including the meeting ID and MediaPlacement .
	Meeting *Meeting `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMeetingOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMeetingOutput) GoString() string {
	return s.String()
}

// SetMeeting sets the Meeting field's value.
func (s *CreateMeetingOutput) SetMeeting(v *Meeting) *CreateMeetingOutput {
	s.Meeting = v
	return s
}

type CreateMeetingWithAttendeesInput struct {
	_ struct{} `type:"structure"`

	// The request containing the attendees to create.
	Attendees []*CreateAttendeeRequestItem `min:"1" type:"list"`

	// The unique identifier for the client request. Use a different token for different
	// meetings.
	//
	// ClientRequestToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateMeetingWithAttendeesInput's
	// String and GoString methods.
	ClientRequestToken *string `min:"2" type:"string" idempotencyToken:"true" sensitive:"true"`

	// The external meeting ID.
	//
	// ExternalMeetingId is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateMeetingWithAttendeesInput's
	// String and GoString methods.
	ExternalMeetingId *string `min:"2" type:"string" sensitive:"true"`

	// The Region in which to create the meeting. Default: us-east-1 .
	//
	// Available values: af-south-1 , ap-northeast-1 , ap-northeast-2 , ap-south-1
	// , ap-southeast-1 , ap-southeast-2 , ca-central-1 , eu-central-1 , eu-north-1
	// , eu-south-1 , eu-west-1 , eu-west-2 , eu-west-3 , sa-east-1 , us-east-1
	// , us-east-2 , us-west-1 , us-west-2 .
	MediaRegion *string `type:"string"`

	// Reserved.
	//
	// MeetingHostId is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateMeetingWithAttendeesInput's
	// String and GoString methods.
	MeetingHostId *string `min:"2" type:"string" sensitive:"true"`

	// The resource target configurations for receiving Amazon Chime SDK meeting
	// and attendee event notifications. The Amazon Chime SDK supports resource
	// targets located in the US East (N. Virginia) AWS Region (us-east-1).
	NotificationsConfiguration *MeetingNotificationConfiguration `type:"structure"`

	// The tag key-value pairs.
	Tags []*Tag `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMeetingWithAttendeesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMeetingWithAttendeesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateMeetingWithAttendeesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateMeetingWithAttendeesInput"}
	if s.Attendees != nil && len(s.Attendees) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Attendees", 1))
	}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 2))
	}
	if s.ExternalMeetingId != nil && len(*s.ExternalMeetingId) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("ExternalMeetingId", 2))
	}
	if s.MeetingHostId != nil && len(*s.MeetingHostId) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingHostId", 2))
	}
	if s.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}
	if s.Attendees != nil {
		for i, v := range s.Attendees {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attendees", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.NotificationsConfiguration != nil {
		if err := s.NotificationsConfiguration.Validate(); err != nil {
			invalidParams.AddNested("NotificationsConfiguration", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAttendees sets the Attendees field's value.
func (s *CreateMeetingWithAttendeesInput) SetAttendees(v []*CreateAttendeeRequestItem) *CreateMeetingWithAttendeesInput {
	s.Attendees = v
	return s
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *CreateMeetingWithAttendeesInput) SetClientRequestToken(v string) *CreateMeetingWithAttendeesInput {
	s.ClientRequestToken = &v
	return s
}

// SetExternalMeetingId sets the ExternalMeetingId field's value.
func (s *CreateMeetingWithAttendeesInput) SetExternalMeetingId(v string) *CreateMeetingWithAttendeesInput {
	s.ExternalMeetingId = &v
	return s
}

// SetMediaRegion sets the MediaRegion field's value.
func (s *CreateMeetingWithAttendeesInput) SetMediaRegion(v string) *CreateMeetingWithAttendeesInput {
	s.MediaRegion = &v
	return s
}

// SetMeetingHostId sets the MeetingHostId field's value.
func (s *CreateMeetingWithAttendeesInput) SetMeetingHostId(v string) *CreateMeetingWithAttendeesInput {
	s.MeetingHostId = &v
	return s
}

// SetNotificationsConfiguration sets the NotificationsConfiguration field's value.
func (s *CreateMeetingWithAttendeesInput) SetNotificationsConfiguration(v *MeetingNotificationConfiguration) *CreateMeetingWithAttendeesInput {
	s.NotificationsConfiguration = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateMeetingWithAttendeesInput) SetTags(v []*Tag) *CreateMeetingWithAttendeesInput {
	s.Tags = v
	return s
}

type CreateMeetingWithAttendeesOutput struct {
	_ struct{} `type:"structure"`

	// The attendee information, including attendees IDs and join tokens.
	Attendees []*Attendee `type:"list"`

	// If the action fails for one or more of the attendees in the request, a list
	// of the attendees is returned, along with error codes and error messages.
	Errors []*CreateAttendeeError `type:"list"`

	// A meeting created using the Amazon Chime SDK.
	Meeting *Meeting `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMeetingWithAttendeesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMeetingWithAttendeesOutput) GoString() string {
	return s.String()
}

// SetAttendees sets the Attendees field's value.
func (s *CreateMeetingWithAttendeesOutput) SetAttendees(v []*Attendee) *CreateMeetingWithAttendeesOutput {
	s.Attendees = v
	return s
}

// SetErrors sets the Errors field's value.
func (s *CreateMeetingWithAttendeesOutput) SetErrors(v []*CreateAttendeeError) *CreateMeetingWithAttendeesOutput {
	s.Errors = v
	return s
}

// SetMeeting sets the Meeting field's value.
func (s *CreateMeetingWithAttendeesOutput) SetMeeting(v *Meeting) *CreateMeetingWithAttendeesOutput {
	s.Meeting = v
	return s
}

type CreatePhoneNumberOrderInput struct {
	_ struct{} `type:"structure"`

	// List of phone numbers, in E.164 format.
	//
	// E164PhoneNumbers is a required field
	E164PhoneNumbers []*string `type:"list" required:"true"`

	// The phone number product type.
	//
	// ProductType is a required field
	ProductType *string `type:"string" required:"true" enum:"PhoneNumberProductType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePhoneNumberOrderInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePhoneNumberOrderInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreatePhoneNumberOrderInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreatePhoneNumberOrderInput"}
	if s.E164PhoneNumbers == nil {
		invalidParams.Add(request.NewErrParamRequired("E164PhoneNumbers"))
	}
	if s.ProductType == nil {
		invalidParams.Add(request.NewErrParamRequired("ProductType"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetE164PhoneNumbers sets the E164PhoneNumbers field's value.
func (s *CreatePhoneNumberOrderInput) SetE164PhoneNumbers(v []*string) *CreatePhoneNumberOrderInput {
	s.E164PhoneNumbers = v
	return s
}

// SetProductType sets the ProductType field's value.
func (s *CreatePhoneNumberOrderInput) SetProductType(v string) *CreatePhoneNumberOrderInput {
	s.ProductType = &v
	return s
}

type CreatePhoneNumberOrderOutput struct {
	_ struct{} `type:"structure"`

	// The phone number order details.
	PhoneNumberOrder *PhoneNumberOrder `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePhoneNumberOrderOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePhoneNumberOrderOutput) GoString() string {
	return s.String()
}

// SetPhoneNumberOrder sets the PhoneNumberOrder field's value.
func (s *CreatePhoneNumberOrderOutput) SetPhoneNumberOrder(v *PhoneNumberOrder) *CreatePhoneNumberOrderOutput {
	s.PhoneNumberOrder = v
	return s
}

type CreateProxySessionInput struct {
	_ struct{} `type:"structure"`

	// The proxy session capabilities.
	//
	// Capabilities is a required field
	Capabilities []*string `type:"list" required:"true" enum:"Capability"`

	// The number of minutes allowed for the proxy session.
	ExpiryMinutes *int64 `min:"1" type:"integer"`

	// The preference for matching the country or area code of the proxy phone number
	// with that of the first participant.
	GeoMatchLevel *string `type:"string" enum:"GeoMatchLevel"`

	// The country and area code for the proxy phone number.
	GeoMatchParams *GeoMatchParams `type:"structure"`

	// The name of the proxy session.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateProxySessionInput's
	// String and GoString methods.
	Name *string `type:"string" sensitive:"true"`

	// The preference for proxy phone number reuse, or stickiness, between the same
	// participants across sessions.
	NumberSelectionBehavior *string `type:"string" enum:"NumberSelectionBehavior"`

	// The participant phone numbers.
	//
	// ParticipantPhoneNumbers is a required field
	ParticipantPhoneNumbers []*string `min:"2" type:"list" required:"true"`

	// The Amazon Chime voice connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateProxySessionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateProxySessionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateProxySessionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateProxySessionInput"}
	if s.Capabilities == nil {
		invalidParams.Add(request.NewErrParamRequired("Capabilities"))
	}
	if s.ExpiryMinutes != nil && *s.ExpiryMinutes < 1 {
		invalidParams.Add(request.NewErrParamMinValue("ExpiryMinutes", 1))
	}
	if s.ParticipantPhoneNumbers == nil {
		invalidParams.Add(request.NewErrParamRequired("ParticipantPhoneNumbers"))
	}
	if s.ParticipantPhoneNumbers != nil && len(s.ParticipantPhoneNumbers) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("ParticipantPhoneNumbers", 2))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}
	if s.GeoMatchParams != nil {
		if err := s.GeoMatchParams.Validate(); err != nil {
			invalidParams.AddNested("GeoMatchParams", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCapabilities sets the Capabilities field's value.
func (s *CreateProxySessionInput) SetCapabilities(v []*string) *CreateProxySessionInput {
	s.Capabilities = v
	return s
}

// SetExpiryMinutes sets the ExpiryMinutes field's value.
func (s *CreateProxySessionInput) SetExpiryMinutes(v int64) *CreateProxySessionInput {
	s.ExpiryMinutes = &v
	return s
}

// SetGeoMatchLevel sets the GeoMatchLevel field's value.
func (s *CreateProxySessionInput) SetGeoMatchLevel(v string) *CreateProxySessionInput {
	s.GeoMatchLevel = &v
	return s
}

// SetGeoMatchParams sets the GeoMatchParams field's value.
func (s *CreateProxySessionInput) SetGeoMatchParams(v *GeoMatchParams) *CreateProxySessionInput {
	s.GeoMatchParams = v
	return s
}

// SetName sets the Name field's value.
func (s *CreateProxySessionInput) SetName(v string) *CreateProxySessionInput {
	s.Name = &v
	return s
}

// SetNumberSelectionBehavior sets the NumberSelectionBehavior field's value.
func (s *CreateProxySessionInput) SetNumberSelectionBehavior(v string) *CreateProxySessionInput {
	s.NumberSelectionBehavior = &v
	return s
}

// SetParticipantPhoneNumbers sets the ParticipantPhoneNumbers field's value.
func (s *CreateProxySessionInput) SetParticipantPhoneNumbers(v []*string) *CreateProxySessionInput {
	s.ParticipantPhoneNumbers = v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *CreateProxySessionInput) SetVoiceConnectorId(v string) *CreateProxySessionInput {
	s.VoiceConnectorId = &v
	return s
}

type CreateProxySessionOutput struct {
	_ struct{} `type:"structure"`

	// The proxy session details.
	ProxySession *ProxySession `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateProxySessionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateProxySessionOutput) GoString() string {
	return s.String()
}

// SetProxySession sets the ProxySession field's value.
func (s *CreateProxySessionOutput) SetProxySession(v *ProxySession) *CreateProxySessionOutput {
	s.ProxySession = v
	return s
}

type CreateRoomInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The idempotency token for the request.
	//
	// ClientRequestToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateRoomInput's
	// String and GoString methods.
	ClientRequestToken *string `min:"2" type:"string" idempotencyToken:"true" sensitive:"true"`

	// The room name.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateRoomInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `type:"string" required:"true" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateRoomInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateRoomInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateRoomInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateRoomInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 2))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *CreateRoomInput) SetAccountId(v string) *CreateRoomInput {
	s.AccountId = &v
	return s
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *CreateRoomInput) SetClientRequestToken(v string) *CreateRoomInput {
	s.ClientRequestToken = &v
	return s
}

// SetName sets the Name field's value.
func (s *CreateRoomInput) SetName(v string) *CreateRoomInput {
	s.Name = &v
	return s
}

type CreateRoomMembershipInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The Amazon Chime member ID (user ID or bot ID).
	//
	// MemberId is a required field
	MemberId *string `type:"string" required:"true"`

	// The role of the member.
	Role *string `type:"string" enum:"RoomMembershipRole"`

	// The room ID.
	//
	// RoomId is a required field
	RoomId *string `location:"uri" locationName:"roomId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateRoomMembershipInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateRoomMembershipInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateRoomMembershipInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateRoomMembershipInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.MemberId == nil {
		invalidParams.Add(request.NewErrParamRequired("MemberId"))
	}
	if s.RoomId == nil {
		invalidParams.Add(request.NewErrParamRequired("RoomId"))
	}
	if s.RoomId != nil && len(*s.RoomId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RoomId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *CreateRoomMembershipInput) SetAccountId(v string) *CreateRoomMembershipInput {
	s.AccountId = &v
	return s
}

// SetMemberId sets the MemberId field's value.
func (s *CreateRoomMembershipInput) SetMemberId(v string) *CreateRoomMembershipInput {
	s.MemberId = &v
	return s
}

// SetRole sets the Role field's value.
func (s *CreateRoomMembershipInput) SetRole(v string) *CreateRoomMembershipInput {
	s.Role = &v
	return s
}

// SetRoomId sets the RoomId field's value.
func (s *CreateRoomMembershipInput) SetRoomId(v string) *CreateRoomMembershipInput {
	s.RoomId = &v
	return s
}

type CreateRoomMembershipOutput struct {
	_ struct{} `type:"structure"`

	// The room membership details.
	RoomMembership *RoomMembership `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateRoomMembershipOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateRoomMembershipOutput) GoString() string {
	return s.String()
}

// SetRoomMembership sets the RoomMembership field's value.
func (s *CreateRoomMembershipOutput) SetRoomMembership(v *RoomMembership) *CreateRoomMembershipOutput {
	s.RoomMembership = v
	return s
}

type CreateRoomOutput struct {
	_ struct{} `type:"structure"`

	// The room details.
	Room *Room `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateRoomOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateRoomOutput) GoString() string {
	return s.String()
}

// SetRoom sets the Room field's value.
func (s *CreateRoomOutput) SetRoom(v *Room) *CreateRoomOutput {
	s.Room = v
	return s
}

type CreateSipMediaApplicationCallInput struct {
	_ struct{} `type:"structure"`

	// The phone number that a user calls from. This is a phone number in your Amazon
	// Chime phone number inventory.
	//
	// FromPhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateSipMediaApplicationCallInput's
	// String and GoString methods.
	//
	// FromPhoneNumber is a required field
	FromPhoneNumber *string `type:"string" required:"true" sensitive:"true"`

	// The SIP headers added to an outbound call leg.
	SipHeaders map[string]*string `type:"map"`

	// The ID of the SIP media application.
	//
	// SipMediaApplicationId is a required field
	SipMediaApplicationId *string `location:"uri" locationName:"sipMediaApplicationId" type:"string" required:"true"`

	// The phone number that the service should call.
	//
	// ToPhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateSipMediaApplicationCallInput's
	// String and GoString methods.
	//
	// ToPhoneNumber is a required field
	ToPhoneNumber *string `type:"string" required:"true" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSipMediaApplicationCallInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSipMediaApplicationCallInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateSipMediaApplicationCallInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateSipMediaApplicationCallInput"}
	if s.FromPhoneNumber == nil {
		invalidParams.Add(request.NewErrParamRequired("FromPhoneNumber"))
	}
	if s.SipMediaApplicationId == nil {
		invalidParams.Add(request.NewErrParamRequired("SipMediaApplicationId"))
	}
	if s.SipMediaApplicationId != nil && len(*s.SipMediaApplicationId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SipMediaApplicationId", 1))
	}
	if s.ToPhoneNumber == nil {
		invalidParams.Add(request.NewErrParamRequired("ToPhoneNumber"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFromPhoneNumber sets the FromPhoneNumber field's value.
func (s *CreateSipMediaApplicationCallInput) SetFromPhoneNumber(v string) *CreateSipMediaApplicationCallInput {
	s.FromPhoneNumber = &v
	return s
}

// SetSipHeaders sets the SipHeaders field's value.
func (s *CreateSipMediaApplicationCallInput) SetSipHeaders(v map[string]*string) *CreateSipMediaApplicationCallInput {
	s.SipHeaders = v
	return s
}

// SetSipMediaApplicationId sets the SipMediaApplicationId field's value.
func (s *CreateSipMediaApplicationCallInput) SetSipMediaApplicationId(v string) *CreateSipMediaApplicationCallInput {
	s.SipMediaApplicationId = &v
	return s
}

// SetToPhoneNumber sets the ToPhoneNumber field's value.
func (s *CreateSipMediaApplicationCallInput) SetToPhoneNumber(v string) *CreateSipMediaApplicationCallInput {
	s.ToPhoneNumber = &v
	return s
}

type CreateSipMediaApplicationCallOutput struct {
	_ struct{} `type:"structure"`

	// The actual call.
	SipMediaApplicationCall *SipMediaApplicationCall `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSipMediaApplicationCallOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSipMediaApplicationCallOutput) GoString() string {
	return s.String()
}

// SetSipMediaApplicationCall sets the SipMediaApplicationCall field's value.
func (s *CreateSipMediaApplicationCallOutput) SetSipMediaApplicationCall(v *SipMediaApplicationCall) *CreateSipMediaApplicationCallOutput {
	s.SipMediaApplicationCall = v
	return s
}

type CreateSipMediaApplicationInput struct {
	_ struct{} `type:"structure"`

	// The AWS Region assigned to the SIP media application.
	//
	// AwsRegion is a required field
	AwsRegion *string `type:"string" required:"true"`

	// List of endpoints (Lambda Amazon Resource Names) specified for the SIP media
	// application. Currently, only one endpoint is supported.
	//
	// Endpoints is a required field
	Endpoints []*SipMediaApplicationEndpoint `min:"1" type:"list" required:"true"`

	// The SIP media application name.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSipMediaApplicationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSipMediaApplicationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateSipMediaApplicationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateSipMediaApplicationInput"}
	if s.AwsRegion == nil {
		invalidParams.Add(request.NewErrParamRequired("AwsRegion"))
	}
	if s.Endpoints == nil {
		invalidParams.Add(request.NewErrParamRequired("Endpoints"))
	}
	if s.Endpoints != nil && len(s.Endpoints) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Endpoints", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAwsRegion sets the AwsRegion field's value.
func (s *CreateSipMediaApplicationInput) SetAwsRegion(v string) *CreateSipMediaApplicationInput {
	s.AwsRegion = &v
	return s
}

// SetEndpoints sets the Endpoints field's value.
func (s *CreateSipMediaApplicationInput) SetEndpoints(v []*SipMediaApplicationEndpoint) *CreateSipMediaApplicationInput {
	s.Endpoints = v
	return s
}

// SetName sets the Name field's value.
func (s *CreateSipMediaApplicationInput) SetName(v string) *CreateSipMediaApplicationInput {
	s.Name = &v
	return s
}

type CreateSipMediaApplicationOutput struct {
	_ struct{} `type:"structure"`

	// The SIP media application details.
	SipMediaApplication *SipMediaApplication `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSipMediaApplicationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSipMediaApplicationOutput) GoString() string {
	return s.String()
}

// SetSipMediaApplication sets the SipMediaApplication field's value.
func (s *CreateSipMediaApplicationOutput) SetSipMediaApplication(v *SipMediaApplication) *CreateSipMediaApplicationOutput {
	s.SipMediaApplication = v
	return s
}

type CreateSipRuleInput struct {
	_ struct{} `type:"structure"`

	// Enables or disables a rule. You must disable rules before you can delete
	// them.
	Disabled *bool `type:"boolean"`

	// The name of the SIP rule.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// List of SIP media applications with priority and AWS Region. Only one SIP
	// application per AWS Region can be used.
	//
	// TargetApplications is a required field
	TargetApplications []*SipRuleTargetApplication `min:"1" type:"list" required:"true"`

	// The type of trigger assigned to the SIP rule in TriggerValue, currently RequestUriHostname
	// or ToPhoneNumber.
	//
	// TriggerType is a required field
	TriggerType *string `type:"string" required:"true" enum:"SipRuleTriggerType"`

	// If TriggerType is RequestUriHostname, the value can be the outbound host
	// name of an Amazon Chime Voice Connector. If TriggerType is ToPhoneNumber,
	// the value can be a customer-owned phone number in the E164 format. The SipMediaApplication
	// specified in the SipRule is triggered if the request URI in an incoming SIP
	// request matches the RequestUriHostname, or if the To header in the incoming
	// SIP request matches the ToPhoneNumber value.
	//
	// TriggerValue is a required field
	TriggerValue *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSipRuleInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSipRuleInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateSipRuleInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateSipRuleInput"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.TargetApplications == nil {
		invalidParams.Add(request.NewErrParamRequired("TargetApplications"))
	}
	if s.TargetApplications != nil && len(s.TargetApplications) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TargetApplications", 1))
	}
	if s.TriggerType == nil {
		invalidParams.Add(request.NewErrParamRequired("TriggerType"))
	}
	if s.TriggerValue == nil {
		invalidParams.Add(request.NewErrParamRequired("TriggerValue"))
	}
	if s.TargetApplications != nil {
		for i, v := range s.TargetApplications {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetApplications", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDisabled sets the Disabled field's value.
func (s *CreateSipRuleInput) SetDisabled(v bool) *CreateSipRuleInput {
	s.Disabled = &v
	return s
}

// SetName sets the Name field's value.
func (s *CreateSipRuleInput) SetName(v string) *CreateSipRuleInput {
	s.Name = &v
	return s
}

// SetTargetApplications sets the TargetApplications field's value.
func (s *CreateSipRuleInput) SetTargetApplications(v []*SipRuleTargetApplication) *CreateSipRuleInput {
	s.TargetApplications = v
	return s
}

// SetTriggerType sets the TriggerType field's value.
func (s *CreateSipRuleInput) SetTriggerType(v string) *CreateSipRuleInput {
	s.TriggerType = &v
	return s
}

// SetTriggerValue sets the TriggerValue field's value.
func (s *CreateSipRuleInput) SetTriggerValue(v string) *CreateSipRuleInput {
	s.TriggerValue = &v
	return s
}

type CreateSipRuleOutput struct {
	_ struct{} `type:"structure"`

	// Returns the SIP rule information, including the rule ID, triggers, and target
	// applications.
	SipRule *SipRule `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSipRuleOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSipRuleOutput) GoString() string {
	return s.String()
}

// SetSipRule sets the SipRule field's value.
func (s *CreateSipRuleOutput) SetSipRule(v *SipRule) *CreateSipRuleOutput {
	s.SipRule = v
	return s
}

type CreateUserInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The user's email address.
	//
	// Email is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateUserInput's
	// String and GoString methods.
	Email *string `type:"string" sensitive:"true"`

	// The user type.
	UserType *string `type:"string" enum:"UserType"`

	// The user name.
	Username *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateUserInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *CreateUserInput) SetAccountId(v string) *CreateUserInput {
	s.AccountId = &v
	return s
}

// SetEmail sets the Email field's value.
func (s *CreateUserInput) SetEmail(v string) *CreateUserInput {
	s.Email = &v
	return s
}

// SetUserType sets the UserType field's value.
func (s *CreateUserInput) SetUserType(v string) *CreateUserInput {
	s.UserType = &v
	return s
}

// SetUsername sets the Username field's value.
func (s *CreateUserInput) SetUsername(v string) *CreateUserInput {
	s.Username = &v
	return s
}

type CreateUserOutput struct {
	_ struct{} `type:"structure"`

	// The user on the Amazon Chime account.
	User *User `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateUserOutput) GoString() string {
	return s.String()
}

// SetUser sets the User field's value.
func (s *CreateUserOutput) SetUser(v *User) *CreateUserOutput {
	s.User = v
	return s
}

type CreateVoiceConnectorGroupInput struct {
	_ struct{} `type:"structure"`

	// The name of the Amazon Chime Voice Connector group.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The Amazon Chime Voice Connectors to route inbound calls to.
	VoiceConnectorItems []*VoiceConnectorItem `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateVoiceConnectorGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateVoiceConnectorGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateVoiceConnectorGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateVoiceConnectorGroupInput"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.VoiceConnectorItems != nil {
		for i, v := range s.VoiceConnectorItems {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "VoiceConnectorItems", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *CreateVoiceConnectorGroupInput) SetName(v string) *CreateVoiceConnectorGroupInput {
	s.Name = &v
	return s
}

// SetVoiceConnectorItems sets the VoiceConnectorItems field's value.
func (s *CreateVoiceConnectorGroupInput) SetVoiceConnectorItems(v []*VoiceConnectorItem) *CreateVoiceConnectorGroupInput {
	s.VoiceConnectorItems = v
	return s
}

type CreateVoiceConnectorGroupOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime Voice Connector group details.
	VoiceConnectorGroup *VoiceConnectorGroup `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateVoiceConnectorGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateVoiceConnectorGroupOutput) GoString() string {
	return s.String()
}

// SetVoiceConnectorGroup sets the VoiceConnectorGroup field's value.
func (s *CreateVoiceConnectorGroupOutput) SetVoiceConnectorGroup(v *VoiceConnectorGroup) *CreateVoiceConnectorGroupOutput {
	s.VoiceConnectorGroup = v
	return s
}

type CreateVoiceConnectorInput struct {
	_ struct{} `type:"structure"`

	// The AWS Region in which the Amazon Chime Voice Connector is created. Default
	// value: us-east-1 .
	AwsRegion *string `type:"string" enum:"VoiceConnectorAwsRegion"`

	// The name of the Amazon Chime Voice Connector.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// When enabled, requires encryption for the Amazon Chime Voice Connector.
	//
	// RequireEncryption is a required field
	RequireEncryption *bool `type:"boolean" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateVoiceConnectorInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateVoiceConnectorInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateVoiceConnectorInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateVoiceConnectorInput"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.RequireEncryption == nil {
		invalidParams.Add(request.NewErrParamRequired("RequireEncryption"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAwsRegion sets the AwsRegion field's value.
func (s *CreateVoiceConnectorInput) SetAwsRegion(v string) *CreateVoiceConnectorInput {
	s.AwsRegion = &v
	return s
}

// SetName sets the Name field's value.
func (s *CreateVoiceConnectorInput) SetName(v string) *CreateVoiceConnectorInput {
	s.Name = &v
	return s
}

// SetRequireEncryption sets the RequireEncryption field's value.
func (s *CreateVoiceConnectorInput) SetRequireEncryption(v bool) *CreateVoiceConnectorInput {
	s.RequireEncryption = &v
	return s
}

type CreateVoiceConnectorOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime Voice Connector details.
	VoiceConnector *VoiceConnector `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateVoiceConnectorOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateVoiceConnectorOutput) GoString() string {
	return s.String()
}

// SetVoiceConnector sets the VoiceConnector field's value.
func (s *CreateVoiceConnectorOutput) SetVoiceConnector(v *VoiceConnector) *CreateVoiceConnectorOutput {
	s.VoiceConnector = v
	return s
}

// The SIP credentials used to authenticate requests to your Amazon Chime Voice
// Connector.
type Credential struct {
	_ struct{} `type:"structure"`

	// The RFC2617 compliant password associated with the SIP credentials, in US-ASCII
	// format.
	//
	// Password is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Credential's
	// String and GoString methods.
	Password *string `type:"string" sensitive:"true"`

	// The RFC2617 compliant user name associated with the SIP credentials, in US-ASCII
	// format.
	//
	// Username is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Credential's
	// String and GoString methods.
	Username *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Credential) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Credential) GoString() string {
	return s.String()
}

// SetPassword sets the Password field's value.
func (s *Credential) SetPassword(v string) *Credential {
	s.Password = &v
	return s
}

// SetUsername sets the Username field's value.
func (s *Credential) SetUsername(v string) *Credential {
	s.Username = &v
	return s
}

// The Dialed Number Identification Service (DNIS) emergency calling configuration
// details associated with an Amazon Chime Voice Connector's emergency calling
// configuration.
type DNISEmergencyCallingConfiguration struct {
	_ struct{} `type:"structure"`

	// The country from which emergency calls are allowed, in ISO 3166-1 alpha-2
	// format.
	//
	// CallingCountry is a required field
	CallingCountry *string `type:"string" required:"true"`

	// The DNIS phone number to route emergency calls to, in E.164 format.
	//
	// EmergencyPhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DNISEmergencyCallingConfiguration's
	// String and GoString methods.
	//
	// EmergencyPhoneNumber is a required field
	EmergencyPhoneNumber *string `type:"string" required:"true" sensitive:"true"`

	// The DNIS phone number to route test emergency calls to, in E.164 format.
	//
	// TestPhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DNISEmergencyCallingConfiguration's
	// String and GoString methods.
	TestPhoneNumber *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DNISEmergencyCallingConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DNISEmergencyCallingConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DNISEmergencyCallingConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DNISEmergencyCallingConfiguration"}
	if s.CallingCountry == nil {
		invalidParams.Add(request.NewErrParamRequired("CallingCountry"))
	}
	if s.EmergencyPhoneNumber == nil {
		invalidParams.Add(request.NewErrParamRequired("EmergencyPhoneNumber"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCallingCountry sets the CallingCountry field's value.
func (s *DNISEmergencyCallingConfiguration) SetCallingCountry(v string) *DNISEmergencyCallingConfiguration {
	s.CallingCountry = &v
	return s
}

// SetEmergencyPhoneNumber sets the EmergencyPhoneNumber field's value.
func (s *DNISEmergencyCallingConfiguration) SetEmergencyPhoneNumber(v string) *DNISEmergencyCallingConfiguration {
	s.EmergencyPhoneNumber = &v
	return s
}

// SetTestPhoneNumber sets the TestPhoneNumber field's value.
func (s *DNISEmergencyCallingConfiguration) SetTestPhoneNumber(v string) *DNISEmergencyCallingConfiguration {
	s.TestPhoneNumber = &v
	return s
}

type DeleteAccountInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAccountInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAccountInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAccountInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteAccountInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *DeleteAccountInput) SetAccountId(v string) *DeleteAccountInput {
	s.AccountId = &v
	return s
}

type DeleteAccountOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAccountOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAccountOutput) GoString() string {
	return s.String()
}

type DeleteAppInstanceAdminInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the AppInstance's administrator.
	//
	// AppInstanceAdminArn is a required field
	AppInstanceAdminArn *string `location:"uri" locationName:"appInstanceAdminArn" min:"5" type:"string" required:"true"`

	// The ARN of the AppInstance.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"uri" locationName:"appInstanceArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceAdminInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceAdminInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAppInstanceAdminInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteAppInstanceAdminInput"}
	if s.AppInstanceAdminArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceAdminArn"))
	}
	if s.AppInstanceAdminArn != nil && len(*s.AppInstanceAdminArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceAdminArn", 5))
	}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceAdminArn sets the AppInstanceAdminArn field's value.
func (s *DeleteAppInstanceAdminInput) SetAppInstanceAdminArn(v string) *DeleteAppInstanceAdminInput {
	s.AppInstanceAdminArn = &v
	return s
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *DeleteAppInstanceAdminInput) SetAppInstanceArn(v string) *DeleteAppInstanceAdminInput {
	s.AppInstanceArn = &v
	return s
}

type DeleteAppInstanceAdminOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceAdminOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceAdminOutput) GoString() string {
	return s.String()
}

type DeleteAppInstanceInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the AppInstance.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"uri" locationName:"appInstanceArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAppInstanceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteAppInstanceInput"}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *DeleteAppInstanceInput) SetAppInstanceArn(v string) *DeleteAppInstanceInput {
	s.AppInstanceArn = &v
	return s
}

type DeleteAppInstanceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceOutput) GoString() string {
	return s.String()
}

type DeleteAppInstanceStreamingConfigurationsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the streaming configurations being deleted.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"uri" locationName:"appInstanceArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceStreamingConfigurationsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceStreamingConfigurationsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAppInstanceStreamingConfigurationsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteAppInstanceStreamingConfigurationsInput"}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *DeleteAppInstanceStreamingConfigurationsInput) SetAppInstanceArn(v string) *DeleteAppInstanceStreamingConfigurationsInput {
	s.AppInstanceArn = &v
	return s
}

type DeleteAppInstanceStreamingConfigurationsOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceStreamingConfigurationsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceStreamingConfigurationsOutput) GoString() string {
	return s.String()
}

type DeleteAppInstanceUserInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the user request being deleted.
	//
	// AppInstanceUserArn is a required field
	AppInstanceUserArn *string `location:"uri" locationName:"appInstanceUserArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAppInstanceUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteAppInstanceUserInput"}
	if s.AppInstanceUserArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceUserArn"))
	}
	if s.AppInstanceUserArn != nil && len(*s.AppInstanceUserArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceUserArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceUserArn sets the AppInstanceUserArn field's value.
func (s *DeleteAppInstanceUserInput) SetAppInstanceUserArn(v string) *DeleteAppInstanceUserInput {
	s.AppInstanceUserArn = &v
	return s
}

type DeleteAppInstanceUserOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInstanceUserOutput) GoString() string {
	return s.String()
}

type DeleteAttendeeInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime SDK attendee ID.
	//
	// AttendeeId is a required field
	AttendeeId *string `location:"uri" locationName:"attendeeId" type:"string" required:"true"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAttendeeInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAttendeeInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAttendeeInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteAttendeeInput"}
	if s.AttendeeId == nil {
		invalidParams.Add(request.NewErrParamRequired("AttendeeId"))
	}
	if s.AttendeeId != nil && len(*s.AttendeeId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AttendeeId", 1))
	}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAttendeeId sets the AttendeeId field's value.
func (s *DeleteAttendeeInput) SetAttendeeId(v string) *DeleteAttendeeInput {
	s.AttendeeId = &v
	return s
}

// SetMeetingId sets the MeetingId field's value.
func (s *DeleteAttendeeInput) SetMeetingId(v string) *DeleteAttendeeInput {
	s.MeetingId = &v
	return s
}

type DeleteAttendeeOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAttendeeOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAttendeeOutput) GoString() string {
	return s.String()
}

type DeleteChannelBanInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel from which the AppInstanceUser was banned.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The ARN of the AppInstanceUser that you want to reinstate.
	//
	// MemberArn is a required field
	MemberArn *string `location:"uri" locationName:"memberArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelBanInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelBanInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteChannelBanInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteChannelBanInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MemberArn == nil {
		invalidParams.Add(request.NewErrParamRequired("MemberArn"))
	}
	if s.MemberArn != nil && len(*s.MemberArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("MemberArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *DeleteChannelBanInput) SetChannelArn(v string) *DeleteChannelBanInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *DeleteChannelBanInput) SetChimeBearer(v string) *DeleteChannelBanInput {
	s.ChimeBearer = &v
	return s
}

// SetMemberArn sets the MemberArn field's value.
func (s *DeleteChannelBanInput) SetMemberArn(v string) *DeleteChannelBanInput {
	s.MemberArn = &v
	return s
}

type DeleteChannelBanOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelBanOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelBanOutput) GoString() string {
	return s.String()
}

type DeleteChannelInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel being deleted.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteChannelInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteChannelInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *DeleteChannelInput) SetChannelArn(v string) *DeleteChannelInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *DeleteChannelInput) SetChimeBearer(v string) *DeleteChannelInput {
	s.ChimeBearer = &v
	return s
}

type DeleteChannelMembershipInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel from which you want to remove the user.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The ARN of the member that you're removing from the channel.
	//
	// MemberArn is a required field
	MemberArn *string `location:"uri" locationName:"memberArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelMembershipInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelMembershipInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteChannelMembershipInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteChannelMembershipInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MemberArn == nil {
		invalidParams.Add(request.NewErrParamRequired("MemberArn"))
	}
	if s.MemberArn != nil && len(*s.MemberArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("MemberArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *DeleteChannelMembershipInput) SetChannelArn(v string) *DeleteChannelMembershipInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *DeleteChannelMembershipInput) SetChimeBearer(v string) *DeleteChannelMembershipInput {
	s.ChimeBearer = &v
	return s
}

// SetMemberArn sets the MemberArn field's value.
func (s *DeleteChannelMembershipInput) SetMemberArn(v string) *DeleteChannelMembershipInput {
	s.MemberArn = &v
	return s
}

type DeleteChannelMembershipOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelMembershipOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelMembershipOutput) GoString() string {
	return s.String()
}

type DeleteChannelMessageInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The ID of the message being deleted.
	//
	// MessageId is a required field
	MessageId *string `location:"uri" locationName:"messageId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelMessageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelMessageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteChannelMessageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteChannelMessageInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MessageId == nil {
		invalidParams.Add(request.NewErrParamRequired("MessageId"))
	}
	if s.MessageId != nil && len(*s.MessageId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MessageId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *DeleteChannelMessageInput) SetChannelArn(v string) *DeleteChannelMessageInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *DeleteChannelMessageInput) SetChimeBearer(v string) *DeleteChannelMessageInput {
	s.ChimeBearer = &v
	return s
}

// SetMessageId sets the MessageId field's value.
func (s *DeleteChannelMessageInput) SetMessageId(v string) *DeleteChannelMessageInput {
	s.MessageId = &v
	return s
}

type DeleteChannelMessageOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelMessageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelMessageOutput) GoString() string {
	return s.String()
}

type DeleteChannelModeratorInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The ARN of the moderator being deleted.
	//
	// ChannelModeratorArn is a required field
	ChannelModeratorArn *string `location:"uri" locationName:"channelModeratorArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelModeratorInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelModeratorInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteChannelModeratorInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteChannelModeratorInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChannelModeratorArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelModeratorArn"))
	}
	if s.ChannelModeratorArn != nil && len(*s.ChannelModeratorArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelModeratorArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *DeleteChannelModeratorInput) SetChannelArn(v string) *DeleteChannelModeratorInput {
	s.ChannelArn = &v
	return s
}

// SetChannelModeratorArn sets the ChannelModeratorArn field's value.
func (s *DeleteChannelModeratorInput) SetChannelModeratorArn(v string) *DeleteChannelModeratorInput {
	s.ChannelModeratorArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *DeleteChannelModeratorInput) SetChimeBearer(v string) *DeleteChannelModeratorInput {
	s.ChimeBearer = &v
	return s
}

type DeleteChannelModeratorOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelModeratorOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelModeratorOutput) GoString() string {
	return s.String()
}

type DeleteChannelOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteChannelOutput) GoString() string {
	return s.String()
}

type DeleteEventsConfigurationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The bot ID.
	//
	// BotId is a required field
	BotId *string `location:"uri" locationName:"botId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEventsConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEventsConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteEventsConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteEventsConfigurationInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.BotId == nil {
		invalidParams.Add(request.NewErrParamRequired("BotId"))
	}
	if s.BotId != nil && len(*s.BotId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BotId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *DeleteEventsConfigurationInput) SetAccountId(v string) *DeleteEventsConfigurationInput {
	s.AccountId = &v
	return s
}

// SetBotId sets the BotId field's value.
func (s *DeleteEventsConfigurationInput) SetBotId(v string) *DeleteEventsConfigurationInput {
	s.BotId = &v
	return s
}

type DeleteEventsConfigurationOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEventsConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEventsConfigurationOutput) GoString() string {
	return s.String()
}

type DeleteMediaCapturePipelineInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the media capture pipeline being deleted.
	//
	// MediaPipelineId is a required field
	MediaPipelineId *string `location:"uri" locationName:"mediaPipelineId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteMediaCapturePipelineInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteMediaCapturePipelineInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteMediaCapturePipelineInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteMediaCapturePipelineInput"}
	if s.MediaPipelineId == nil {
		invalidParams.Add(request.NewErrParamRequired("MediaPipelineId"))
	}
	if s.MediaPipelineId != nil && len(*s.MediaPipelineId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MediaPipelineId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMediaPipelineId sets the MediaPipelineId field's value.
func (s *DeleteMediaCapturePipelineInput) SetMediaPipelineId(v string) *DeleteMediaCapturePipelineInput {
	s.MediaPipelineId = &v
	return s
}

type DeleteMediaCapturePipelineOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteMediaCapturePipelineOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteMediaCapturePipelineOutput) GoString() string {
	return s.String()
}

type DeleteMeetingInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteMeetingInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteMeetingInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteMeetingInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteMeetingInput"}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMeetingId sets the MeetingId field's value.
func (s *DeleteMeetingInput) SetMeetingId(v string) *DeleteMeetingInput {
	s.MeetingId = &v
	return s
}

type DeleteMeetingOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteMeetingOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteMeetingOutput) GoString() string {
	return s.String()
}

type DeletePhoneNumberInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The phone number ID.
	//
	// PhoneNumberId is a required field
	PhoneNumberId *string `location:"uri" locationName:"phoneNumberId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeletePhoneNumberInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeletePhoneNumberInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeletePhoneNumberInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeletePhoneNumberInput"}
	if s.PhoneNumberId == nil {
		invalidParams.Add(request.NewErrParamRequired("PhoneNumberId"))
	}
	if s.PhoneNumberId != nil && len(*s.PhoneNumberId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PhoneNumberId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPhoneNumberId sets the PhoneNumberId field's value.
func (s *DeletePhoneNumberInput) SetPhoneNumberId(v string) *DeletePhoneNumberInput {
	s.PhoneNumberId = &v
	return s
}

type DeletePhoneNumberOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeletePhoneNumberOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeletePhoneNumberOutput) GoString() string {
	return s.String()
}

type DeleteProxySessionInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The proxy session ID.
	//
	// ProxySessionId is a required field
	ProxySessionId *string `location:"uri" locationName:"proxySessionId" min:"1" type:"string" required:"true"`

	// The Amazon Chime voice connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteProxySessionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteProxySessionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteProxySessionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteProxySessionInput"}
	if s.ProxySessionId == nil {
		invalidParams.Add(request.NewErrParamRequired("ProxySessionId"))
	}
	if s.ProxySessionId != nil && len(*s.ProxySessionId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProxySessionId", 1))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProxySessionId sets the ProxySessionId field's value.
func (s *DeleteProxySessionInput) SetProxySessionId(v string) *DeleteProxySessionInput {
	s.ProxySessionId = &v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *DeleteProxySessionInput) SetVoiceConnectorId(v string) *DeleteProxySessionInput {
	s.VoiceConnectorId = &v
	return s
}

type DeleteProxySessionOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteProxySessionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteProxySessionOutput) GoString() string {
	return s.String()
}

type DeleteRoomInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The chat room ID.
	//
	// RoomId is a required field
	RoomId *string `location:"uri" locationName:"roomId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteRoomInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteRoomInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteRoomInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteRoomInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.RoomId == nil {
		invalidParams.Add(request.NewErrParamRequired("RoomId"))
	}
	if s.RoomId != nil && len(*s.RoomId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RoomId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *DeleteRoomInput) SetAccountId(v string) *DeleteRoomInput {
	s.AccountId = &v
	return s
}

// SetRoomId sets the RoomId field's value.
func (s *DeleteRoomInput) SetRoomId(v string) *DeleteRoomInput {
	s.RoomId = &v
	return s
}

type DeleteRoomMembershipInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The member ID (user ID or bot ID).
	//
	// MemberId is a required field
	MemberId *string `location:"uri" locationName:"memberId" type:"string" required:"true"`

	// The room ID.
	//
	// RoomId is a required field
	RoomId *string `location:"uri" locationName:"roomId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteRoomMembershipInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteRoomMembershipInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteRoomMembershipInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteRoomMembershipInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.MemberId == nil {
		invalidParams.Add(request.NewErrParamRequired("MemberId"))
	}
	if s.MemberId != nil && len(*s.MemberId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MemberId", 1))
	}
	if s.RoomId == nil {
		invalidParams.Add(request.NewErrParamRequired("RoomId"))
	}
	if s.RoomId != nil && len(*s.RoomId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RoomId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *DeleteRoomMembershipInput) SetAccountId(v string) *DeleteRoomMembershipInput {
	s.AccountId = &v
	return s
}

// SetMemberId sets the MemberId field's value.
func (s *DeleteRoomMembershipInput) SetMemberId(v string) *DeleteRoomMembershipInput {
	s.MemberId = &v
	return s
}

// SetRoomId sets the RoomId field's value.
func (s *DeleteRoomMembershipInput) SetRoomId(v string) *DeleteRoomMembershipInput {
	s.RoomId = &v
	return s
}

type DeleteRoomMembershipOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteRoomMembershipOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteRoomMembershipOutput) GoString() string {
	return s.String()
}

type DeleteRoomOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteRoomOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteRoomOutput) GoString() string {
	return s.String()
}

type DeleteSipMediaApplicationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The SIP media application ID.
	//
	// SipMediaApplicationId is a required field
	SipMediaApplicationId *string `location:"uri" locationName:"sipMediaApplicationId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteSipMediaApplicationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteSipMediaApplicationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteSipMediaApplicationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteSipMediaApplicationInput"}
	if s.SipMediaApplicationId == nil {
		invalidParams.Add(request.NewErrParamRequired("SipMediaApplicationId"))
	}
	if s.SipMediaApplicationId != nil && len(*s.SipMediaApplicationId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SipMediaApplicationId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSipMediaApplicationId sets the SipMediaApplicationId field's value.
func (s *DeleteSipMediaApplicationInput) SetSipMediaApplicationId(v string) *DeleteSipMediaApplicationInput {
	s.SipMediaApplicationId = &v
	return s
}

type DeleteSipMediaApplicationOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteSipMediaApplicationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteSipMediaApplicationOutput) GoString() string {
	return s.String()
}

type DeleteSipRuleInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The SIP rule ID.
	//
	// SipRuleId is a required field
	SipRuleId *string `location:"uri" locationName:"sipRuleId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteSipRuleInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteSipRuleInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteSipRuleInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteSipRuleInput"}
	if s.SipRuleId == nil {
		invalidParams.Add(request.NewErrParamRequired("SipRuleId"))
	}
	if s.SipRuleId != nil && len(*s.SipRuleId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SipRuleId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSipRuleId sets the SipRuleId field's value.
func (s *DeleteSipRuleInput) SetSipRuleId(v string) *DeleteSipRuleInput {
	s.SipRuleId = &v
	return s
}

type DeleteSipRuleOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteSipRuleOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteSipRuleOutput) GoString() string {
	return s.String()
}

type DeleteVoiceConnectorEmergencyCallingConfigurationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorEmergencyCallingConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorEmergencyCallingConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteVoiceConnectorEmergencyCallingConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteVoiceConnectorEmergencyCallingConfigurationInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *DeleteVoiceConnectorEmergencyCallingConfigurationInput) SetVoiceConnectorId(v string) *DeleteVoiceConnectorEmergencyCallingConfigurationInput {
	s.VoiceConnectorId = &v
	return s
}

type DeleteVoiceConnectorEmergencyCallingConfigurationOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorEmergencyCallingConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorEmergencyCallingConfigurationOutput) GoString() string {
	return s.String()
}

type DeleteVoiceConnectorGroupInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector group ID.
	//
	// VoiceConnectorGroupId is a required field
	VoiceConnectorGroupId *string `location:"uri" locationName:"voiceConnectorGroupId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteVoiceConnectorGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteVoiceConnectorGroupInput"}
	if s.VoiceConnectorGroupId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorGroupId"))
	}
	if s.VoiceConnectorGroupId != nil && len(*s.VoiceConnectorGroupId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorGroupId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorGroupId sets the VoiceConnectorGroupId field's value.
func (s *DeleteVoiceConnectorGroupInput) SetVoiceConnectorGroupId(v string) *DeleteVoiceConnectorGroupInput {
	s.VoiceConnectorGroupId = &v
	return s
}

type DeleteVoiceConnectorGroupOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorGroupOutput) GoString() string {
	return s.String()
}

type DeleteVoiceConnectorInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteVoiceConnectorInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteVoiceConnectorInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *DeleteVoiceConnectorInput) SetVoiceConnectorId(v string) *DeleteVoiceConnectorInput {
	s.VoiceConnectorId = &v
	return s
}

type DeleteVoiceConnectorOriginationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorOriginationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorOriginationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteVoiceConnectorOriginationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteVoiceConnectorOriginationInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *DeleteVoiceConnectorOriginationInput) SetVoiceConnectorId(v string) *DeleteVoiceConnectorOriginationInput {
	s.VoiceConnectorId = &v
	return s
}

type DeleteVoiceConnectorOriginationOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorOriginationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorOriginationOutput) GoString() string {
	return s.String()
}

type DeleteVoiceConnectorOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorOutput) GoString() string {
	return s.String()
}

type DeleteVoiceConnectorProxyInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorProxyInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorProxyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteVoiceConnectorProxyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteVoiceConnectorProxyInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *DeleteVoiceConnectorProxyInput) SetVoiceConnectorId(v string) *DeleteVoiceConnectorProxyInput {
	s.VoiceConnectorId = &v
	return s
}

type DeleteVoiceConnectorProxyOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorProxyOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorProxyOutput) GoString() string {
	return s.String()
}

type DeleteVoiceConnectorStreamingConfigurationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorStreamingConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorStreamingConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteVoiceConnectorStreamingConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteVoiceConnectorStreamingConfigurationInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *DeleteVoiceConnectorStreamingConfigurationInput) SetVoiceConnectorId(v string) *DeleteVoiceConnectorStreamingConfigurationInput {
	s.VoiceConnectorId = &v
	return s
}

type DeleteVoiceConnectorStreamingConfigurationOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorStreamingConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorStreamingConfigurationOutput) GoString() string {
	return s.String()
}

type DeleteVoiceConnectorTerminationCredentialsInput struct {
	_ struct{} `type:"structure"`

	// The RFC2617 compliant username associated with the SIP credentials, in US-ASCII
	// format.
	//
	// Usernames is a required field
	Usernames []*string `type:"list" required:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorTerminationCredentialsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorTerminationCredentialsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteVoiceConnectorTerminationCredentialsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteVoiceConnectorTerminationCredentialsInput"}
	if s.Usernames == nil {
		invalidParams.Add(request.NewErrParamRequired("Usernames"))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetUsernames sets the Usernames field's value.
func (s *DeleteVoiceConnectorTerminationCredentialsInput) SetUsernames(v []*string) *DeleteVoiceConnectorTerminationCredentialsInput {
	s.Usernames = v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *DeleteVoiceConnectorTerminationCredentialsInput) SetVoiceConnectorId(v string) *DeleteVoiceConnectorTerminationCredentialsInput {
	s.VoiceConnectorId = &v
	return s
}

type DeleteVoiceConnectorTerminationCredentialsOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorTerminationCredentialsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorTerminationCredentialsOutput) GoString() string {
	return s.String()
}

type DeleteVoiceConnectorTerminationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorTerminationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorTerminationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteVoiceConnectorTerminationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteVoiceConnectorTerminationInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *DeleteVoiceConnectorTerminationInput) SetVoiceConnectorId(v string) *DeleteVoiceConnectorTerminationInput {
	s.VoiceConnectorId = &v
	return s
}

type DeleteVoiceConnectorTerminationOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorTerminationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteVoiceConnectorTerminationOutput) GoString() string {
	return s.String()
}

type DescribeAppInstanceAdminInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the AppInstanceAdmin.
	//
	// AppInstanceAdminArn is a required field
	AppInstanceAdminArn *string `location:"uri" locationName:"appInstanceAdminArn" min:"5" type:"string" required:"true"`

	// The ARN of the AppInstance.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"uri" locationName:"appInstanceArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInstanceAdminInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInstanceAdminInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeAppInstanceAdminInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeAppInstanceAdminInput"}
	if s.AppInstanceAdminArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceAdminArn"))
	}
	if s.AppInstanceAdminArn != nil && len(*s.AppInstanceAdminArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceAdminArn", 5))
	}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceAdminArn sets the AppInstanceAdminArn field's value.
func (s *DescribeAppInstanceAdminInput) SetAppInstanceAdminArn(v string) *DescribeAppInstanceAdminInput {
	s.AppInstanceAdminArn = &v
	return s
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *DescribeAppInstanceAdminInput) SetAppInstanceArn(v string) *DescribeAppInstanceAdminInput {
	s.AppInstanceArn = &v
	return s
}

type DescribeAppInstanceAdminOutput struct {
	_ struct{} `type:"structure"`

	// The ARN and name of the AppInstanceUser, the ARN of the AppInstance, and
	// the created and last-updated timestamps. All timestamps use epoch milliseconds.
	AppInstanceAdmin *AppInstanceAdmin `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInstanceAdminOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInstanceAdminOutput) GoString() string {
	return s.String()
}

// SetAppInstanceAdmin sets the AppInstanceAdmin field's value.
func (s *DescribeAppInstanceAdminOutput) SetAppInstanceAdmin(v *AppInstanceAdmin) *DescribeAppInstanceAdminOutput {
	s.AppInstanceAdmin = v
	return s
}

type DescribeAppInstanceInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the AppInstance.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"uri" locationName:"appInstanceArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInstanceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInstanceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeAppInstanceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeAppInstanceInput"}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *DescribeAppInstanceInput) SetAppInstanceArn(v string) *DescribeAppInstanceInput {
	s.AppInstanceArn = &v
	return s
}

type DescribeAppInstanceOutput struct {
	_ struct{} `type:"structure"`

	// The ARN, metadata, created and last-updated timestamps, and the name of the
	// AppInstance. All timestamps use epoch milliseconds.
	AppInstance *AppInstance `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInstanceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInstanceOutput) GoString() string {
	return s.String()
}

// SetAppInstance sets the AppInstance field's value.
func (s *DescribeAppInstanceOutput) SetAppInstance(v *AppInstance) *DescribeAppInstanceOutput {
	s.AppInstance = v
	return s
}

type DescribeAppInstanceUserInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the AppInstanceUser.
	//
	// AppInstanceUserArn is a required field
	AppInstanceUserArn *string `location:"uri" locationName:"appInstanceUserArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInstanceUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInstanceUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeAppInstanceUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeAppInstanceUserInput"}
	if s.AppInstanceUserArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceUserArn"))
	}
	if s.AppInstanceUserArn != nil && len(*s.AppInstanceUserArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceUserArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceUserArn sets the AppInstanceUserArn field's value.
func (s *DescribeAppInstanceUserInput) SetAppInstanceUserArn(v string) *DescribeAppInstanceUserInput {
	s.AppInstanceUserArn = &v
	return s
}

type DescribeAppInstanceUserOutput struct {
	_ struct{} `type:"structure"`

	// The name of the AppInstanceUser.
	AppInstanceUser *AppInstanceUser `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInstanceUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInstanceUserOutput) GoString() string {
	return s.String()
}

// SetAppInstanceUser sets the AppInstanceUser field's value.
func (s *DescribeAppInstanceUserOutput) SetAppInstanceUser(v *AppInstanceUser) *DescribeAppInstanceUserOutput {
	s.AppInstanceUser = v
	return s
}

type DescribeChannelBanInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel from which the user is banned.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The ARN of the member being banned.
	//
	// MemberArn is a required field
	MemberArn *string `location:"uri" locationName:"memberArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelBanInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelBanInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeChannelBanInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeChannelBanInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MemberArn == nil {
		invalidParams.Add(request.NewErrParamRequired("MemberArn"))
	}
	if s.MemberArn != nil && len(*s.MemberArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("MemberArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *DescribeChannelBanInput) SetChannelArn(v string) *DescribeChannelBanInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *DescribeChannelBanInput) SetChimeBearer(v string) *DescribeChannelBanInput {
	s.ChimeBearer = &v
	return s
}

// SetMemberArn sets the MemberArn field's value.
func (s *DescribeChannelBanInput) SetMemberArn(v string) *DescribeChannelBanInput {
	s.MemberArn = &v
	return s
}

type DescribeChannelBanOutput struct {
	_ struct{} `type:"structure"`

	// The details of the ban.
	ChannelBan *ChannelBan `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelBanOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelBanOutput) GoString() string {
	return s.String()
}

// SetChannelBan sets the ChannelBan field's value.
func (s *DescribeChannelBanOutput) SetChannelBan(v *ChannelBan) *DescribeChannelBanOutput {
	s.ChannelBan = v
	return s
}

type DescribeChannelInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeChannelInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeChannelInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *DescribeChannelInput) SetChannelArn(v string) *DescribeChannelInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *DescribeChannelInput) SetChimeBearer(v string) *DescribeChannelInput {
	s.ChimeBearer = &v
	return s
}

type DescribeChannelMembershipForAppInstanceUserInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the user in a channel.
	//
	// AppInstanceUserArn is a required field
	AppInstanceUserArn *string `location:"querystring" locationName:"app-instance-user-arn" min:"5" type:"string" required:"true"`

	// The ARN of the channel to which the user belongs.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelMembershipForAppInstanceUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelMembershipForAppInstanceUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeChannelMembershipForAppInstanceUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeChannelMembershipForAppInstanceUserInput"}
	if s.AppInstanceUserArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceUserArn"))
	}
	if s.AppInstanceUserArn != nil && len(*s.AppInstanceUserArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceUserArn", 5))
	}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceUserArn sets the AppInstanceUserArn field's value.
func (s *DescribeChannelMembershipForAppInstanceUserInput) SetAppInstanceUserArn(v string) *DescribeChannelMembershipForAppInstanceUserInput {
	s.AppInstanceUserArn = &v
	return s
}

// SetChannelArn sets the ChannelArn field's value.
func (s *DescribeChannelMembershipForAppInstanceUserInput) SetChannelArn(v string) *DescribeChannelMembershipForAppInstanceUserInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *DescribeChannelMembershipForAppInstanceUserInput) SetChimeBearer(v string) *DescribeChannelMembershipForAppInstanceUserInput {
	s.ChimeBearer = &v
	return s
}

type DescribeChannelMembershipForAppInstanceUserOutput struct {
	_ struct{} `type:"structure"`

	// The channel to which a user belongs.
	ChannelMembership *ChannelMembershipForAppInstanceUserSummary `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelMembershipForAppInstanceUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelMembershipForAppInstanceUserOutput) GoString() string {
	return s.String()
}

// SetChannelMembership sets the ChannelMembership field's value.
func (s *DescribeChannelMembershipForAppInstanceUserOutput) SetChannelMembership(v *ChannelMembershipForAppInstanceUserSummary) *DescribeChannelMembershipForAppInstanceUserOutput {
	s.ChannelMembership = v
	return s
}

type DescribeChannelMembershipInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The ARN of the member.
	//
	// MemberArn is a required field
	MemberArn *string `location:"uri" locationName:"memberArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelMembershipInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelMembershipInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeChannelMembershipInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeChannelMembershipInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MemberArn == nil {
		invalidParams.Add(request.NewErrParamRequired("MemberArn"))
	}
	if s.MemberArn != nil && len(*s.MemberArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("MemberArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *DescribeChannelMembershipInput) SetChannelArn(v string) *DescribeChannelMembershipInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *DescribeChannelMembershipInput) SetChimeBearer(v string) *DescribeChannelMembershipInput {
	s.ChimeBearer = &v
	return s
}

// SetMemberArn sets the MemberArn field's value.
func (s *DescribeChannelMembershipInput) SetMemberArn(v string) *DescribeChannelMembershipInput {
	s.MemberArn = &v
	return s
}

type DescribeChannelMembershipOutput struct {
	_ struct{} `type:"structure"`

	// The details of the membership.
	ChannelMembership *ChannelMembership `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelMembershipOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelMembershipOutput) GoString() string {
	return s.String()
}

// SetChannelMembership sets the ChannelMembership field's value.
func (s *DescribeChannelMembershipOutput) SetChannelMembership(v *ChannelMembership) *DescribeChannelMembershipOutput {
	s.ChannelMembership = v
	return s
}

type DescribeChannelModeratedByAppInstanceUserInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the AppInstanceUser in the moderated channel.
	//
	// AppInstanceUserArn is a required field
	AppInstanceUserArn *string `location:"querystring" locationName:"app-instance-user-arn" min:"5" type:"string" required:"true"`

	// The ARN of the moderated channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelModeratedByAppInstanceUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelModeratedByAppInstanceUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeChannelModeratedByAppInstanceUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeChannelModeratedByAppInstanceUserInput"}
	if s.AppInstanceUserArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceUserArn"))
	}
	if s.AppInstanceUserArn != nil && len(*s.AppInstanceUserArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceUserArn", 5))
	}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceUserArn sets the AppInstanceUserArn field's value.
func (s *DescribeChannelModeratedByAppInstanceUserInput) SetAppInstanceUserArn(v string) *DescribeChannelModeratedByAppInstanceUserInput {
	s.AppInstanceUserArn = &v
	return s
}

// SetChannelArn sets the ChannelArn field's value.
func (s *DescribeChannelModeratedByAppInstanceUserInput) SetChannelArn(v string) *DescribeChannelModeratedByAppInstanceUserInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *DescribeChannelModeratedByAppInstanceUserInput) SetChimeBearer(v string) *DescribeChannelModeratedByAppInstanceUserInput {
	s.ChimeBearer = &v
	return s
}

type DescribeChannelModeratedByAppInstanceUserOutput struct {
	_ struct{} `type:"structure"`

	// The moderated channel.
	Channel *ChannelModeratedByAppInstanceUserSummary `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelModeratedByAppInstanceUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelModeratedByAppInstanceUserOutput) GoString() string {
	return s.String()
}

// SetChannel sets the Channel field's value.
func (s *DescribeChannelModeratedByAppInstanceUserOutput) SetChannel(v *ChannelModeratedByAppInstanceUserSummary) *DescribeChannelModeratedByAppInstanceUserOutput {
	s.Channel = v
	return s
}

type DescribeChannelModeratorInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The ARN of the channel moderator.
	//
	// ChannelModeratorArn is a required field
	ChannelModeratorArn *string `location:"uri" locationName:"channelModeratorArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelModeratorInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelModeratorInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeChannelModeratorInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeChannelModeratorInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChannelModeratorArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelModeratorArn"))
	}
	if s.ChannelModeratorArn != nil && len(*s.ChannelModeratorArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelModeratorArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *DescribeChannelModeratorInput) SetChannelArn(v string) *DescribeChannelModeratorInput {
	s.ChannelArn = &v
	return s
}

// SetChannelModeratorArn sets the ChannelModeratorArn field's value.
func (s *DescribeChannelModeratorInput) SetChannelModeratorArn(v string) *DescribeChannelModeratorInput {
	s.ChannelModeratorArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *DescribeChannelModeratorInput) SetChimeBearer(v string) *DescribeChannelModeratorInput {
	s.ChimeBearer = &v
	return s
}

type DescribeChannelModeratorOutput struct {
	_ struct{} `type:"structure"`

	// The details of the channel moderator.
	ChannelModerator *ChannelModerator `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelModeratorOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelModeratorOutput) GoString() string {
	return s.String()
}

// SetChannelModerator sets the ChannelModerator field's value.
func (s *DescribeChannelModeratorOutput) SetChannelModerator(v *ChannelModerator) *DescribeChannelModeratorOutput {
	s.ChannelModerator = v
	return s
}

type DescribeChannelOutput struct {
	_ struct{} `type:"structure"`

	// The channel details.
	Channel *Channel `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeChannelOutput) GoString() string {
	return s.String()
}

// SetChannel sets the Channel field's value.
func (s *DescribeChannelOutput) SetChannel(v *Channel) *DescribeChannelOutput {
	s.Channel = v
	return s
}

type DisassociatePhoneNumberFromUserInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The user ID.
	//
	// UserId is a required field
	UserId *string `location:"uri" locationName:"userId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociatePhoneNumberFromUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociatePhoneNumberFromUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DisassociatePhoneNumberFromUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DisassociatePhoneNumberFromUserInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.UserId == nil {
		invalidParams.Add(request.NewErrParamRequired("UserId"))
	}
	if s.UserId != nil && len(*s.UserId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UserId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *DisassociatePhoneNumberFromUserInput) SetAccountId(v string) *DisassociatePhoneNumberFromUserInput {
	s.AccountId = &v
	return s
}

// SetUserId sets the UserId field's value.
func (s *DisassociatePhoneNumberFromUserInput) SetUserId(v string) *DisassociatePhoneNumberFromUserInput {
	s.UserId = &v
	return s
}

type DisassociatePhoneNumberFromUserOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociatePhoneNumberFromUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociatePhoneNumberFromUserOutput) GoString() string {
	return s.String()
}

type DisassociatePhoneNumbersFromVoiceConnectorGroupInput struct {
	_ struct{} `type:"structure"`

	// List of phone numbers, in E.164 format.
	//
	// E164PhoneNumbers is a required field
	E164PhoneNumbers []*string `type:"list" required:"true"`

	// The Amazon Chime Voice Connector group ID.
	//
	// VoiceConnectorGroupId is a required field
	VoiceConnectorGroupId *string `location:"uri" locationName:"voiceConnectorGroupId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociatePhoneNumbersFromVoiceConnectorGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociatePhoneNumbersFromVoiceConnectorGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DisassociatePhoneNumbersFromVoiceConnectorGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DisassociatePhoneNumbersFromVoiceConnectorGroupInput"}
	if s.E164PhoneNumbers == nil {
		invalidParams.Add(request.NewErrParamRequired("E164PhoneNumbers"))
	}
	if s.VoiceConnectorGroupId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorGroupId"))
	}
	if s.VoiceConnectorGroupId != nil && len(*s.VoiceConnectorGroupId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorGroupId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetE164PhoneNumbers sets the E164PhoneNumbers field's value.
func (s *DisassociatePhoneNumbersFromVoiceConnectorGroupInput) SetE164PhoneNumbers(v []*string) *DisassociatePhoneNumbersFromVoiceConnectorGroupInput {
	s.E164PhoneNumbers = v
	return s
}

// SetVoiceConnectorGroupId sets the VoiceConnectorGroupId field's value.
func (s *DisassociatePhoneNumbersFromVoiceConnectorGroupInput) SetVoiceConnectorGroupId(v string) *DisassociatePhoneNumbersFromVoiceConnectorGroupInput {
	s.VoiceConnectorGroupId = &v
	return s
}

type DisassociatePhoneNumbersFromVoiceConnectorGroupOutput struct {
	_ struct{} `type:"structure"`

	// If the action fails for one or more of the phone numbers in the request,
	// a list of the phone numbers is returned, along with error codes and error
	// messages.
	PhoneNumberErrors []*PhoneNumberError `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociatePhoneNumbersFromVoiceConnectorGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociatePhoneNumbersFromVoiceConnectorGroupOutput) GoString() string {
	return s.String()
}

// SetPhoneNumberErrors sets the PhoneNumberErrors field's value.
func (s *DisassociatePhoneNumbersFromVoiceConnectorGroupOutput) SetPhoneNumberErrors(v []*PhoneNumberError) *DisassociatePhoneNumbersFromVoiceConnectorGroupOutput {
	s.PhoneNumberErrors = v
	return s
}

type DisassociatePhoneNumbersFromVoiceConnectorInput struct {
	_ struct{} `type:"structure"`

	// List of phone numbers, in E.164 format.
	//
	// E164PhoneNumbers is a required field
	E164PhoneNumbers []*string `type:"list" required:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociatePhoneNumbersFromVoiceConnectorInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociatePhoneNumbersFromVoiceConnectorInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DisassociatePhoneNumbersFromVoiceConnectorInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DisassociatePhoneNumbersFromVoiceConnectorInput"}
	if s.E164PhoneNumbers == nil {
		invalidParams.Add(request.NewErrParamRequired("E164PhoneNumbers"))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetE164PhoneNumbers sets the E164PhoneNumbers field's value.
func (s *DisassociatePhoneNumbersFromVoiceConnectorInput) SetE164PhoneNumbers(v []*string) *DisassociatePhoneNumbersFromVoiceConnectorInput {
	s.E164PhoneNumbers = v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *DisassociatePhoneNumbersFromVoiceConnectorInput) SetVoiceConnectorId(v string) *DisassociatePhoneNumbersFromVoiceConnectorInput {
	s.VoiceConnectorId = &v
	return s
}

type DisassociatePhoneNumbersFromVoiceConnectorOutput struct {
	_ struct{} `type:"structure"`

	// If the action fails for one or more of the phone numbers in the request,
	// a list of the phone numbers is returned, along with error codes and error
	// messages.
	PhoneNumberErrors []*PhoneNumberError `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociatePhoneNumbersFromVoiceConnectorOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociatePhoneNumbersFromVoiceConnectorOutput) GoString() string {
	return s.String()
}

// SetPhoneNumberErrors sets the PhoneNumberErrors field's value.
func (s *DisassociatePhoneNumbersFromVoiceConnectorOutput) SetPhoneNumberErrors(v []*PhoneNumberError) *DisassociatePhoneNumbersFromVoiceConnectorOutput {
	s.PhoneNumberErrors = v
	return s
}

type DisassociateSigninDelegateGroupsFromAccountInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The sign-in delegate group names.
	//
	// GroupNames is a required field
	GroupNames []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociateSigninDelegateGroupsFromAccountInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociateSigninDelegateGroupsFromAccountInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DisassociateSigninDelegateGroupsFromAccountInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DisassociateSigninDelegateGroupsFromAccountInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.GroupNames == nil {
		invalidParams.Add(request.NewErrParamRequired("GroupNames"))
	}
	if s.GroupNames != nil && len(s.GroupNames) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("GroupNames", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *DisassociateSigninDelegateGroupsFromAccountInput) SetAccountId(v string) *DisassociateSigninDelegateGroupsFromAccountInput {
	s.AccountId = &v
	return s
}

// SetGroupNames sets the GroupNames field's value.
func (s *DisassociateSigninDelegateGroupsFromAccountInput) SetGroupNames(v []*string) *DisassociateSigninDelegateGroupsFromAccountInput {
	s.GroupNames = v
	return s
}

type DisassociateSigninDelegateGroupsFromAccountOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociateSigninDelegateGroupsFromAccountOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociateSigninDelegateGroupsFromAccountOutput) GoString() string {
	return s.String()
}

// The emergency calling configuration details associated with an Amazon Chime
// Voice Connector.
type EmergencyCallingConfiguration struct {
	_ struct{} `type:"structure"`

	// The Dialed Number Identification Service (DNIS) emergency calling configuration
	// details.
	DNIS []*DNISEmergencyCallingConfiguration `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EmergencyCallingConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EmergencyCallingConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *EmergencyCallingConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "EmergencyCallingConfiguration"}
	if s.DNIS != nil {
		for i, v := range s.DNIS {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DNIS", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDNIS sets the DNIS field's value.
func (s *EmergencyCallingConfiguration) SetDNIS(v []*DNISEmergencyCallingConfiguration) *EmergencyCallingConfiguration {
	s.DNIS = v
	return s
}

// Settings specific to the Amazon Transcribe Medical engine.
type EngineTranscribeMedicalSettings struct {
	_ struct{} `type:"structure"`

	// Labels all personally identifiable information (PII) identified in your transcript.
	// If you don't include PiiEntityTypes, all PII is identified.
	//
	// You can’t set ContentIdentificationType and ContentRedactionType.
	ContentIdentificationType *string `type:"string" enum:"TranscribeMedicalContentIdentificationType"`

	// The language code specified for the Amazon Transcribe Medical engine.
	//
	// LanguageCode is a required field
	LanguageCode *string `type:"string" required:"true" enum:"TranscribeMedicalLanguageCode"`

	// The AWS Region passed to Amazon Transcribe Medical. If you don't specify
	// a Region, Amazon Chime uses the meeting's Region.
	Region *string `type:"string" enum:"TranscribeMedicalRegion"`

	// The specialty specified for the Amazon Transcribe Medical engine.
	//
	// Specialty is a required field
	Specialty *string `type:"string" required:"true" enum:"TranscribeMedicalSpecialty"`

	// The type of transcription.
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"TranscribeMedicalType"`

	// The name of the vocabulary passed to Amazon Transcribe Medical.
	VocabularyName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EngineTranscribeMedicalSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EngineTranscribeMedicalSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *EngineTranscribeMedicalSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "EngineTranscribeMedicalSettings"}
	if s.LanguageCode == nil {
		invalidParams.Add(request.NewErrParamRequired("LanguageCode"))
	}
	if s.Specialty == nil {
		invalidParams.Add(request.NewErrParamRequired("Specialty"))
	}
	if s.Type == nil {
		invalidParams.Add(request.NewErrParamRequired("Type"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContentIdentificationType sets the ContentIdentificationType field's value.
func (s *EngineTranscribeMedicalSettings) SetContentIdentificationType(v string) *EngineTranscribeMedicalSettings {
	s.ContentIdentificationType = &v
	return s
}

// SetLanguageCode sets the LanguageCode field's value.
func (s *EngineTranscribeMedicalSettings) SetLanguageCode(v string) *EngineTranscribeMedicalSettings {
	s.LanguageCode = &v
	return s
}

// SetRegion sets the Region field's value.
func (s *EngineTranscribeMedicalSettings) SetRegion(v string) *EngineTranscribeMedicalSettings {
	s.Region = &v
	return s
}

// SetSpecialty sets the Specialty field's value.
func (s *EngineTranscribeMedicalSettings) SetSpecialty(v string) *EngineTranscribeMedicalSettings {
	s.Specialty = &v
	return s
}

// SetType sets the Type field's value.
func (s *EngineTranscribeMedicalSettings) SetType(v string) *EngineTranscribeMedicalSettings {
	s.Type = &v
	return s
}

// SetVocabularyName sets the VocabularyName field's value.
func (s *EngineTranscribeMedicalSettings) SetVocabularyName(v string) *EngineTranscribeMedicalSettings {
	s.VocabularyName = &v
	return s
}

// Settings specific for Amazon Transcribe as the live transcription engine.
//
// If you specify an invalid combination of parameters, a TranscriptFailed event
// will be sent with the contents of the BadRequestException generated by Amazon
// Transcribe. For more information on each parameter and which combinations
// are valid, refer to the StartStreamTranscription (https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartStreamTranscription.html)
// API in the Amazon Transcribe Developer Guide.
type EngineTranscribeSettings struct {
	_ struct{} `type:"structure"`

	// Labels all personally identifiable information (PII) identified in your transcript.
	// If you don't include PiiEntityTypes, all PII is identified.
	//
	// You can’t set ContentIdentificationType and ContentRedactionType.
	ContentIdentificationType *string `type:"string" enum:"TranscribeContentIdentificationType"`

	// Content redaction is performed at the segment level. If you don't include
	// PiiEntityTypes, all PII is redacted.
	//
	// You can’t set ContentIdentificationType and ContentRedactionType.
	ContentRedactionType *string `type:"string" enum:"TranscribeContentRedactionType"`

	// Enables partial result stabilization for your transcription. Partial result
	// stabilization can reduce latency in your output, but may impact accuracy.
	EnablePartialResultsStabilization *bool `type:"boolean"`

	// Enables automatic language identification for your transcription.
	//
	// If you include IdentifyLanguage, you can optionally use LanguageOptions to
	// include a list of language codes that you think may be present in your audio
	// stream. Including language options can improve transcription accuracy.
	//
	// You can also use PreferredLanguage to include a preferred language. Doing
	// so can help Amazon Transcribe identify the language faster.
	//
	// You must include either LanguageCode or IdentifyLanguage.
	//
	// Language identification can't be combined with custom language models or
	// redaction.
	IdentifyLanguage *bool `type:"boolean"`

	// Specify the language code that represents the language spoken.
	//
	// If you're unsure of the language spoken in your audio, consider using IdentifyLanguage
	// to enable automatic language identification.
	LanguageCode *string `type:"string" enum:"TranscribeLanguageCode"`

	// Specify the name of the custom language model that you want to use when processing
	// your transcription. Note that language model names are case sensitive.
	//
	// The language of the specified language model must match the language code.
	// If the languages don't match, the custom language model isn't applied. There
	// are no errors or warnings associated with a language mismatch.
	//
	// If you use Amazon Transcribe in multiple Regions, the custom language model
	// must be available in Amazon Transcribe in each Region.
	LanguageModelName *string `min:"1" type:"string"`

	// Specify two or more language codes that represent the languages you think
	// may be present in your media; including more than five is not recommended.
	// If you're unsure what languages are present, do not include this parameter.
	//
	// Including language options can improve the accuracy of language identification.
	//
	// If you include LanguageOptions, you must also include IdentifyLanguage.
	//
	// You can only include one language dialect per language. For example, you
	// cannot include en-US and en-AU.
	LanguageOptions *string `min:"1" type:"string"`

	// Specify the level of stability to use when you enable partial results stabilization
	// (EnablePartialResultsStabilization).
	//
	// Low stability provides the highest accuracy. High stability transcribes faster,
	// but with slightly lower accuracy.
	PartialResultsStability *string `type:"string" enum:"TranscribePartialResultsStability"`

	// Specify which types of personally identifiable information (PII) you want
	// to redact in your transcript. You can include as many types as you'd like,
	// or you can select ALL.
	//
	// Values must be comma-separated and can include: ADDRESS, BANK_ACCOUNT_NUMBER,
	// BANK_ROUTING, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY CREDIT_DEBIT_NUMBER,
	// EMAIL,NAME, PHONE, PIN, SSN, or ALL.
	//
	// Note that if you include PiiEntityTypes, you must also include ContentIdentificationType
	// or ContentRedactionType.
	//
	// If you include ContentRedactionType or ContentIdentificationType, but do
	// not include PiiEntityTypes, all PII is redacted or identified.
	PiiEntityTypes *string `min:"1" type:"string"`

	// Specify a preferred language from the subset of languages codes you specified
	// in LanguageOptions.
	//
	// You can only use this parameter if you include IdentifyLanguage and LanguageOptions.
	PreferredLanguage *string `type:"string" enum:"TranscribeLanguageCode"`

	// The AWS Region in which to use Amazon Transcribe.
	//
	// If you don't specify a Region, then the MediaRegion parameter of the CreateMeeting.html
	// (https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html)
	// API will be used. However, if Amazon Transcribe is not available in the MediaRegion,
	// then a TranscriptFailed event is sent.
	//
	// Use auto to use Amazon Transcribe in a Region near the meeting’s MediaRegion.
	// For more information, refer to Choosing a transcription Region (https://docs.aws.amazon.com/chime-sdk/latest/dg/transcription-options.html#choose-region)
	// in the Amazon Chime SDK Developer Guide.
	Region *string `type:"string" enum:"TranscribeRegion"`

	// Specify how you want your vocabulary filter applied to your transcript.
	//
	// To replace words with ***, choose mask.
	//
	// To delete words, choose remove.
	//
	// To flag words without changing them, choose tag.
	VocabularyFilterMethod *string `type:"string" enum:"TranscribeVocabularyFilterMethod"`

	// Specify the name of the custom vocabulary filter that you want to use when
	// processing your transcription. Note that vocabulary filter names are case
	// sensitive.
	//
	// If you use Amazon Transcribe in multiple Regions, the vocabulary filter must
	// be available in Amazon Transcribe in each Region.
	//
	// If you include IdentifyLanguage and want to use one or more vocabulary filters
	// with your transcription, use the VocabularyFilterNames parameter instead.
	VocabularyFilterName *string `type:"string"`

	// Specify the names of the custom vocabulary filters that you want to use when
	// processing your transcription. Note that vocabulary filter names are case
	// sensitive.
	//
	// If you use Amazon Transcribe in multiple Regions, the vocabulary filter must
	// be available in Amazon Transcribe in each Region.
	//
	// If you're not including IdentifyLanguage and want to use a custom vocabulary
	// filter with your transcription, use the VocabularyFilterName parameter instead.
	VocabularyFilterNames *string `min:"1" type:"string"`

	// Specify the name of the custom vocabulary that you want to use when processing
	// your transcription. Note that vocabulary names are case sensitive.
	//
	// If you use Amazon Transcribe multiple Regions, the vocabulary must be available
	// in Amazon Transcribe in each Region.
	//
	// If you include IdentifyLanguage and want to use one or more custom vocabularies
	// with your transcription, use the VocabularyNames parameter instead.
	VocabularyName *string `type:"string"`

	// Specify the names of the custom vocabularies that you want to use when processing
	// your transcription. Note that vocabulary names are case sensitive.
	//
	// If you use Amazon Transcribe in multiple Regions, the vocabulary must be
	// available in Amazon Transcribe in each Region.
	//
	// If you don't include IdentifyLanguage and want to use a custom vocabulary
	// with your transcription, use the VocabularyName parameter instead.
	VocabularyNames *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EngineTranscribeSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EngineTranscribeSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *EngineTranscribeSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "EngineTranscribeSettings"}
	if s.LanguageModelName != nil && len(*s.LanguageModelName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LanguageModelName", 1))
	}
	if s.LanguageOptions != nil && len(*s.LanguageOptions) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LanguageOptions", 1))
	}
	if s.PiiEntityTypes != nil && len(*s.PiiEntityTypes) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PiiEntityTypes", 1))
	}
	if s.VocabularyFilterNames != nil && len(*s.VocabularyFilterNames) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VocabularyFilterNames", 1))
	}
	if s.VocabularyNames != nil && len(*s.VocabularyNames) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VocabularyNames", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContentIdentificationType sets the ContentIdentificationType field's value.
func (s *EngineTranscribeSettings) SetContentIdentificationType(v string) *EngineTranscribeSettings {
	s.ContentIdentificationType = &v
	return s
}

// SetContentRedactionType sets the ContentRedactionType field's value.
func (s *EngineTranscribeSettings) SetContentRedactionType(v string) *EngineTranscribeSettings {
	s.ContentRedactionType = &v
	return s
}

// SetEnablePartialResultsStabilization sets the EnablePartialResultsStabilization field's value.
func (s *EngineTranscribeSettings) SetEnablePartialResultsStabilization(v bool) *EngineTranscribeSettings {
	s.EnablePartialResultsStabilization = &v
	return s
}

// SetIdentifyLanguage sets the IdentifyLanguage field's value.
func (s *EngineTranscribeSettings) SetIdentifyLanguage(v bool) *EngineTranscribeSettings {
	s.IdentifyLanguage = &v
	return s
}

// SetLanguageCode sets the LanguageCode field's value.
func (s *EngineTranscribeSettings) SetLanguageCode(v string) *EngineTranscribeSettings {
	s.LanguageCode = &v
	return s
}

// SetLanguageModelName sets the LanguageModelName field's value.
func (s *EngineTranscribeSettings) SetLanguageModelName(v string) *EngineTranscribeSettings {
	s.LanguageModelName = &v
	return s
}

// SetLanguageOptions sets the LanguageOptions field's value.
func (s *EngineTranscribeSettings) SetLanguageOptions(v string) *EngineTranscribeSettings {
	s.LanguageOptions = &v
	return s
}

// SetPartialResultsStability sets the PartialResultsStability field's value.
func (s *EngineTranscribeSettings) SetPartialResultsStability(v string) *EngineTranscribeSettings {
	s.PartialResultsStability = &v
	return s
}

// SetPiiEntityTypes sets the PiiEntityTypes field's value.
func (s *EngineTranscribeSettings) SetPiiEntityTypes(v string) *EngineTranscribeSettings {
	s.PiiEntityTypes = &v
	return s
}

// SetPreferredLanguage sets the PreferredLanguage field's value.
func (s *EngineTranscribeSettings) SetPreferredLanguage(v string) *EngineTranscribeSettings {
	s.PreferredLanguage = &v
	return s
}

// SetRegion sets the Region field's value.
func (s *EngineTranscribeSettings) SetRegion(v string) *EngineTranscribeSettings {
	s.Region = &v
	return s
}

// SetVocabularyFilterMethod sets the VocabularyFilterMethod field's value.
func (s *EngineTranscribeSettings) SetVocabularyFilterMethod(v string) *EngineTranscribeSettings {
	s.VocabularyFilterMethod = &v
	return s
}

// SetVocabularyFilterName sets the VocabularyFilterName field's value.
func (s *EngineTranscribeSettings) SetVocabularyFilterName(v string) *EngineTranscribeSettings {
	s.VocabularyFilterName = &v
	return s
}

// SetVocabularyFilterNames sets the VocabularyFilterNames field's value.
func (s *EngineTranscribeSettings) SetVocabularyFilterNames(v string) *EngineTranscribeSettings {
	s.VocabularyFilterNames = &v
	return s
}

// SetVocabularyName sets the VocabularyName field's value.
func (s *EngineTranscribeSettings) SetVocabularyName(v string) *EngineTranscribeSettings {
	s.VocabularyName = &v
	return s
}

// SetVocabularyNames sets the VocabularyNames field's value.
func (s *EngineTranscribeSettings) SetVocabularyNames(v string) *EngineTranscribeSettings {
	s.VocabularyNames = &v
	return s
}

// The configuration that allows a bot to receive outgoing events. Can be either
// an HTTPS endpoint or a Lambda function ARN.
type EventsConfiguration struct {
	_ struct{} `type:"structure"`

	// The bot ID.
	BotId *string `type:"string"`

	// Lambda function ARN that allows a bot to receive outgoing events.
	//
	// LambdaFunctionArn is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by EventsConfiguration's
	// String and GoString methods.
	LambdaFunctionArn *string `type:"string" sensitive:"true"`

	// HTTPS endpoint that allows a bot to receive outgoing events.
	//
	// OutboundEventsHTTPSEndpoint is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by EventsConfiguration's
	// String and GoString methods.
	OutboundEventsHTTPSEndpoint *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EventsConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EventsConfiguration) GoString() string {
	return s.String()
}

// SetBotId sets the BotId field's value.
func (s *EventsConfiguration) SetBotId(v string) *EventsConfiguration {
	s.BotId = &v
	return s
}

// SetLambdaFunctionArn sets the LambdaFunctionArn field's value.
func (s *EventsConfiguration) SetLambdaFunctionArn(v string) *EventsConfiguration {
	s.LambdaFunctionArn = &v
	return s
}

// SetOutboundEventsHTTPSEndpoint sets the OutboundEventsHTTPSEndpoint field's value.
func (s *EventsConfiguration) SetOutboundEventsHTTPSEndpoint(v string) *EventsConfiguration {
	s.OutboundEventsHTTPSEndpoint = &v
	return s
}

// The client is permanently forbidden from making the request.
type ForbiddenException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Code_ *string `locationName:"Code" type:"string" enum:"ErrorCode"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ForbiddenException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ForbiddenException) GoString() string {
	return s.String()
}

func newErrorForbiddenException(v protocol.ResponseMetadata) error {
	return &ForbiddenException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ForbiddenException) Code() string {
	return "ForbiddenException"
}

// Message returns the exception's message.
func (s *ForbiddenException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ForbiddenException) OrigErr() error {
	return nil
}

func (s *ForbiddenException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ForbiddenException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ForbiddenException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The country and area code for a proxy phone number in a proxy phone session.
type GeoMatchParams struct {
	_ struct{} `type:"structure"`

	// The area code.
	//
	// AreaCode is a required field
	AreaCode *string `type:"string" required:"true"`

	// The country.
	//
	// Country is a required field
	Country *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GeoMatchParams) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GeoMatchParams) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GeoMatchParams) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GeoMatchParams"}
	if s.AreaCode == nil {
		invalidParams.Add(request.NewErrParamRequired("AreaCode"))
	}
	if s.Country == nil {
		invalidParams.Add(request.NewErrParamRequired("Country"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAreaCode sets the AreaCode field's value.
func (s *GeoMatchParams) SetAreaCode(v string) *GeoMatchParams {
	s.AreaCode = &v
	return s
}

// SetCountry sets the Country field's value.
func (s *GeoMatchParams) SetCountry(v string) *GeoMatchParams {
	s.Country = &v
	return s
}

type GetAccountInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAccountInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAccountInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetAccountInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetAccountInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *GetAccountInput) SetAccountId(v string) *GetAccountInput {
	s.AccountId = &v
	return s
}

type GetAccountOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account details.
	Account *Account `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAccountOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAccountOutput) GoString() string {
	return s.String()
}

// SetAccount sets the Account field's value.
func (s *GetAccountOutput) SetAccount(v *Account) *GetAccountOutput {
	s.Account = v
	return s
}

type GetAccountSettingsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAccountSettingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAccountSettingsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetAccountSettingsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetAccountSettingsInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *GetAccountSettingsInput) SetAccountId(v string) *GetAccountSettingsInput {
	s.AccountId = &v
	return s
}

type GetAccountSettingsOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account settings.
	AccountSettings *AccountSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAccountSettingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAccountSettingsOutput) GoString() string {
	return s.String()
}

// SetAccountSettings sets the AccountSettings field's value.
func (s *GetAccountSettingsOutput) SetAccountSettings(v *AccountSettings) *GetAccountSettingsOutput {
	s.AccountSettings = v
	return s
}

type GetAppInstanceRetentionSettingsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the AppInstance.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"uri" locationName:"appInstanceArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAppInstanceRetentionSettingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAppInstanceRetentionSettingsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetAppInstanceRetentionSettingsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetAppInstanceRetentionSettingsInput"}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *GetAppInstanceRetentionSettingsInput) SetAppInstanceArn(v string) *GetAppInstanceRetentionSettingsInput {
	s.AppInstanceArn = &v
	return s
}

type GetAppInstanceRetentionSettingsOutput struct {
	_ struct{} `type:"structure"`

	// The retention settings for the AppInstance.
	AppInstanceRetentionSettings *AppInstanceRetentionSettings `type:"structure"`

	// The timestamp representing the time at which the specified items are retained,
	// in Epoch Seconds.
	InitiateDeletionTimestamp *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAppInstanceRetentionSettingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAppInstanceRetentionSettingsOutput) GoString() string {
	return s.String()
}

// SetAppInstanceRetentionSettings sets the AppInstanceRetentionSettings field's value.
func (s *GetAppInstanceRetentionSettingsOutput) SetAppInstanceRetentionSettings(v *AppInstanceRetentionSettings) *GetAppInstanceRetentionSettingsOutput {
	s.AppInstanceRetentionSettings = v
	return s
}

// SetInitiateDeletionTimestamp sets the InitiateDeletionTimestamp field's value.
func (s *GetAppInstanceRetentionSettingsOutput) SetInitiateDeletionTimestamp(v time.Time) *GetAppInstanceRetentionSettingsOutput {
	s.InitiateDeletionTimestamp = &v
	return s
}

type GetAppInstanceStreamingConfigurationsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the AppInstance.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"uri" locationName:"appInstanceArn" min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAppInstanceStreamingConfigurationsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAppInstanceStreamingConfigurationsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetAppInstanceStreamingConfigurationsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetAppInstanceStreamingConfigurationsInput"}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *GetAppInstanceStreamingConfigurationsInput) SetAppInstanceArn(v string) *GetAppInstanceStreamingConfigurationsInput {
	s.AppInstanceArn = &v
	return s
}

type GetAppInstanceStreamingConfigurationsOutput struct {
	_ struct{} `type:"structure"`

	// The streaming settings.
	AppInstanceStreamingConfigurations []*AppInstanceStreamingConfiguration `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAppInstanceStreamingConfigurationsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAppInstanceStreamingConfigurationsOutput) GoString() string {
	return s.String()
}

// SetAppInstanceStreamingConfigurations sets the AppInstanceStreamingConfigurations field's value.
func (s *GetAppInstanceStreamingConfigurationsOutput) SetAppInstanceStreamingConfigurations(v []*AppInstanceStreamingConfiguration) *GetAppInstanceStreamingConfigurationsOutput {
	s.AppInstanceStreamingConfigurations = v
	return s
}

type GetAttendeeInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime SDK attendee ID.
	//
	// AttendeeId is a required field
	AttendeeId *string `location:"uri" locationName:"attendeeId" type:"string" required:"true"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAttendeeInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAttendeeInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetAttendeeInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetAttendeeInput"}
	if s.AttendeeId == nil {
		invalidParams.Add(request.NewErrParamRequired("AttendeeId"))
	}
	if s.AttendeeId != nil && len(*s.AttendeeId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AttendeeId", 1))
	}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAttendeeId sets the AttendeeId field's value.
func (s *GetAttendeeInput) SetAttendeeId(v string) *GetAttendeeInput {
	s.AttendeeId = &v
	return s
}

// SetMeetingId sets the MeetingId field's value.
func (s *GetAttendeeInput) SetMeetingId(v string) *GetAttendeeInput {
	s.MeetingId = &v
	return s
}

type GetAttendeeOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime SDK attendee information.
	Attendee *Attendee `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAttendeeOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAttendeeOutput) GoString() string {
	return s.String()
}

// SetAttendee sets the Attendee field's value.
func (s *GetAttendeeOutput) SetAttendee(v *Attendee) *GetAttendeeOutput {
	s.Attendee = v
	return s
}

type GetBotInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The bot ID.
	//
	// BotId is a required field
	BotId *string `location:"uri" locationName:"botId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetBotInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetBotInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetBotInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetBotInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.BotId == nil {
		invalidParams.Add(request.NewErrParamRequired("BotId"))
	}
	if s.BotId != nil && len(*s.BotId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BotId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *GetBotInput) SetAccountId(v string) *GetBotInput {
	s.AccountId = &v
	return s
}

// SetBotId sets the BotId field's value.
func (s *GetBotInput) SetBotId(v string) *GetBotInput {
	s.BotId = &v
	return s
}

type GetBotOutput struct {
	_ struct{} `type:"structure"`

	// The chat bot details.
	Bot *Bot `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetBotOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetBotOutput) GoString() string {
	return s.String()
}

// SetBot sets the Bot field's value.
func (s *GetBotOutput) SetBot(v *Bot) *GetBotOutput {
	s.Bot = v
	return s
}

type GetChannelMessageInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The ID of the message.
	//
	// MessageId is a required field
	MessageId *string `location:"uri" locationName:"messageId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetChannelMessageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetChannelMessageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetChannelMessageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetChannelMessageInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MessageId == nil {
		invalidParams.Add(request.NewErrParamRequired("MessageId"))
	}
	if s.MessageId != nil && len(*s.MessageId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MessageId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *GetChannelMessageInput) SetChannelArn(v string) *GetChannelMessageInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *GetChannelMessageInput) SetChimeBearer(v string) *GetChannelMessageInput {
	s.ChimeBearer = &v
	return s
}

// SetMessageId sets the MessageId field's value.
func (s *GetChannelMessageInput) SetMessageId(v string) *GetChannelMessageInput {
	s.MessageId = &v
	return s
}

type GetChannelMessageOutput struct {
	_ struct{} `type:"structure"`

	// The details of and content in the message.
	ChannelMessage *ChannelMessage `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetChannelMessageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetChannelMessageOutput) GoString() string {
	return s.String()
}

// SetChannelMessage sets the ChannelMessage field's value.
func (s *GetChannelMessageOutput) SetChannelMessage(v *ChannelMessage) *GetChannelMessageOutput {
	s.ChannelMessage = v
	return s
}

type GetEventsConfigurationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The bot ID.
	//
	// BotId is a required field
	BotId *string `location:"uri" locationName:"botId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEventsConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEventsConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetEventsConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetEventsConfigurationInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.BotId == nil {
		invalidParams.Add(request.NewErrParamRequired("BotId"))
	}
	if s.BotId != nil && len(*s.BotId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BotId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *GetEventsConfigurationInput) SetAccountId(v string) *GetEventsConfigurationInput {
	s.AccountId = &v
	return s
}

// SetBotId sets the BotId field's value.
func (s *GetEventsConfigurationInput) SetBotId(v string) *GetEventsConfigurationInput {
	s.BotId = &v
	return s
}

type GetEventsConfigurationOutput struct {
	_ struct{} `type:"structure"`

	// The events configuration details.
	EventsConfiguration *EventsConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEventsConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEventsConfigurationOutput) GoString() string {
	return s.String()
}

// SetEventsConfiguration sets the EventsConfiguration field's value.
func (s *GetEventsConfigurationOutput) SetEventsConfiguration(v *EventsConfiguration) *GetEventsConfigurationOutput {
	s.EventsConfiguration = v
	return s
}

type GetGlobalSettingsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetGlobalSettingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetGlobalSettingsInput) GoString() string {
	return s.String()
}

type GetGlobalSettingsOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime Business Calling settings.
	BusinessCalling *BusinessCallingSettings `type:"structure"`

	// The Amazon Chime Voice Connector settings.
	VoiceConnector *VoiceConnectorSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetGlobalSettingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetGlobalSettingsOutput) GoString() string {
	return s.String()
}

// SetBusinessCalling sets the BusinessCalling field's value.
func (s *GetGlobalSettingsOutput) SetBusinessCalling(v *BusinessCallingSettings) *GetGlobalSettingsOutput {
	s.BusinessCalling = v
	return s
}

// SetVoiceConnector sets the VoiceConnector field's value.
func (s *GetGlobalSettingsOutput) SetVoiceConnector(v *VoiceConnectorSettings) *GetGlobalSettingsOutput {
	s.VoiceConnector = v
	return s
}

type GetMediaCapturePipelineInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the pipeline that you want to get.
	//
	// MediaPipelineId is a required field
	MediaPipelineId *string `location:"uri" locationName:"mediaPipelineId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetMediaCapturePipelineInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetMediaCapturePipelineInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetMediaCapturePipelineInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetMediaCapturePipelineInput"}
	if s.MediaPipelineId == nil {
		invalidParams.Add(request.NewErrParamRequired("MediaPipelineId"))
	}
	if s.MediaPipelineId != nil && len(*s.MediaPipelineId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MediaPipelineId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMediaPipelineId sets the MediaPipelineId field's value.
func (s *GetMediaCapturePipelineInput) SetMediaPipelineId(v string) *GetMediaCapturePipelineInput {
	s.MediaPipelineId = &v
	return s
}

type GetMediaCapturePipelineOutput struct {
	_ struct{} `type:"structure"`

	// The media capture pipeline object.
	MediaCapturePipeline *MediaCapturePipeline `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetMediaCapturePipelineOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetMediaCapturePipelineOutput) GoString() string {
	return s.String()
}

// SetMediaCapturePipeline sets the MediaCapturePipeline field's value.
func (s *GetMediaCapturePipelineOutput) SetMediaCapturePipeline(v *MediaCapturePipeline) *GetMediaCapturePipelineOutput {
	s.MediaCapturePipeline = v
	return s
}

type GetMeetingInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetMeetingInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetMeetingInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetMeetingInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetMeetingInput"}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMeetingId sets the MeetingId field's value.
func (s *GetMeetingInput) SetMeetingId(v string) *GetMeetingInput {
	s.MeetingId = &v
	return s
}

type GetMeetingOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime SDK meeting information.
	Meeting *Meeting `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetMeetingOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetMeetingOutput) GoString() string {
	return s.String()
}

// SetMeeting sets the Meeting field's value.
func (s *GetMeetingOutput) SetMeeting(v *Meeting) *GetMeetingOutput {
	s.Meeting = v
	return s
}

type GetMessagingSessionEndpointInput struct {
	_ struct{} `type:"structure" nopayload:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetMessagingSessionEndpointInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetMessagingSessionEndpointInput) GoString() string {
	return s.String()
}

type GetMessagingSessionEndpointOutput struct {
	_ struct{} `type:"structure"`

	// The endpoint returned in the response.
	Endpoint *MessagingSessionEndpoint `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetMessagingSessionEndpointOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetMessagingSessionEndpointOutput) GoString() string {
	return s.String()
}

// SetEndpoint sets the Endpoint field's value.
func (s *GetMessagingSessionEndpointOutput) SetEndpoint(v *MessagingSessionEndpoint) *GetMessagingSessionEndpointOutput {
	s.Endpoint = v
	return s
}

type GetPhoneNumberInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The phone number ID.
	//
	// PhoneNumberId is a required field
	PhoneNumberId *string `location:"uri" locationName:"phoneNumberId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPhoneNumberInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPhoneNumberInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetPhoneNumberInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetPhoneNumberInput"}
	if s.PhoneNumberId == nil {
		invalidParams.Add(request.NewErrParamRequired("PhoneNumberId"))
	}
	if s.PhoneNumberId != nil && len(*s.PhoneNumberId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PhoneNumberId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPhoneNumberId sets the PhoneNumberId field's value.
func (s *GetPhoneNumberInput) SetPhoneNumberId(v string) *GetPhoneNumberInput {
	s.PhoneNumberId = &v
	return s
}

type GetPhoneNumberOrderInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID for the phone number order.
	//
	// PhoneNumberOrderId is a required field
	PhoneNumberOrderId *string `location:"uri" locationName:"phoneNumberOrderId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPhoneNumberOrderInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPhoneNumberOrderInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetPhoneNumberOrderInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetPhoneNumberOrderInput"}
	if s.PhoneNumberOrderId == nil {
		invalidParams.Add(request.NewErrParamRequired("PhoneNumberOrderId"))
	}
	if s.PhoneNumberOrderId != nil && len(*s.PhoneNumberOrderId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PhoneNumberOrderId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPhoneNumberOrderId sets the PhoneNumberOrderId field's value.
func (s *GetPhoneNumberOrderInput) SetPhoneNumberOrderId(v string) *GetPhoneNumberOrderInput {
	s.PhoneNumberOrderId = &v
	return s
}

type GetPhoneNumberOrderOutput struct {
	_ struct{} `type:"structure"`

	// The phone number order details.
	PhoneNumberOrder *PhoneNumberOrder `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPhoneNumberOrderOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPhoneNumberOrderOutput) GoString() string {
	return s.String()
}

// SetPhoneNumberOrder sets the PhoneNumberOrder field's value.
func (s *GetPhoneNumberOrderOutput) SetPhoneNumberOrder(v *PhoneNumberOrder) *GetPhoneNumberOrderOutput {
	s.PhoneNumberOrder = v
	return s
}

type GetPhoneNumberOutput struct {
	_ struct{} `type:"structure"`

	// The phone number details.
	PhoneNumber *PhoneNumber `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPhoneNumberOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPhoneNumberOutput) GoString() string {
	return s.String()
}

// SetPhoneNumber sets the PhoneNumber field's value.
func (s *GetPhoneNumberOutput) SetPhoneNumber(v *PhoneNumber) *GetPhoneNumberOutput {
	s.PhoneNumber = v
	return s
}

type GetPhoneNumberSettingsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPhoneNumberSettingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPhoneNumberSettingsInput) GoString() string {
	return s.String()
}

type GetPhoneNumberSettingsOutput struct {
	_ struct{} `type:"structure"`

	// The default outbound calling name for the account.
	//
	// CallingName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetPhoneNumberSettingsOutput's
	// String and GoString methods.
	CallingName *string `type:"string" sensitive:"true"`

	// The updated outbound calling name timestamp, in ISO 8601 format.
	CallingNameUpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPhoneNumberSettingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPhoneNumberSettingsOutput) GoString() string {
	return s.String()
}

// SetCallingName sets the CallingName field's value.
func (s *GetPhoneNumberSettingsOutput) SetCallingName(v string) *GetPhoneNumberSettingsOutput {
	s.CallingName = &v
	return s
}

// SetCallingNameUpdatedTimestamp sets the CallingNameUpdatedTimestamp field's value.
func (s *GetPhoneNumberSettingsOutput) SetCallingNameUpdatedTimestamp(v time.Time) *GetPhoneNumberSettingsOutput {
	s.CallingNameUpdatedTimestamp = &v
	return s
}

type GetProxySessionInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The proxy session ID.
	//
	// ProxySessionId is a required field
	ProxySessionId *string `location:"uri" locationName:"proxySessionId" min:"1" type:"string" required:"true"`

	// The Amazon Chime voice connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetProxySessionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetProxySessionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetProxySessionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetProxySessionInput"}
	if s.ProxySessionId == nil {
		invalidParams.Add(request.NewErrParamRequired("ProxySessionId"))
	}
	if s.ProxySessionId != nil && len(*s.ProxySessionId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProxySessionId", 1))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProxySessionId sets the ProxySessionId field's value.
func (s *GetProxySessionInput) SetProxySessionId(v string) *GetProxySessionInput {
	s.ProxySessionId = &v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *GetProxySessionInput) SetVoiceConnectorId(v string) *GetProxySessionInput {
	s.VoiceConnectorId = &v
	return s
}

type GetProxySessionOutput struct {
	_ struct{} `type:"structure"`

	// The proxy session details.
	ProxySession *ProxySession `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetProxySessionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetProxySessionOutput) GoString() string {
	return s.String()
}

// SetProxySession sets the ProxySession field's value.
func (s *GetProxySessionOutput) SetProxySession(v *ProxySession) *GetProxySessionOutput {
	s.ProxySession = v
	return s
}

type GetRetentionSettingsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRetentionSettingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRetentionSettingsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetRetentionSettingsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetRetentionSettingsInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *GetRetentionSettingsInput) SetAccountId(v string) *GetRetentionSettingsInput {
	s.AccountId = &v
	return s
}

type GetRetentionSettingsOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp representing the time at which the specified items are permanently
	// deleted, in ISO 8601 format.
	InitiateDeletionTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The retention settings.
	RetentionSettings *RetentionSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRetentionSettingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRetentionSettingsOutput) GoString() string {
	return s.String()
}

// SetInitiateDeletionTimestamp sets the InitiateDeletionTimestamp field's value.
func (s *GetRetentionSettingsOutput) SetInitiateDeletionTimestamp(v time.Time) *GetRetentionSettingsOutput {
	s.InitiateDeletionTimestamp = &v
	return s
}

// SetRetentionSettings sets the RetentionSettings field's value.
func (s *GetRetentionSettingsOutput) SetRetentionSettings(v *RetentionSettings) *GetRetentionSettingsOutput {
	s.RetentionSettings = v
	return s
}

type GetRoomInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The room ID.
	//
	// RoomId is a required field
	RoomId *string `location:"uri" locationName:"roomId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRoomInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRoomInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetRoomInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetRoomInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.RoomId == nil {
		invalidParams.Add(request.NewErrParamRequired("RoomId"))
	}
	if s.RoomId != nil && len(*s.RoomId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RoomId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *GetRoomInput) SetAccountId(v string) *GetRoomInput {
	s.AccountId = &v
	return s
}

// SetRoomId sets the RoomId field's value.
func (s *GetRoomInput) SetRoomId(v string) *GetRoomInput {
	s.RoomId = &v
	return s
}

type GetRoomOutput struct {
	_ struct{} `type:"structure"`

	// The room details.
	Room *Room `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRoomOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRoomOutput) GoString() string {
	return s.String()
}

// SetRoom sets the Room field's value.
func (s *GetRoomOutput) SetRoom(v *Room) *GetRoomOutput {
	s.Room = v
	return s
}

type GetSipMediaApplicationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The SIP media application ID.
	//
	// SipMediaApplicationId is a required field
	SipMediaApplicationId *string `location:"uri" locationName:"sipMediaApplicationId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSipMediaApplicationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSipMediaApplicationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetSipMediaApplicationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetSipMediaApplicationInput"}
	if s.SipMediaApplicationId == nil {
		invalidParams.Add(request.NewErrParamRequired("SipMediaApplicationId"))
	}
	if s.SipMediaApplicationId != nil && len(*s.SipMediaApplicationId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SipMediaApplicationId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSipMediaApplicationId sets the SipMediaApplicationId field's value.
func (s *GetSipMediaApplicationInput) SetSipMediaApplicationId(v string) *GetSipMediaApplicationInput {
	s.SipMediaApplicationId = &v
	return s
}

type GetSipMediaApplicationLoggingConfigurationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The SIP media application ID.
	//
	// SipMediaApplicationId is a required field
	SipMediaApplicationId *string `location:"uri" locationName:"sipMediaApplicationId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSipMediaApplicationLoggingConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSipMediaApplicationLoggingConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetSipMediaApplicationLoggingConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetSipMediaApplicationLoggingConfigurationInput"}
	if s.SipMediaApplicationId == nil {
		invalidParams.Add(request.NewErrParamRequired("SipMediaApplicationId"))
	}
	if s.SipMediaApplicationId != nil && len(*s.SipMediaApplicationId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SipMediaApplicationId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSipMediaApplicationId sets the SipMediaApplicationId field's value.
func (s *GetSipMediaApplicationLoggingConfigurationInput) SetSipMediaApplicationId(v string) *GetSipMediaApplicationLoggingConfigurationInput {
	s.SipMediaApplicationId = &v
	return s
}

type GetSipMediaApplicationLoggingConfigurationOutput struct {
	_ struct{} `type:"structure"`

	// The actual logging configuration.
	SipMediaApplicationLoggingConfiguration *SipMediaApplicationLoggingConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSipMediaApplicationLoggingConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSipMediaApplicationLoggingConfigurationOutput) GoString() string {
	return s.String()
}

// SetSipMediaApplicationLoggingConfiguration sets the SipMediaApplicationLoggingConfiguration field's value.
func (s *GetSipMediaApplicationLoggingConfigurationOutput) SetSipMediaApplicationLoggingConfiguration(v *SipMediaApplicationLoggingConfiguration) *GetSipMediaApplicationLoggingConfigurationOutput {
	s.SipMediaApplicationLoggingConfiguration = v
	return s
}

type GetSipMediaApplicationOutput struct {
	_ struct{} `type:"structure"`

	// The SIP media application details.
	SipMediaApplication *SipMediaApplication `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSipMediaApplicationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSipMediaApplicationOutput) GoString() string {
	return s.String()
}

// SetSipMediaApplication sets the SipMediaApplication field's value.
func (s *GetSipMediaApplicationOutput) SetSipMediaApplication(v *SipMediaApplication) *GetSipMediaApplicationOutput {
	s.SipMediaApplication = v
	return s
}

type GetSipRuleInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The SIP rule ID.
	//
	// SipRuleId is a required field
	SipRuleId *string `location:"uri" locationName:"sipRuleId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSipRuleInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSipRuleInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetSipRuleInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetSipRuleInput"}
	if s.SipRuleId == nil {
		invalidParams.Add(request.NewErrParamRequired("SipRuleId"))
	}
	if s.SipRuleId != nil && len(*s.SipRuleId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SipRuleId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSipRuleId sets the SipRuleId field's value.
func (s *GetSipRuleInput) SetSipRuleId(v string) *GetSipRuleInput {
	s.SipRuleId = &v
	return s
}

type GetSipRuleOutput struct {
	_ struct{} `type:"structure"`

	// The SIP rule details.
	SipRule *SipRule `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSipRuleOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSipRuleOutput) GoString() string {
	return s.String()
}

// SetSipRule sets the SipRule field's value.
func (s *GetSipRuleOutput) SetSipRule(v *SipRule) *GetSipRuleOutput {
	s.SipRule = v
	return s
}

type GetUserInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The user ID.
	//
	// UserId is a required field
	UserId *string `location:"uri" locationName:"userId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetUserInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.UserId == nil {
		invalidParams.Add(request.NewErrParamRequired("UserId"))
	}
	if s.UserId != nil && len(*s.UserId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UserId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *GetUserInput) SetAccountId(v string) *GetUserInput {
	s.AccountId = &v
	return s
}

// SetUserId sets the UserId field's value.
func (s *GetUserInput) SetUserId(v string) *GetUserInput {
	s.UserId = &v
	return s
}

type GetUserOutput struct {
	_ struct{} `type:"structure"`

	// The user details.
	User *User `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetUserOutput) GoString() string {
	return s.String()
}

// SetUser sets the User field's value.
func (s *GetUserOutput) SetUser(v *User) *GetUserOutput {
	s.User = v
	return s
}

type GetUserSettingsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The user ID.
	//
	// UserId is a required field
	UserId *string `location:"uri" locationName:"userId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetUserSettingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetUserSettingsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetUserSettingsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetUserSettingsInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.UserId == nil {
		invalidParams.Add(request.NewErrParamRequired("UserId"))
	}
	if s.UserId != nil && len(*s.UserId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UserId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *GetUserSettingsInput) SetAccountId(v string) *GetUserSettingsInput {
	s.AccountId = &v
	return s
}

// SetUserId sets the UserId field's value.
func (s *GetUserSettingsInput) SetUserId(v string) *GetUserSettingsInput {
	s.UserId = &v
	return s
}

type GetUserSettingsOutput struct {
	_ struct{} `type:"structure"`

	// The user settings.
	UserSettings *UserSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetUserSettingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetUserSettingsOutput) GoString() string {
	return s.String()
}

// SetUserSettings sets the UserSettings field's value.
func (s *GetUserSettingsOutput) SetUserSettings(v *UserSettings) *GetUserSettingsOutput {
	s.UserSettings = v
	return s
}

type GetVoiceConnectorEmergencyCallingConfigurationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorEmergencyCallingConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorEmergencyCallingConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetVoiceConnectorEmergencyCallingConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetVoiceConnectorEmergencyCallingConfigurationInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *GetVoiceConnectorEmergencyCallingConfigurationInput) SetVoiceConnectorId(v string) *GetVoiceConnectorEmergencyCallingConfigurationInput {
	s.VoiceConnectorId = &v
	return s
}

type GetVoiceConnectorEmergencyCallingConfigurationOutput struct {
	_ struct{} `type:"structure"`

	// The emergency calling configuration details.
	EmergencyCallingConfiguration *EmergencyCallingConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorEmergencyCallingConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorEmergencyCallingConfigurationOutput) GoString() string {
	return s.String()
}

// SetEmergencyCallingConfiguration sets the EmergencyCallingConfiguration field's value.
func (s *GetVoiceConnectorEmergencyCallingConfigurationOutput) SetEmergencyCallingConfiguration(v *EmergencyCallingConfiguration) *GetVoiceConnectorEmergencyCallingConfigurationOutput {
	s.EmergencyCallingConfiguration = v
	return s
}

type GetVoiceConnectorGroupInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector group ID.
	//
	// VoiceConnectorGroupId is a required field
	VoiceConnectorGroupId *string `location:"uri" locationName:"voiceConnectorGroupId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetVoiceConnectorGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetVoiceConnectorGroupInput"}
	if s.VoiceConnectorGroupId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorGroupId"))
	}
	if s.VoiceConnectorGroupId != nil && len(*s.VoiceConnectorGroupId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorGroupId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorGroupId sets the VoiceConnectorGroupId field's value.
func (s *GetVoiceConnectorGroupInput) SetVoiceConnectorGroupId(v string) *GetVoiceConnectorGroupInput {
	s.VoiceConnectorGroupId = &v
	return s
}

type GetVoiceConnectorGroupOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime Voice Connector group details.
	VoiceConnectorGroup *VoiceConnectorGroup `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorGroupOutput) GoString() string {
	return s.String()
}

// SetVoiceConnectorGroup sets the VoiceConnectorGroup field's value.
func (s *GetVoiceConnectorGroupOutput) SetVoiceConnectorGroup(v *VoiceConnectorGroup) *GetVoiceConnectorGroupOutput {
	s.VoiceConnectorGroup = v
	return s
}

type GetVoiceConnectorInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetVoiceConnectorInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetVoiceConnectorInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *GetVoiceConnectorInput) SetVoiceConnectorId(v string) *GetVoiceConnectorInput {
	s.VoiceConnectorId = &v
	return s
}

type GetVoiceConnectorLoggingConfigurationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorLoggingConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorLoggingConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetVoiceConnectorLoggingConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetVoiceConnectorLoggingConfigurationInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *GetVoiceConnectorLoggingConfigurationInput) SetVoiceConnectorId(v string) *GetVoiceConnectorLoggingConfigurationInput {
	s.VoiceConnectorId = &v
	return s
}

type GetVoiceConnectorLoggingConfigurationOutput struct {
	_ struct{} `type:"structure"`

	// The logging configuration details.
	LoggingConfiguration *LoggingConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorLoggingConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorLoggingConfigurationOutput) GoString() string {
	return s.String()
}

// SetLoggingConfiguration sets the LoggingConfiguration field's value.
func (s *GetVoiceConnectorLoggingConfigurationOutput) SetLoggingConfiguration(v *LoggingConfiguration) *GetVoiceConnectorLoggingConfigurationOutput {
	s.LoggingConfiguration = v
	return s
}

type GetVoiceConnectorOriginationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorOriginationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorOriginationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetVoiceConnectorOriginationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetVoiceConnectorOriginationInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *GetVoiceConnectorOriginationInput) SetVoiceConnectorId(v string) *GetVoiceConnectorOriginationInput {
	s.VoiceConnectorId = &v
	return s
}

type GetVoiceConnectorOriginationOutput struct {
	_ struct{} `type:"structure"`

	// The origination setting details.
	Origination *Origination `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorOriginationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorOriginationOutput) GoString() string {
	return s.String()
}

// SetOrigination sets the Origination field's value.
func (s *GetVoiceConnectorOriginationOutput) SetOrigination(v *Origination) *GetVoiceConnectorOriginationOutput {
	s.Origination = v
	return s
}

type GetVoiceConnectorOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime Voice Connector details.
	VoiceConnector *VoiceConnector `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorOutput) GoString() string {
	return s.String()
}

// SetVoiceConnector sets the VoiceConnector field's value.
func (s *GetVoiceConnectorOutput) SetVoiceConnector(v *VoiceConnector) *GetVoiceConnectorOutput {
	s.VoiceConnector = v
	return s
}

type GetVoiceConnectorProxyInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime voice connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorProxyInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorProxyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetVoiceConnectorProxyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetVoiceConnectorProxyInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *GetVoiceConnectorProxyInput) SetVoiceConnectorId(v string) *GetVoiceConnectorProxyInput {
	s.VoiceConnectorId = &v
	return s
}

type GetVoiceConnectorProxyOutput struct {
	_ struct{} `type:"structure"`

	// The proxy configuration details.
	Proxy *Proxy `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorProxyOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorProxyOutput) GoString() string {
	return s.String()
}

// SetProxy sets the Proxy field's value.
func (s *GetVoiceConnectorProxyOutput) SetProxy(v *Proxy) *GetVoiceConnectorProxyOutput {
	s.Proxy = v
	return s
}

type GetVoiceConnectorStreamingConfigurationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorStreamingConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorStreamingConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetVoiceConnectorStreamingConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetVoiceConnectorStreamingConfigurationInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *GetVoiceConnectorStreamingConfigurationInput) SetVoiceConnectorId(v string) *GetVoiceConnectorStreamingConfigurationInput {
	s.VoiceConnectorId = &v
	return s
}

type GetVoiceConnectorStreamingConfigurationOutput struct {
	_ struct{} `type:"structure"`

	// The streaming configuration details.
	StreamingConfiguration *StreamingConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorStreamingConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorStreamingConfigurationOutput) GoString() string {
	return s.String()
}

// SetStreamingConfiguration sets the StreamingConfiguration field's value.
func (s *GetVoiceConnectorStreamingConfigurationOutput) SetStreamingConfiguration(v *StreamingConfiguration) *GetVoiceConnectorStreamingConfigurationOutput {
	s.StreamingConfiguration = v
	return s
}

type GetVoiceConnectorTerminationHealthInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorTerminationHealthInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorTerminationHealthInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetVoiceConnectorTerminationHealthInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetVoiceConnectorTerminationHealthInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *GetVoiceConnectorTerminationHealthInput) SetVoiceConnectorId(v string) *GetVoiceConnectorTerminationHealthInput {
	s.VoiceConnectorId = &v
	return s
}

type GetVoiceConnectorTerminationHealthOutput struct {
	_ struct{} `type:"structure"`

	// The termination health details.
	TerminationHealth *TerminationHealth `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorTerminationHealthOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorTerminationHealthOutput) GoString() string {
	return s.String()
}

// SetTerminationHealth sets the TerminationHealth field's value.
func (s *GetVoiceConnectorTerminationHealthOutput) SetTerminationHealth(v *TerminationHealth) *GetVoiceConnectorTerminationHealthOutput {
	s.TerminationHealth = v
	return s
}

type GetVoiceConnectorTerminationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorTerminationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorTerminationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetVoiceConnectorTerminationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetVoiceConnectorTerminationInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *GetVoiceConnectorTerminationInput) SetVoiceConnectorId(v string) *GetVoiceConnectorTerminationInput {
	s.VoiceConnectorId = &v
	return s
}

type GetVoiceConnectorTerminationOutput struct {
	_ struct{} `type:"structure"`

	// The termination setting details.
	Termination *Termination `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorTerminationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetVoiceConnectorTerminationOutput) GoString() string {
	return s.String()
}

// SetTermination sets the Termination field's value.
func (s *GetVoiceConnectorTerminationOutput) SetTermination(v *Termination) *GetVoiceConnectorTerminationOutput {
	s.Termination = v
	return s
}

// The details of a user.
type Identity struct {
	_ struct{} `type:"structure"`

	// The ARN in an Identity.
	Arn *string `min:"5" type:"string"`

	// The name in an Identity.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Identity's
	// String and GoString methods.
	Name *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Identity) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Identity) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *Identity) SetArn(v string) *Identity {
	s.Arn = &v
	return s
}

// SetName sets the Name field's value.
func (s *Identity) SetName(v string) *Identity {
	s.Name = &v
	return s
}

// Invitation object returned after emailing users to invite them to join the
// Amazon Chime Team account.
type Invite struct {
	_ struct{} `type:"structure"`

	// The email address to which the invite is sent.
	//
	// EmailAddress is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Invite's
	// String and GoString methods.
	EmailAddress *string `type:"string" sensitive:"true"`

	// The status of the invite email.
	EmailStatus *string `type:"string" enum:"EmailStatus"`

	// The invite ID.
	InviteId *string `type:"string"`

	// The status of the invite.
	Status *string `type:"string" enum:"InviteStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Invite) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Invite) GoString() string {
	return s.String()
}

// SetEmailAddress sets the EmailAddress field's value.
func (s *Invite) SetEmailAddress(v string) *Invite {
	s.EmailAddress = &v
	return s
}

// SetEmailStatus sets the EmailStatus field's value.
func (s *Invite) SetEmailStatus(v string) *Invite {
	s.EmailStatus = &v
	return s
}

// SetInviteId sets the InviteId field's value.
func (s *Invite) SetInviteId(v string) *Invite {
	s.InviteId = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *Invite) SetStatus(v string) *Invite {
	s.Status = &v
	return s
}

type InviteUsersInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The user email addresses to which to send the email invitation.
	//
	// UserEmailList is a required field
	UserEmailList []*string `type:"list" required:"true"`

	// The user type.
	UserType *string `type:"string" enum:"UserType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InviteUsersInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InviteUsersInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InviteUsersInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InviteUsersInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.UserEmailList == nil {
		invalidParams.Add(request.NewErrParamRequired("UserEmailList"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *InviteUsersInput) SetAccountId(v string) *InviteUsersInput {
	s.AccountId = &v
	return s
}

// SetUserEmailList sets the UserEmailList field's value.
func (s *InviteUsersInput) SetUserEmailList(v []*string) *InviteUsersInput {
	s.UserEmailList = v
	return s
}

// SetUserType sets the UserType field's value.
func (s *InviteUsersInput) SetUserType(v string) *InviteUsersInput {
	s.UserType = &v
	return s
}

type InviteUsersOutput struct {
	_ struct{} `type:"structure"`

	// The email invitation details.
	Invites []*Invite `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InviteUsersOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InviteUsersOutput) GoString() string {
	return s.String()
}

// SetInvites sets the Invites field's value.
func (s *InviteUsersOutput) SetInvites(v []*Invite) *InviteUsersOutput {
	s.Invites = v
	return s
}

type ListAccountsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of results to return in a single call. Defaults to 100.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// Amazon Chime account name prefix with which to filter results.
	Name *string `location:"querystring" locationName:"name" min:"1" type:"string"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`

	// User email address with which to filter results.
	//
	// UserEmail is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListAccountsInput's
	// String and GoString methods.
	UserEmail *string `location:"querystring" locationName:"user-email" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAccountsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAccountsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAccountsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAccountsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAccountsInput) SetMaxResults(v int64) *ListAccountsInput {
	s.MaxResults = &v
	return s
}

// SetName sets the Name field's value.
func (s *ListAccountsInput) SetName(v string) *ListAccountsInput {
	s.Name = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAccountsInput) SetNextToken(v string) *ListAccountsInput {
	s.NextToken = &v
	return s
}

// SetUserEmail sets the UserEmail field's value.
func (s *ListAccountsInput) SetUserEmail(v string) *ListAccountsInput {
	s.UserEmail = &v
	return s
}

type ListAccountsOutput struct {
	_ struct{} `type:"structure"`

	// List of Amazon Chime accounts and account details.
	Accounts []*Account `type:"list"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAccountsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAccountsOutput) GoString() string {
	return s.String()
}

// SetAccounts sets the Accounts field's value.
func (s *ListAccountsOutput) SetAccounts(v []*Account) *ListAccountsOutput {
	s.Accounts = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAccountsOutput) SetNextToken(v string) *ListAccountsOutput {
	s.NextToken = &v
	return s
}

type ListAppInstanceAdminsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the AppInstance.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"uri" locationName:"appInstanceArn" min:"5" type:"string" required:"true"`

	// The maximum number of administrators that you want to return.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token returned from previous API requests until the number of administrators
	// is reached.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListAppInstanceAdminsInput's
	// String and GoString methods.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppInstanceAdminsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppInstanceAdminsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAppInstanceAdminsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAppInstanceAdminsInput"}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *ListAppInstanceAdminsInput) SetAppInstanceArn(v string) *ListAppInstanceAdminsInput {
	s.AppInstanceArn = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAppInstanceAdminsInput) SetMaxResults(v int64) *ListAppInstanceAdminsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAppInstanceAdminsInput) SetNextToken(v string) *ListAppInstanceAdminsInput {
	s.NextToken = &v
	return s
}

type ListAppInstanceAdminsOutput struct {
	_ struct{} `type:"structure"`

	// The information for each administrator.
	AppInstanceAdmins []*AppInstanceAdminSummary `type:"list"`

	// The ARN of the AppInstance.
	AppInstanceArn *string `min:"5" type:"string"`

	// The token returned from previous API requests until the number of administrators
	// is reached.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListAppInstanceAdminsOutput's
	// String and GoString methods.
	NextToken *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppInstanceAdminsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppInstanceAdminsOutput) GoString() string {
	return s.String()
}

// SetAppInstanceAdmins sets the AppInstanceAdmins field's value.
func (s *ListAppInstanceAdminsOutput) SetAppInstanceAdmins(v []*AppInstanceAdminSummary) *ListAppInstanceAdminsOutput {
	s.AppInstanceAdmins = v
	return s
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *ListAppInstanceAdminsOutput) SetAppInstanceArn(v string) *ListAppInstanceAdminsOutput {
	s.AppInstanceArn = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAppInstanceAdminsOutput) SetNextToken(v string) *ListAppInstanceAdminsOutput {
	s.NextToken = &v
	return s
}

type ListAppInstanceUsersInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the AppInstance.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"querystring" locationName:"app-instance-arn" min:"5" type:"string" required:"true"`

	// The maximum number of requests that you want returned.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token passed by previous API calls until all requested users are returned.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListAppInstanceUsersInput's
	// String and GoString methods.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppInstanceUsersInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppInstanceUsersInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAppInstanceUsersInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAppInstanceUsersInput"}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *ListAppInstanceUsersInput) SetAppInstanceArn(v string) *ListAppInstanceUsersInput {
	s.AppInstanceArn = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAppInstanceUsersInput) SetMaxResults(v int64) *ListAppInstanceUsersInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAppInstanceUsersInput) SetNextToken(v string) *ListAppInstanceUsersInput {
	s.NextToken = &v
	return s
}

type ListAppInstanceUsersOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the AppInstance.
	AppInstanceArn *string `min:"5" type:"string"`

	// The information for each requested AppInstanceUser.
	AppInstanceUsers []*AppInstanceUserSummary `type:"list"`

	// The token passed by previous API calls until all requested users are returned.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListAppInstanceUsersOutput's
	// String and GoString methods.
	NextToken *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppInstanceUsersOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppInstanceUsersOutput) GoString() string {
	return s.String()
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *ListAppInstanceUsersOutput) SetAppInstanceArn(v string) *ListAppInstanceUsersOutput {
	s.AppInstanceArn = &v
	return s
}

// SetAppInstanceUsers sets the AppInstanceUsers field's value.
func (s *ListAppInstanceUsersOutput) SetAppInstanceUsers(v []*AppInstanceUserSummary) *ListAppInstanceUsersOutput {
	s.AppInstanceUsers = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAppInstanceUsersOutput) SetNextToken(v string) *ListAppInstanceUsersOutput {
	s.NextToken = &v
	return s
}

type ListAppInstancesInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of AppInstances that you want to return.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token passed by previous API requests until you reach the maximum number
	// of AppInstances.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListAppInstancesInput's
	// String and GoString methods.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppInstancesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppInstancesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAppInstancesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAppInstancesInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAppInstancesInput) SetMaxResults(v int64) *ListAppInstancesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAppInstancesInput) SetNextToken(v string) *ListAppInstancesInput {
	s.NextToken = &v
	return s
}

type ListAppInstancesOutput struct {
	_ struct{} `type:"structure"`

	// The information for each AppInstance.
	AppInstances []*AppInstanceSummary `type:"list"`

	// The token passed by previous API requests until the maximum number of AppInstances
	// is reached.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListAppInstancesOutput's
	// String and GoString methods.
	NextToken *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppInstancesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppInstancesOutput) GoString() string {
	return s.String()
}

// SetAppInstances sets the AppInstances field's value.
func (s *ListAppInstancesOutput) SetAppInstances(v []*AppInstanceSummary) *ListAppInstancesOutput {
	s.AppInstances = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAppInstancesOutput) SetNextToken(v string) *ListAppInstancesOutput {
	s.NextToken = &v
	return s
}

type ListAttendeeTagsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime SDK attendee ID.
	//
	// AttendeeId is a required field
	AttendeeId *string `location:"uri" locationName:"attendeeId" type:"string" required:"true"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAttendeeTagsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAttendeeTagsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAttendeeTagsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAttendeeTagsInput"}
	if s.AttendeeId == nil {
		invalidParams.Add(request.NewErrParamRequired("AttendeeId"))
	}
	if s.AttendeeId != nil && len(*s.AttendeeId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AttendeeId", 1))
	}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAttendeeId sets the AttendeeId field's value.
func (s *ListAttendeeTagsInput) SetAttendeeId(v string) *ListAttendeeTagsInput {
	s.AttendeeId = &v
	return s
}

// SetMeetingId sets the MeetingId field's value.
func (s *ListAttendeeTagsInput) SetMeetingId(v string) *ListAttendeeTagsInput {
	s.MeetingId = &v
	return s
}

type ListAttendeeTagsOutput struct {
	_ struct{} `type:"structure"`

	// A list of tag key-value pairs.
	Tags []*Tag `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAttendeeTagsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAttendeeTagsOutput) GoString() string {
	return s.String()
}

// SetTags sets the Tags field's value.
func (s *ListAttendeeTagsOutput) SetTags(v []*Tag) *ListAttendeeTagsOutput {
	s.Tags = v
	return s
}

type ListAttendeesInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of results to return in a single call.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAttendeesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAttendeesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAttendeesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAttendeesInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAttendeesInput) SetMaxResults(v int64) *ListAttendeesInput {
	s.MaxResults = &v
	return s
}

// SetMeetingId sets the MeetingId field's value.
func (s *ListAttendeesInput) SetMeetingId(v string) *ListAttendeesInput {
	s.MeetingId = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAttendeesInput) SetNextToken(v string) *ListAttendeesInput {
	s.NextToken = &v
	return s
}

type ListAttendeesOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime SDK attendee information.
	Attendees []*Attendee `type:"list"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAttendeesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAttendeesOutput) GoString() string {
	return s.String()
}

// SetAttendees sets the Attendees field's value.
func (s *ListAttendeesOutput) SetAttendees(v []*Attendee) *ListAttendeesOutput {
	s.Attendees = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAttendeesOutput) SetNextToken(v string) *ListAttendeesOutput {
	s.NextToken = &v
	return s
}

type ListBotsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The maximum number of results to return in a single call. The default is
	// 10.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListBotsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListBotsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListBotsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListBotsInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *ListBotsInput) SetAccountId(v string) *ListBotsInput {
	s.AccountId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListBotsInput) SetMaxResults(v int64) *ListBotsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListBotsInput) SetNextToken(v string) *ListBotsInput {
	s.NextToken = &v
	return s
}

type ListBotsOutput struct {
	_ struct{} `type:"structure"`

	// List of bots and bot details.
	Bots []*Bot `type:"list"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListBotsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListBotsOutput) GoString() string {
	return s.String()
}

// SetBots sets the Bots field's value.
func (s *ListBotsOutput) SetBots(v []*Bot) *ListBotsOutput {
	s.Bots = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListBotsOutput) SetNextToken(v string) *ListBotsOutput {
	s.NextToken = &v
	return s
}

type ListChannelBansInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The maximum number of bans that you want returned.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token passed by previous API calls until all requested bans are returned.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelBansInput's
	// String and GoString methods.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelBansInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelBansInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListChannelBansInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListChannelBansInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *ListChannelBansInput) SetChannelArn(v string) *ListChannelBansInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *ListChannelBansInput) SetChimeBearer(v string) *ListChannelBansInput {
	s.ChimeBearer = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListChannelBansInput) SetMaxResults(v int64) *ListChannelBansInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelBansInput) SetNextToken(v string) *ListChannelBansInput {
	s.NextToken = &v
	return s
}

type ListChannelBansOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	ChannelArn *string `min:"5" type:"string"`

	// The information for each requested ban.
	ChannelBans []*ChannelBanSummary `type:"list"`

	// The token passed by previous API calls until all requested bans are returned.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelBansOutput's
	// String and GoString methods.
	NextToken *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelBansOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelBansOutput) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *ListChannelBansOutput) SetChannelArn(v string) *ListChannelBansOutput {
	s.ChannelArn = &v
	return s
}

// SetChannelBans sets the ChannelBans field's value.
func (s *ListChannelBansOutput) SetChannelBans(v []*ChannelBanSummary) *ListChannelBansOutput {
	s.ChannelBans = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelBansOutput) SetNextToken(v string) *ListChannelBansOutput {
	s.NextToken = &v
	return s
}

type ListChannelMembershipsForAppInstanceUserInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the AppInstanceUsers
	AppInstanceUserArn *string `location:"querystring" locationName:"app-instance-user-arn" min:"5" type:"string"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The maximum number of users that you want returned.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token returned from previous API requests until the number of channel
	// memberships is reached.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelMembershipsForAppInstanceUserInput's
	// String and GoString methods.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelMembershipsForAppInstanceUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelMembershipsForAppInstanceUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListChannelMembershipsForAppInstanceUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListChannelMembershipsForAppInstanceUserInput"}
	if s.AppInstanceUserArn != nil && len(*s.AppInstanceUserArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceUserArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceUserArn sets the AppInstanceUserArn field's value.
func (s *ListChannelMembershipsForAppInstanceUserInput) SetAppInstanceUserArn(v string) *ListChannelMembershipsForAppInstanceUserInput {
	s.AppInstanceUserArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *ListChannelMembershipsForAppInstanceUserInput) SetChimeBearer(v string) *ListChannelMembershipsForAppInstanceUserInput {
	s.ChimeBearer = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListChannelMembershipsForAppInstanceUserInput) SetMaxResults(v int64) *ListChannelMembershipsForAppInstanceUserInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelMembershipsForAppInstanceUserInput) SetNextToken(v string) *ListChannelMembershipsForAppInstanceUserInput {
	s.NextToken = &v
	return s
}

type ListChannelMembershipsForAppInstanceUserOutput struct {
	_ struct{} `type:"structure"`

	// The information for the requested channel memberships.
	ChannelMemberships []*ChannelMembershipForAppInstanceUserSummary `type:"list"`

	// The token passed by previous API calls until all requested users are returned.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelMembershipsForAppInstanceUserOutput's
	// String and GoString methods.
	NextToken *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelMembershipsForAppInstanceUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelMembershipsForAppInstanceUserOutput) GoString() string {
	return s.String()
}

// SetChannelMemberships sets the ChannelMemberships field's value.
func (s *ListChannelMembershipsForAppInstanceUserOutput) SetChannelMemberships(v []*ChannelMembershipForAppInstanceUserSummary) *ListChannelMembershipsForAppInstanceUserOutput {
	s.ChannelMemberships = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelMembershipsForAppInstanceUserOutput) SetNextToken(v string) *ListChannelMembershipsForAppInstanceUserOutput {
	s.NextToken = &v
	return s
}

type ListChannelMembershipsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of channel memberships that you want returned.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The maximum number of channel memberships that you want returned.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token passed by previous API calls until all requested channel memberships
	// are returned.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelMembershipsInput's
	// String and GoString methods.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string" sensitive:"true"`

	// The membership type of a user, DEFAULT or HIDDEN. Default members are always
	// returned as part of ListChannelMemberships. Hidden members are only returned
	// if the type filter in ListChannelMemberships equals HIDDEN. Otherwise hidden
	// members are not returned.
	Type *string `location:"querystring" locationName:"type" type:"string" enum:"ChannelMembershipType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelMembershipsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelMembershipsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListChannelMembershipsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListChannelMembershipsInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *ListChannelMembershipsInput) SetChannelArn(v string) *ListChannelMembershipsInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *ListChannelMembershipsInput) SetChimeBearer(v string) *ListChannelMembershipsInput {
	s.ChimeBearer = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListChannelMembershipsInput) SetMaxResults(v int64) *ListChannelMembershipsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelMembershipsInput) SetNextToken(v string) *ListChannelMembershipsInput {
	s.NextToken = &v
	return s
}

// SetType sets the Type field's value.
func (s *ListChannelMembershipsInput) SetType(v string) *ListChannelMembershipsInput {
	s.Type = &v
	return s
}

type ListChannelMembershipsOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	ChannelArn *string `min:"5" type:"string"`

	// The information for the requested channel memberships.
	ChannelMemberships []*ChannelMembershipSummary `type:"list"`

	// The token passed by previous API calls until all requested channel memberships
	// are returned.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelMembershipsOutput's
	// String and GoString methods.
	NextToken *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelMembershipsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelMembershipsOutput) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *ListChannelMembershipsOutput) SetChannelArn(v string) *ListChannelMembershipsOutput {
	s.ChannelArn = &v
	return s
}

// SetChannelMemberships sets the ChannelMemberships field's value.
func (s *ListChannelMembershipsOutput) SetChannelMemberships(v []*ChannelMembershipSummary) *ListChannelMembershipsOutput {
	s.ChannelMemberships = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelMembershipsOutput) SetNextToken(v string) *ListChannelMembershipsOutput {
	s.NextToken = &v
	return s
}

type ListChannelMessagesInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The maximum number of messages that you want returned.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token passed by previous API calls until all requested messages are returned.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelMessagesInput's
	// String and GoString methods.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string" sensitive:"true"`

	// The final or ending time stamp for your requested messages.
	NotAfter *time.Time `location:"querystring" locationName:"not-after" type:"timestamp"`

	// The initial or starting time stamp for your requested messages.
	NotBefore *time.Time `location:"querystring" locationName:"not-before" type:"timestamp"`

	// The order in which you want messages sorted. Default is Descending, based
	// on time created.
	SortOrder *string `location:"querystring" locationName:"sort-order" type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelMessagesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelMessagesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListChannelMessagesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListChannelMessagesInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *ListChannelMessagesInput) SetChannelArn(v string) *ListChannelMessagesInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *ListChannelMessagesInput) SetChimeBearer(v string) *ListChannelMessagesInput {
	s.ChimeBearer = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListChannelMessagesInput) SetMaxResults(v int64) *ListChannelMessagesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelMessagesInput) SetNextToken(v string) *ListChannelMessagesInput {
	s.NextToken = &v
	return s
}

// SetNotAfter sets the NotAfter field's value.
func (s *ListChannelMessagesInput) SetNotAfter(v time.Time) *ListChannelMessagesInput {
	s.NotAfter = &v
	return s
}

// SetNotBefore sets the NotBefore field's value.
func (s *ListChannelMessagesInput) SetNotBefore(v time.Time) *ListChannelMessagesInput {
	s.NotBefore = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListChannelMessagesInput) SetSortOrder(v string) *ListChannelMessagesInput {
	s.SortOrder = &v
	return s
}

type ListChannelMessagesOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel containing the requested messages.
	ChannelArn *string `min:"5" type:"string"`

	// The information about, and content of, each requested message.
	ChannelMessages []*ChannelMessageSummary `type:"list"`

	// The token passed by previous API calls until all requested messages are returned.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelMessagesOutput's
	// String and GoString methods.
	NextToken *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelMessagesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelMessagesOutput) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *ListChannelMessagesOutput) SetChannelArn(v string) *ListChannelMessagesOutput {
	s.ChannelArn = &v
	return s
}

// SetChannelMessages sets the ChannelMessages field's value.
func (s *ListChannelMessagesOutput) SetChannelMessages(v []*ChannelMessageSummary) *ListChannelMessagesOutput {
	s.ChannelMessages = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelMessagesOutput) SetNextToken(v string) *ListChannelMessagesOutput {
	s.NextToken = &v
	return s
}

type ListChannelModeratorsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The maximum number of moderators that you want returned.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token passed by previous API calls until all requested moderators are
	// returned.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelModeratorsInput's
	// String and GoString methods.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelModeratorsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelModeratorsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListChannelModeratorsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListChannelModeratorsInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *ListChannelModeratorsInput) SetChannelArn(v string) *ListChannelModeratorsInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *ListChannelModeratorsInput) SetChimeBearer(v string) *ListChannelModeratorsInput {
	s.ChimeBearer = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListChannelModeratorsInput) SetMaxResults(v int64) *ListChannelModeratorsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelModeratorsInput) SetNextToken(v string) *ListChannelModeratorsInput {
	s.NextToken = &v
	return s
}

type ListChannelModeratorsOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	ChannelArn *string `min:"5" type:"string"`

	// The information about and names of each moderator.
	ChannelModerators []*ChannelModeratorSummary `type:"list"`

	// The token passed by previous API calls until all requested moderators are
	// returned.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelModeratorsOutput's
	// String and GoString methods.
	NextToken *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelModeratorsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelModeratorsOutput) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *ListChannelModeratorsOutput) SetChannelArn(v string) *ListChannelModeratorsOutput {
	s.ChannelArn = &v
	return s
}

// SetChannelModerators sets the ChannelModerators field's value.
func (s *ListChannelModeratorsOutput) SetChannelModerators(v []*ChannelModeratorSummary) *ListChannelModeratorsOutput {
	s.ChannelModerators = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelModeratorsOutput) SetNextToken(v string) *ListChannelModeratorsOutput {
	s.NextToken = &v
	return s
}

type ListChannelsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the AppInstance.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"querystring" locationName:"app-instance-arn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The maximum number of channels that you want to return.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token passed by previous API calls until all requested channels are returned.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelsInput's
	// String and GoString methods.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string" sensitive:"true"`

	// The privacy setting. PUBLIC retrieves all the public channels. PRIVATE retrieves
	// private channels. Only an AppInstanceAdmin can retrieve private channels.
	Privacy *string `location:"querystring" locationName:"privacy" type:"string" enum:"ChannelPrivacy"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListChannelsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListChannelsInput"}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *ListChannelsInput) SetAppInstanceArn(v string) *ListChannelsInput {
	s.AppInstanceArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *ListChannelsInput) SetChimeBearer(v string) *ListChannelsInput {
	s.ChimeBearer = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListChannelsInput) SetMaxResults(v int64) *ListChannelsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelsInput) SetNextToken(v string) *ListChannelsInput {
	s.NextToken = &v
	return s
}

// SetPrivacy sets the Privacy field's value.
func (s *ListChannelsInput) SetPrivacy(v string) *ListChannelsInput {
	s.Privacy = &v
	return s
}

type ListChannelsModeratedByAppInstanceUserInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the user in the moderated channel.
	AppInstanceUserArn *string `location:"querystring" locationName:"app-instance-user-arn" min:"5" type:"string"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The maximum number of channels in the request.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token returned from previous API requests until the number of channels
	// moderated by the user is reached.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelsModeratedByAppInstanceUserInput's
	// String and GoString methods.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelsModeratedByAppInstanceUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelsModeratedByAppInstanceUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListChannelsModeratedByAppInstanceUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListChannelsModeratedByAppInstanceUserInput"}
	if s.AppInstanceUserArn != nil && len(*s.AppInstanceUserArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceUserArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceUserArn sets the AppInstanceUserArn field's value.
func (s *ListChannelsModeratedByAppInstanceUserInput) SetAppInstanceUserArn(v string) *ListChannelsModeratedByAppInstanceUserInput {
	s.AppInstanceUserArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *ListChannelsModeratedByAppInstanceUserInput) SetChimeBearer(v string) *ListChannelsModeratedByAppInstanceUserInput {
	s.ChimeBearer = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListChannelsModeratedByAppInstanceUserInput) SetMaxResults(v int64) *ListChannelsModeratedByAppInstanceUserInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelsModeratedByAppInstanceUserInput) SetNextToken(v string) *ListChannelsModeratedByAppInstanceUserInput {
	s.NextToken = &v
	return s
}

type ListChannelsModeratedByAppInstanceUserOutput struct {
	_ struct{} `type:"structure"`

	// The moderated channels in the request.
	Channels []*ChannelModeratedByAppInstanceUserSummary `type:"list"`

	// The token returned from previous API requests until the number of channels
	// moderated by the user is reached.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelsModeratedByAppInstanceUserOutput's
	// String and GoString methods.
	NextToken *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelsModeratedByAppInstanceUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelsModeratedByAppInstanceUserOutput) GoString() string {
	return s.String()
}

// SetChannels sets the Channels field's value.
func (s *ListChannelsModeratedByAppInstanceUserOutput) SetChannels(v []*ChannelModeratedByAppInstanceUserSummary) *ListChannelsModeratedByAppInstanceUserOutput {
	s.Channels = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelsModeratedByAppInstanceUserOutput) SetNextToken(v string) *ListChannelsModeratedByAppInstanceUserOutput {
	s.NextToken = &v
	return s
}

type ListChannelsOutput struct {
	_ struct{} `type:"structure"`

	// The information about each channel.
	Channels []*ChannelSummary `type:"list"`

	// The token returned from previous API requests until the number of channels
	// is reached.
	//
	// NextToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListChannelsOutput's
	// String and GoString methods.
	NextToken *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChannelsOutput) GoString() string {
	return s.String()
}

// SetChannels sets the Channels field's value.
func (s *ListChannelsOutput) SetChannels(v []*ChannelSummary) *ListChannelsOutput {
	s.Channels = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChannelsOutput) SetNextToken(v string) *ListChannelsOutput {
	s.NextToken = &v
	return s
}

type ListMediaCapturePipelinesInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of results to return in a single call. Valid Range: 1
	// - 99.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token used to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMediaCapturePipelinesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMediaCapturePipelinesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListMediaCapturePipelinesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListMediaCapturePipelinesInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListMediaCapturePipelinesInput) SetMaxResults(v int64) *ListMediaCapturePipelinesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListMediaCapturePipelinesInput) SetNextToken(v string) *ListMediaCapturePipelinesInput {
	s.NextToken = &v
	return s
}

type ListMediaCapturePipelinesOutput struct {
	_ struct{} `type:"structure"`

	// The media capture pipeline objects in the list.
	MediaCapturePipelines []*MediaCapturePipeline `type:"list"`

	// The token used to retrieve the next page of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMediaCapturePipelinesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMediaCapturePipelinesOutput) GoString() string {
	return s.String()
}

// SetMediaCapturePipelines sets the MediaCapturePipelines field's value.
func (s *ListMediaCapturePipelinesOutput) SetMediaCapturePipelines(v []*MediaCapturePipeline) *ListMediaCapturePipelinesOutput {
	s.MediaCapturePipelines = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListMediaCapturePipelinesOutput) SetNextToken(v string) *ListMediaCapturePipelinesOutput {
	s.NextToken = &v
	return s
}

type ListMeetingTagsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMeetingTagsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMeetingTagsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListMeetingTagsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListMeetingTagsInput"}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMeetingId sets the MeetingId field's value.
func (s *ListMeetingTagsInput) SetMeetingId(v string) *ListMeetingTagsInput {
	s.MeetingId = &v
	return s
}

type ListMeetingTagsOutput struct {
	_ struct{} `type:"structure"`

	// A list of tag key-value pairs.
	Tags []*Tag `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMeetingTagsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMeetingTagsOutput) GoString() string {
	return s.String()
}

// SetTags sets the Tags field's value.
func (s *ListMeetingTagsOutput) SetTags(v []*Tag) *ListMeetingTagsOutput {
	s.Tags = v
	return s
}

type ListMeetingsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of results to return in a single call.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMeetingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMeetingsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListMeetingsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListMeetingsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListMeetingsInput) SetMaxResults(v int64) *ListMeetingsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListMeetingsInput) SetNextToken(v string) *ListMeetingsInput {
	s.NextToken = &v
	return s
}

type ListMeetingsOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime SDK meeting information.
	Meetings []*Meeting `type:"list"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMeetingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMeetingsOutput) GoString() string {
	return s.String()
}

// SetMeetings sets the Meetings field's value.
func (s *ListMeetingsOutput) SetMeetings(v []*Meeting) *ListMeetingsOutput {
	s.Meetings = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListMeetingsOutput) SetNextToken(v string) *ListMeetingsOutput {
	s.NextToken = &v
	return s
}

type ListPhoneNumberOrdersInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of results to return in a single call.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPhoneNumberOrdersInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPhoneNumberOrdersInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListPhoneNumberOrdersInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListPhoneNumberOrdersInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListPhoneNumberOrdersInput) SetMaxResults(v int64) *ListPhoneNumberOrdersInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListPhoneNumberOrdersInput) SetNextToken(v string) *ListPhoneNumberOrdersInput {
	s.NextToken = &v
	return s
}

type ListPhoneNumberOrdersOutput struct {
	_ struct{} `type:"structure"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`

	// The phone number order details.
	PhoneNumberOrders []*PhoneNumberOrder `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPhoneNumberOrdersOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPhoneNumberOrdersOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListPhoneNumberOrdersOutput) SetNextToken(v string) *ListPhoneNumberOrdersOutput {
	s.NextToken = &v
	return s
}

// SetPhoneNumberOrders sets the PhoneNumberOrders field's value.
func (s *ListPhoneNumberOrdersOutput) SetPhoneNumberOrders(v []*PhoneNumberOrder) *ListPhoneNumberOrdersOutput {
	s.PhoneNumberOrders = v
	return s
}

type ListPhoneNumbersInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The filter to use to limit the number of results.
	FilterName *string `location:"querystring" locationName:"filter-name" type:"string" enum:"PhoneNumberAssociationName"`

	// The value to use for the filter.
	FilterValue *string `location:"querystring" locationName:"filter-value" type:"string"`

	// The maximum number of results to return in a single call.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`

	// The phone number product type.
	ProductType *string `location:"querystring" locationName:"product-type" type:"string" enum:"PhoneNumberProductType"`

	// The phone number status.
	Status *string `location:"querystring" locationName:"status" type:"string" enum:"PhoneNumberStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPhoneNumbersInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPhoneNumbersInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListPhoneNumbersInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListPhoneNumbersInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFilterName sets the FilterName field's value.
func (s *ListPhoneNumbersInput) SetFilterName(v string) *ListPhoneNumbersInput {
	s.FilterName = &v
	return s
}

// SetFilterValue sets the FilterValue field's value.
func (s *ListPhoneNumbersInput) SetFilterValue(v string) *ListPhoneNumbersInput {
	s.FilterValue = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListPhoneNumbersInput) SetMaxResults(v int64) *ListPhoneNumbersInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListPhoneNumbersInput) SetNextToken(v string) *ListPhoneNumbersInput {
	s.NextToken = &v
	return s
}

// SetProductType sets the ProductType field's value.
func (s *ListPhoneNumbersInput) SetProductType(v string) *ListPhoneNumbersInput {
	s.ProductType = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ListPhoneNumbersInput) SetStatus(v string) *ListPhoneNumbersInput {
	s.Status = &v
	return s
}

type ListPhoneNumbersOutput struct {
	_ struct{} `type:"structure"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`

	// The phone number details.
	PhoneNumbers []*PhoneNumber `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPhoneNumbersOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPhoneNumbersOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListPhoneNumbersOutput) SetNextToken(v string) *ListPhoneNumbersOutput {
	s.NextToken = &v
	return s
}

// SetPhoneNumbers sets the PhoneNumbers field's value.
func (s *ListPhoneNumbersOutput) SetPhoneNumbers(v []*PhoneNumber) *ListPhoneNumbersOutput {
	s.PhoneNumbers = v
	return s
}

type ListProxySessionsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of results to return in a single call.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`

	// The proxy session status.
	Status *string `location:"querystring" locationName:"status" type:"string" enum:"ProxySessionStatus"`

	// The Amazon Chime voice connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProxySessionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProxySessionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListProxySessionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListProxySessionsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListProxySessionsInput) SetMaxResults(v int64) *ListProxySessionsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListProxySessionsInput) SetNextToken(v string) *ListProxySessionsInput {
	s.NextToken = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ListProxySessionsInput) SetStatus(v string) *ListProxySessionsInput {
	s.Status = &v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *ListProxySessionsInput) SetVoiceConnectorId(v string) *ListProxySessionsInput {
	s.VoiceConnectorId = &v
	return s
}

type ListProxySessionsOutput struct {
	_ struct{} `type:"structure"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`

	// The proxy session details.
	ProxySessions []*ProxySession `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProxySessionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProxySessionsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListProxySessionsOutput) SetNextToken(v string) *ListProxySessionsOutput {
	s.NextToken = &v
	return s
}

// SetProxySessions sets the ProxySessions field's value.
func (s *ListProxySessionsOutput) SetProxySessions(v []*ProxySession) *ListProxySessionsOutput {
	s.ProxySessions = v
	return s
}

type ListRoomMembershipsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The maximum number of results to return in a single call.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`

	// The room ID.
	//
	// RoomId is a required field
	RoomId *string `location:"uri" locationName:"roomId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListRoomMembershipsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListRoomMembershipsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListRoomMembershipsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListRoomMembershipsInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.RoomId == nil {
		invalidParams.Add(request.NewErrParamRequired("RoomId"))
	}
	if s.RoomId != nil && len(*s.RoomId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RoomId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *ListRoomMembershipsInput) SetAccountId(v string) *ListRoomMembershipsInput {
	s.AccountId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListRoomMembershipsInput) SetMaxResults(v int64) *ListRoomMembershipsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListRoomMembershipsInput) SetNextToken(v string) *ListRoomMembershipsInput {
	s.NextToken = &v
	return s
}

// SetRoomId sets the RoomId field's value.
func (s *ListRoomMembershipsInput) SetRoomId(v string) *ListRoomMembershipsInput {
	s.RoomId = &v
	return s
}

type ListRoomMembershipsOutput struct {
	_ struct{} `type:"structure"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`

	// The room membership details.
	RoomMemberships []*RoomMembership `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListRoomMembershipsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListRoomMembershipsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListRoomMembershipsOutput) SetNextToken(v string) *ListRoomMembershipsOutput {
	s.NextToken = &v
	return s
}

// SetRoomMemberships sets the RoomMemberships field's value.
func (s *ListRoomMembershipsOutput) SetRoomMemberships(v []*RoomMembership) *ListRoomMembershipsOutput {
	s.RoomMemberships = v
	return s
}

type ListRoomsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The maximum number of results to return in a single call.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The member ID (user ID or bot ID).
	MemberId *string `location:"querystring" locationName:"member-id" type:"string"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListRoomsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListRoomsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListRoomsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListRoomsInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *ListRoomsInput) SetAccountId(v string) *ListRoomsInput {
	s.AccountId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListRoomsInput) SetMaxResults(v int64) *ListRoomsInput {
	s.MaxResults = &v
	return s
}

// SetMemberId sets the MemberId field's value.
func (s *ListRoomsInput) SetMemberId(v string) *ListRoomsInput {
	s.MemberId = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListRoomsInput) SetNextToken(v string) *ListRoomsInput {
	s.NextToken = &v
	return s
}

type ListRoomsOutput struct {
	_ struct{} `type:"structure"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`

	// The room details.
	Rooms []*Room `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListRoomsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListRoomsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListRoomsOutput) SetNextToken(v string) *ListRoomsOutput {
	s.NextToken = &v
	return s
}

// SetRooms sets the Rooms field's value.
func (s *ListRoomsOutput) SetRooms(v []*Room) *ListRoomsOutput {
	s.Rooms = v
	return s
}

type ListSipMediaApplicationsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of results to return in a single call. Defaults to 100.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSipMediaApplicationsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSipMediaApplicationsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListSipMediaApplicationsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListSipMediaApplicationsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListSipMediaApplicationsInput) SetMaxResults(v int64) *ListSipMediaApplicationsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSipMediaApplicationsInput) SetNextToken(v string) *ListSipMediaApplicationsInput {
	s.NextToken = &v
	return s
}

type ListSipMediaApplicationsOutput struct {
	_ struct{} `type:"structure"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`

	// List of SIP media applications and application details.
	SipMediaApplications []*SipMediaApplication `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSipMediaApplicationsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSipMediaApplicationsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListSipMediaApplicationsOutput) SetNextToken(v string) *ListSipMediaApplicationsOutput {
	s.NextToken = &v
	return s
}

// SetSipMediaApplications sets the SipMediaApplications field's value.
func (s *ListSipMediaApplicationsOutput) SetSipMediaApplications(v []*SipMediaApplication) *ListSipMediaApplicationsOutput {
	s.SipMediaApplications = v
	return s
}

type ListSipRulesInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of results to return in a single call. Defaults to 100.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`

	// The SIP media application ID.
	SipMediaApplicationId *string `location:"querystring" locationName:"sip-media-application" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSipRulesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSipRulesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListSipRulesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListSipRulesInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListSipRulesInput) SetMaxResults(v int64) *ListSipRulesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSipRulesInput) SetNextToken(v string) *ListSipRulesInput {
	s.NextToken = &v
	return s
}

// SetSipMediaApplicationId sets the SipMediaApplicationId field's value.
func (s *ListSipRulesInput) SetSipMediaApplicationId(v string) *ListSipRulesInput {
	s.SipMediaApplicationId = &v
	return s
}

type ListSipRulesOutput struct {
	_ struct{} `type:"structure"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`

	// List of SIP rules and rule details.
	SipRules []*SipRule `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSipRulesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSipRulesOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListSipRulesOutput) SetNextToken(v string) *ListSipRulesOutput {
	s.NextToken = &v
	return s
}

// SetSipRules sets the SipRules field's value.
func (s *ListSipRulesOutput) SetSipRules(v []*SipRule) *ListSipRulesOutput {
	s.SipRules = v
	return s
}

type ListSupportedPhoneNumberCountriesInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The phone number product type.
	//
	// ProductType is a required field
	ProductType *string `location:"querystring" locationName:"product-type" type:"string" required:"true" enum:"PhoneNumberProductType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSupportedPhoneNumberCountriesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSupportedPhoneNumberCountriesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListSupportedPhoneNumberCountriesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListSupportedPhoneNumberCountriesInput"}
	if s.ProductType == nil {
		invalidParams.Add(request.NewErrParamRequired("ProductType"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProductType sets the ProductType field's value.
func (s *ListSupportedPhoneNumberCountriesInput) SetProductType(v string) *ListSupportedPhoneNumberCountriesInput {
	s.ProductType = &v
	return s
}

type ListSupportedPhoneNumberCountriesOutput struct {
	_ struct{} `type:"structure"`

	// The supported phone number countries.
	PhoneNumberCountries []*PhoneNumberCountry `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSupportedPhoneNumberCountriesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSupportedPhoneNumberCountriesOutput) GoString() string {
	return s.String()
}

// SetPhoneNumberCountries sets the PhoneNumberCountries field's value.
func (s *ListSupportedPhoneNumberCountriesOutput) SetPhoneNumberCountries(v []*PhoneNumberCountry) *ListSupportedPhoneNumberCountriesOutput {
	s.PhoneNumberCountries = v
	return s
}

type ListTagsForResourceInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The resource ARN.
	//
	// ResourceARN is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListTagsForResourceInput's
	// String and GoString methods.
	//
	// ResourceARN is a required field
	ResourceARN *string `location:"querystring" locationName:"arn" min:"1" type:"string" required:"true" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsForResourceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsForResourceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListTagsForResourceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
	if s.ResourceARN == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
	}
	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetResourceARN sets the ResourceARN field's value.
func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
	s.ResourceARN = &v
	return s
}

type ListTagsForResourceOutput struct {
	_ struct{} `type:"structure"`

	// A list of tag-key value pairs.
	Tags []*Tag `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsForResourceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsForResourceOutput) GoString() string {
	return s.String()
}

// SetTags sets the Tags field's value.
func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
	s.Tags = v
	return s
}

type ListUsersInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The maximum number of results to return in a single call. Defaults to 100.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`

	// Optional. The user email address used to filter results. Maximum 1.
	//
	// UserEmail is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListUsersInput's
	// String and GoString methods.
	UserEmail *string `location:"querystring" locationName:"user-email" type:"string" sensitive:"true"`

	// The user type.
	UserType *string `location:"querystring" locationName:"user-type" type:"string" enum:"UserType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListUsersInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListUsersInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListUsersInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListUsersInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *ListUsersInput) SetAccountId(v string) *ListUsersInput {
	s.AccountId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListUsersInput) SetMaxResults(v int64) *ListUsersInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListUsersInput) SetNextToken(v string) *ListUsersInput {
	s.NextToken = &v
	return s
}

// SetUserEmail sets the UserEmail field's value.
func (s *ListUsersInput) SetUserEmail(v string) *ListUsersInput {
	s.UserEmail = &v
	return s
}

// SetUserType sets the UserType field's value.
func (s *ListUsersInput) SetUserType(v string) *ListUsersInput {
	s.UserType = &v
	return s
}

type ListUsersOutput struct {
	_ struct{} `type:"structure"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`

	// List of users and user details.
	Users []*User `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListUsersOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListUsersOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListUsersOutput) SetNextToken(v string) *ListUsersOutput {
	s.NextToken = &v
	return s
}

// SetUsers sets the Users field's value.
func (s *ListUsersOutput) SetUsers(v []*User) *ListUsersOutput {
	s.Users = v
	return s
}

type ListVoiceConnectorGroupsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of results to return in a single call.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVoiceConnectorGroupsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVoiceConnectorGroupsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListVoiceConnectorGroupsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListVoiceConnectorGroupsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListVoiceConnectorGroupsInput) SetMaxResults(v int64) *ListVoiceConnectorGroupsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListVoiceConnectorGroupsInput) SetNextToken(v string) *ListVoiceConnectorGroupsInput {
	s.NextToken = &v
	return s
}

type ListVoiceConnectorGroupsOutput struct {
	_ struct{} `type:"structure"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`

	// The details of the Amazon Chime Voice Connector groups.
	VoiceConnectorGroups []*VoiceConnectorGroup `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVoiceConnectorGroupsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVoiceConnectorGroupsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListVoiceConnectorGroupsOutput) SetNextToken(v string) *ListVoiceConnectorGroupsOutput {
	s.NextToken = &v
	return s
}

// SetVoiceConnectorGroups sets the VoiceConnectorGroups field's value.
func (s *ListVoiceConnectorGroupsOutput) SetVoiceConnectorGroups(v []*VoiceConnectorGroup) *ListVoiceConnectorGroupsOutput {
	s.VoiceConnectorGroups = v
	return s
}

type ListVoiceConnectorTerminationCredentialsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVoiceConnectorTerminationCredentialsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVoiceConnectorTerminationCredentialsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListVoiceConnectorTerminationCredentialsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListVoiceConnectorTerminationCredentialsInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *ListVoiceConnectorTerminationCredentialsInput) SetVoiceConnectorId(v string) *ListVoiceConnectorTerminationCredentialsInput {
	s.VoiceConnectorId = &v
	return s
}

type ListVoiceConnectorTerminationCredentialsOutput struct {
	_ struct{} `type:"structure"`

	// A list of user names.
	Usernames []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVoiceConnectorTerminationCredentialsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVoiceConnectorTerminationCredentialsOutput) GoString() string {
	return s.String()
}

// SetUsernames sets the Usernames field's value.
func (s *ListVoiceConnectorTerminationCredentialsOutput) SetUsernames(v []*string) *ListVoiceConnectorTerminationCredentialsOutput {
	s.Usernames = v
	return s
}

type ListVoiceConnectorsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of results to return in a single call.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token to use to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVoiceConnectorsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVoiceConnectorsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListVoiceConnectorsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListVoiceConnectorsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListVoiceConnectorsInput) SetMaxResults(v int64) *ListVoiceConnectorsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListVoiceConnectorsInput) SetNextToken(v string) *ListVoiceConnectorsInput {
	s.NextToken = &v
	return s
}

type ListVoiceConnectorsOutput struct {
	_ struct{} `type:"structure"`

	// The token to use to retrieve the next page of results.
	NextToken *string `type:"string"`

	// The details of the Amazon Chime Voice Connectors.
	VoiceConnectors []*VoiceConnector `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVoiceConnectorsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVoiceConnectorsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListVoiceConnectorsOutput) SetNextToken(v string) *ListVoiceConnectorsOutput {
	s.NextToken = &v
	return s
}

// SetVoiceConnectors sets the VoiceConnectors field's value.
func (s *ListVoiceConnectorsOutput) SetVoiceConnectors(v []*VoiceConnector) *ListVoiceConnectorsOutput {
	s.VoiceConnectors = v
	return s
}

// The logging configuration associated with an Amazon Chime Voice Connector.
// Specifies whether SIP message logs are enabled for sending to Amazon CloudWatch
// Logs.
type LoggingConfiguration struct {
	_ struct{} `type:"structure"`

	// Boolean that enables logging of detailed media metrics for Voice Connectors
	// to Amazon CloudWatch logs.
	EnableMediaMetricLogs *bool `type:"boolean"`

	// Boolean that enables SIP message logs to Amazon CloudWatch logs.
	EnableSIPLogs *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LoggingConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LoggingConfiguration) GoString() string {
	return s.String()
}

// SetEnableMediaMetricLogs sets the EnableMediaMetricLogs field's value.
func (s *LoggingConfiguration) SetEnableMediaMetricLogs(v bool) *LoggingConfiguration {
	s.EnableMediaMetricLogs = &v
	return s
}

// SetEnableSIPLogs sets the EnableSIPLogs field's value.
func (s *LoggingConfiguration) SetEnableSIPLogs(v bool) *LoggingConfiguration {
	s.EnableSIPLogs = &v
	return s
}

type LogoutUserInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The user ID.
	//
	// UserId is a required field
	UserId *string `location:"uri" locationName:"userId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LogoutUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LogoutUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *LogoutUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "LogoutUserInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.UserId == nil {
		invalidParams.Add(request.NewErrParamRequired("UserId"))
	}
	if s.UserId != nil && len(*s.UserId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UserId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *LogoutUserInput) SetAccountId(v string) *LogoutUserInput {
	s.AccountId = &v
	return s
}

// SetUserId sets the UserId field's value.
func (s *LogoutUserInput) SetUserId(v string) *LogoutUserInput {
	s.UserId = &v
	return s
}

type LogoutUserOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LogoutUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LogoutUserOutput) GoString() string {
	return s.String()
}

// A media capture pipeline object consisting of an ID, source type, source
// ARN, a sink type, a sink ARN, and a configuration object.
type MediaCapturePipeline struct {
	_ struct{} `type:"structure"`

	// The configuration for a specified media capture pipeline. SourceType must
	// be ChimeSdkMeeting.
	ChimeSdkMeetingConfiguration *ChimeSdkMeetingConfiguration `type:"structure"`

	// The time at which the capture pipeline was created, in ISO 8601 format.
	CreatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The ID of a media capture pipeline.
	MediaPipelineId *string `type:"string"`

	// ARN of the destination to which the media artifacts are saved.
	//
	// SinkArn is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by MediaCapturePipeline's
	// String and GoString methods.
	SinkArn *string `min:"1" type:"string" sensitive:"true"`

	// Destination type to which the media artifacts are saved. You must use an
	// S3 Bucket.
	SinkType *string `type:"string" enum:"MediaPipelineSinkType"`

	// ARN of the source from which the media artifacts will be saved.
	//
	// SourceArn is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by MediaCapturePipeline's
	// String and GoString methods.
	SourceArn *string `min:"1" type:"string" sensitive:"true"`

	// Source type from which media artifacts are saved. You must use ChimeMeeting.
	SourceType *string `type:"string" enum:"MediaPipelineSourceType"`

	// The status of the media capture pipeline.
	Status *string `type:"string" enum:"MediaPipelineStatus"`

	// The time at which the capture pipeline was updated, in ISO 8601 format.
	UpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MediaCapturePipeline) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MediaCapturePipeline) GoString() string {
	return s.String()
}

// SetChimeSdkMeetingConfiguration sets the ChimeSdkMeetingConfiguration field's value.
func (s *MediaCapturePipeline) SetChimeSdkMeetingConfiguration(v *ChimeSdkMeetingConfiguration) *MediaCapturePipeline {
	s.ChimeSdkMeetingConfiguration = v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *MediaCapturePipeline) SetCreatedTimestamp(v time.Time) *MediaCapturePipeline {
	s.CreatedTimestamp = &v
	return s
}

// SetMediaPipelineId sets the MediaPipelineId field's value.
func (s *MediaCapturePipeline) SetMediaPipelineId(v string) *MediaCapturePipeline {
	s.MediaPipelineId = &v
	return s
}

// SetSinkArn sets the SinkArn field's value.
func (s *MediaCapturePipeline) SetSinkArn(v string) *MediaCapturePipeline {
	s.SinkArn = &v
	return s
}

// SetSinkType sets the SinkType field's value.
func (s *MediaCapturePipeline) SetSinkType(v string) *MediaCapturePipeline {
	s.SinkType = &v
	return s
}

// SetSourceArn sets the SourceArn field's value.
func (s *MediaCapturePipeline) SetSourceArn(v string) *MediaCapturePipeline {
	s.SourceArn = &v
	return s
}

// SetSourceType sets the SourceType field's value.
func (s *MediaCapturePipeline) SetSourceType(v string) *MediaCapturePipeline {
	s.SourceType = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *MediaCapturePipeline) SetStatus(v string) *MediaCapturePipeline {
	s.Status = &v
	return s
}

// SetUpdatedTimestamp sets the UpdatedTimestamp field's value.
func (s *MediaCapturePipeline) SetUpdatedTimestamp(v time.Time) *MediaCapturePipeline {
	s.UpdatedTimestamp = &v
	return s
}

// A set of endpoints used by clients to connect to the media service group
// for an Amazon Chime SDK meeting.
type MediaPlacement struct {
	_ struct{} `type:"structure"`

	// The audio fallback URL.
	AudioFallbackUrl *string `type:"string"`

	// The audio host URL.
	AudioHostUrl *string `type:"string"`

	// The event ingestion URL to which you send client meeting events.
	EventIngestionUrl *string `type:"string"`

	// The screen data URL.
	//
	// This parameter is is no longer supported and no longer used by the Amazon
	// Chime SDK.
	ScreenDataUrl *string `type:"string"`

	// The screen sharing URL.
	//
	// This parameter is is no longer supported and no longer used by the Amazon
	// Chime SDK..
	ScreenSharingUrl *string `type:"string"`

	// The screen viewing URL.
	//
	// This parameter is is no longer supported and no longer used by the Amazon
	// Chime SDK.
	ScreenViewingUrl *string `type:"string"`

	// The signaling URL.
	SignalingUrl *string `type:"string"`

	// The turn control URL.
	//
	// This parameter is is no longer supported and no longer used by the Amazon
	// Chime SDK.
	TurnControlUrl *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MediaPlacement) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MediaPlacement) GoString() string {
	return s.String()
}

// SetAudioFallbackUrl sets the AudioFallbackUrl field's value.
func (s *MediaPlacement) SetAudioFallbackUrl(v string) *MediaPlacement {
	s.AudioFallbackUrl = &v
	return s
}

// SetAudioHostUrl sets the AudioHostUrl field's value.
func (s *MediaPlacement) SetAudioHostUrl(v string) *MediaPlacement {
	s.AudioHostUrl = &v
	return s
}

// SetEventIngestionUrl sets the EventIngestionUrl field's value.
func (s *MediaPlacement) SetEventIngestionUrl(v string) *MediaPlacement {
	s.EventIngestionUrl = &v
	return s
}

// SetScreenDataUrl sets the ScreenDataUrl field's value.
func (s *MediaPlacement) SetScreenDataUrl(v string) *MediaPlacement {
	s.ScreenDataUrl = &v
	return s
}

// SetScreenSharingUrl sets the ScreenSharingUrl field's value.
func (s *MediaPlacement) SetScreenSharingUrl(v string) *MediaPlacement {
	s.ScreenSharingUrl = &v
	return s
}

// SetScreenViewingUrl sets the ScreenViewingUrl field's value.
func (s *MediaPlacement) SetScreenViewingUrl(v string) *MediaPlacement {
	s.ScreenViewingUrl = &v
	return s
}

// SetSignalingUrl sets the SignalingUrl field's value.
func (s *MediaPlacement) SetSignalingUrl(v string) *MediaPlacement {
	s.SignalingUrl = &v
	return s
}

// SetTurnControlUrl sets the TurnControlUrl field's value.
func (s *MediaPlacement) SetTurnControlUrl(v string) *MediaPlacement {
	s.TurnControlUrl = &v
	return s
}

// A meeting created using the Amazon Chime SDK.
type Meeting struct {
	_ struct{} `type:"structure"`

	// The external meeting ID.
	//
	// ExternalMeetingId is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Meeting's
	// String and GoString methods.
	ExternalMeetingId *string `min:"2" type:"string" sensitive:"true"`

	// The media placement for the meeting.
	MediaPlacement *MediaPlacement `type:"structure"`

	// The Region in which you create the meeting. Available values: af-south-1,
	// ap-northeast-1, ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2,
	// ca-central-1, eu-central-1, eu-north-1, eu-south-1, eu-west-1, eu-west-2,
	// eu-west-3, sa-east-1, us-east-1, us-east-2, us-west-1, us-west-2.
	MediaRegion *string `type:"string"`

	// The Amazon Chime SDK meeting ID.
	MeetingId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Meeting) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Meeting) GoString() string {
	return s.String()
}

// SetExternalMeetingId sets the ExternalMeetingId field's value.
func (s *Meeting) SetExternalMeetingId(v string) *Meeting {
	s.ExternalMeetingId = &v
	return s
}

// SetMediaPlacement sets the MediaPlacement field's value.
func (s *Meeting) SetMediaPlacement(v *MediaPlacement) *Meeting {
	s.MediaPlacement = v
	return s
}

// SetMediaRegion sets the MediaRegion field's value.
func (s *Meeting) SetMediaRegion(v string) *Meeting {
	s.MediaRegion = &v
	return s
}

// SetMeetingId sets the MeetingId field's value.
func (s *Meeting) SetMeetingId(v string) *Meeting {
	s.MeetingId = &v
	return s
}

// The resource target configurations for receiving Amazon Chime SDK meeting
// and attendee event notifications. The Amazon Chime SDK supports resource
// targets located in the US East (N. Virginia) AWS Region (us-east-1).
type MeetingNotificationConfiguration struct {
	_ struct{} `type:"structure"`

	// The SNS topic ARN.
	//
	// SnsTopicArn is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by MeetingNotificationConfiguration's
	// String and GoString methods.
	SnsTopicArn *string `min:"1" type:"string" sensitive:"true"`

	// The SQS queue ARN.
	//
	// SqsQueueArn is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by MeetingNotificationConfiguration's
	// String and GoString methods.
	SqsQueueArn *string `min:"1" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MeetingNotificationConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MeetingNotificationConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MeetingNotificationConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MeetingNotificationConfiguration"}
	if s.SnsTopicArn != nil && len(*s.SnsTopicArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SnsTopicArn", 1))
	}
	if s.SqsQueueArn != nil && len(*s.SqsQueueArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SqsQueueArn", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSnsTopicArn sets the SnsTopicArn field's value.
func (s *MeetingNotificationConfiguration) SetSnsTopicArn(v string) *MeetingNotificationConfiguration {
	s.SnsTopicArn = &v
	return s
}

// SetSqsQueueArn sets the SqsQueueArn field's value.
func (s *MeetingNotificationConfiguration) SetSqsQueueArn(v string) *MeetingNotificationConfiguration {
	s.SqsQueueArn = &v
	return s
}

// The member details, such as email address, name, member ID, and member type.
type Member struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	AccountId *string `type:"string"`

	// The member email address.
	//
	// Email is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Member's
	// String and GoString methods.
	Email *string `type:"string" sensitive:"true"`

	// The member name.
	//
	// FullName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Member's
	// String and GoString methods.
	FullName *string `type:"string" sensitive:"true"`

	// The member ID (user ID or bot ID).
	MemberId *string `type:"string"`

	// The member type.
	MemberType *string `type:"string" enum:"MemberType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Member) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Member) GoString() string {
	return s.String()
}

// SetAccountId sets the AccountId field's value.
func (s *Member) SetAccountId(v string) *Member {
	s.AccountId = &v
	return s
}

// SetEmail sets the Email field's value.
func (s *Member) SetEmail(v string) *Member {
	s.Email = &v
	return s
}

// SetFullName sets the FullName field's value.
func (s *Member) SetFullName(v string) *Member {
	s.FullName = &v
	return s
}

// SetMemberId sets the MemberId field's value.
func (s *Member) SetMemberId(v string) *Member {
	s.MemberId = &v
	return s
}

// SetMemberType sets the MemberType field's value.
func (s *Member) SetMemberType(v string) *Member {
	s.MemberType = &v
	return s
}

// The list of errors returned when a member action results in an error.
type MemberError struct {
	_ struct{} `type:"structure"`

	// The error code.
	ErrorCode *string `type:"string" enum:"ErrorCode"`

	// The error message.
	ErrorMessage *string `type:"string"`

	// The member ID.
	MemberId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MemberError) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MemberError) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *MemberError) SetErrorCode(v string) *MemberError {
	s.ErrorCode = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *MemberError) SetErrorMessage(v string) *MemberError {
	s.ErrorMessage = &v
	return s
}

// SetMemberId sets the MemberId field's value.
func (s *MemberError) SetMemberId(v string) *MemberError {
	s.MemberId = &v
	return s
}

// Membership details, such as member ID and member role.
type MembershipItem struct {
	_ struct{} `type:"structure"`

	// The member ID.
	MemberId *string `type:"string"`

	// The member role.
	Role *string `type:"string" enum:"RoomMembershipRole"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MembershipItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MembershipItem) GoString() string {
	return s.String()
}

// SetMemberId sets the MemberId field's value.
func (s *MembershipItem) SetMemberId(v string) *MembershipItem {
	s.MemberId = &v
	return s
}

// SetRole sets the Role field's value.
func (s *MembershipItem) SetRole(v string) *MembershipItem {
	s.Role = &v
	return s
}

// The websocket endpoint used to connect to Amazon Chime SDK messaging.
type MessagingSessionEndpoint struct {
	_ struct{} `type:"structure"`

	// The endpoint to which you establish a websocket connection.
	Url *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MessagingSessionEndpoint) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MessagingSessionEndpoint) GoString() string {
	return s.String()
}

// SetUrl sets the Url field's value.
func (s *MessagingSessionEndpoint) SetUrl(v string) *MessagingSessionEndpoint {
	s.Url = &v
	return s
}

// One or more of the resources in the request does not exist in the system.
type NotFoundException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Code_ *string `locationName:"Code" type:"string" enum:"ErrorCode"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotFoundException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotFoundException) GoString() string {
	return s.String()
}

func newErrorNotFoundException(v protocol.ResponseMetadata) error {
	return &NotFoundException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *NotFoundException) Code() string {
	return "NotFoundException"
}

// Message returns the exception's message.
func (s *NotFoundException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *NotFoundException) OrigErr() error {
	return nil
}

func (s *NotFoundException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *NotFoundException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *NotFoundException) RequestID() string {
	return s.RespMetadata.RequestID
}

// A phone number for which an order has been placed.
type OrderedPhoneNumber struct {
	_ struct{} `type:"structure"`

	// The phone number, in E.164 format.
	//
	// E164PhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by OrderedPhoneNumber's
	// String and GoString methods.
	E164PhoneNumber *string `type:"string" sensitive:"true"`

	// The phone number status.
	Status *string `type:"string" enum:"OrderedPhoneNumberStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OrderedPhoneNumber) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OrderedPhoneNumber) GoString() string {
	return s.String()
}

// SetE164PhoneNumber sets the E164PhoneNumber field's value.
func (s *OrderedPhoneNumber) SetE164PhoneNumber(v string) *OrderedPhoneNumber {
	s.E164PhoneNumber = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *OrderedPhoneNumber) SetStatus(v string) *OrderedPhoneNumber {
	s.Status = &v
	return s
}

// Origination settings enable your SIP hosts to receive inbound calls using
// your Amazon Chime Voice Connector.
//
// The parameters listed below are not required, but you must use at least one.
type Origination struct {
	_ struct{} `type:"structure"`

	// When origination settings are disabled, inbound calls are not enabled for
	// your Amazon Chime Voice Connector. This parameter is not required, but you
	// must specify this parameter or Routes.
	Disabled *bool `type:"boolean"`

	// The call distribution properties defined for your SIP hosts. Valid range:
	// Minimum value of 1. Maximum value of 20. This parameter is not required,
	// but you must specify this parameter or Disabled.
	Routes []*OriginationRoute `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Origination) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Origination) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Origination) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Origination"}
	if s.Routes != nil {
		for i, v := range s.Routes {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Routes", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDisabled sets the Disabled field's value.
func (s *Origination) SetDisabled(v bool) *Origination {
	s.Disabled = &v
	return s
}

// SetRoutes sets the Routes field's value.
func (s *Origination) SetRoutes(v []*OriginationRoute) *Origination {
	s.Routes = v
	return s
}

// Origination routes define call distribution properties for your SIP hosts
// to receive inbound calls using your Amazon Chime Voice Connector. Limit:
// Ten origination routes for each Amazon Chime Voice Connector.
//
// The parameters listed below are not required, but you must use at least one.
type OriginationRoute struct {
	_ struct{} `type:"structure"`

	// The FQDN or IP address to contact for origination traffic.
	Host *string `type:"string"`

	// The designated origination route port. Defaults to 5060.
	Port *int64 `type:"integer"`

	// The priority associated with the host, with 1 being the highest priority.
	// Higher priority hosts are attempted first.
	Priority *int64 `min:"1" type:"integer"`

	// The protocol to use for the origination route. Encryption-enabled Amazon
	// Chime Voice Connectors use TCP protocol by default.
	Protocol *string `type:"string" enum:"OriginationRouteProtocol"`

	// The weight associated with the host. If hosts are equal in priority, calls
	// are redistributed among them based on their relative weight.
	Weight *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OriginationRoute) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OriginationRoute) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *OriginationRoute) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "OriginationRoute"}
	if s.Priority != nil && *s.Priority < 1 {
		invalidParams.Add(request.NewErrParamMinValue("Priority", 1))
	}
	if s.Weight != nil && *s.Weight < 1 {
		invalidParams.Add(request.NewErrParamMinValue("Weight", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHost sets the Host field's value.
func (s *OriginationRoute) SetHost(v string) *OriginationRoute {
	s.Host = &v
	return s
}

// SetPort sets the Port field's value.
func (s *OriginationRoute) SetPort(v int64) *OriginationRoute {
	s.Port = &v
	return s
}

// SetPriority sets the Priority field's value.
func (s *OriginationRoute) SetPriority(v int64) *OriginationRoute {
	s.Priority = &v
	return s
}

// SetProtocol sets the Protocol field's value.
func (s *OriginationRoute) SetProtocol(v string) *OriginationRoute {
	s.Protocol = &v
	return s
}

// SetWeight sets the Weight field's value.
func (s *OriginationRoute) SetWeight(v int64) *OriginationRoute {
	s.Weight = &v
	return s
}

// The phone number and proxy phone number for a participant in an Amazon Chime
// Voice Connector proxy session.
type Participant struct {
	_ struct{} `type:"structure"`

	// The participant's phone number.
	//
	// PhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Participant's
	// String and GoString methods.
	PhoneNumber *string `type:"string" sensitive:"true"`

	// The participant's proxy phone number.
	//
	// ProxyPhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Participant's
	// String and GoString methods.
	ProxyPhoneNumber *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Participant) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Participant) GoString() string {
	return s.String()
}

// SetPhoneNumber sets the PhoneNumber field's value.
func (s *Participant) SetPhoneNumber(v string) *Participant {
	s.PhoneNumber = &v
	return s
}

// SetProxyPhoneNumber sets the ProxyPhoneNumber field's value.
func (s *Participant) SetProxyPhoneNumber(v string) *Participant {
	s.ProxyPhoneNumber = &v
	return s
}

// A phone number used for Amazon Chime Business Calling or an Amazon Chime
// Voice Connector.
type PhoneNumber struct {
	_ struct{} `type:"structure"`

	// The phone number associations.
	Associations []*PhoneNumberAssociation `type:"list"`

	// The outbound calling name associated with the phone number.
	//
	// CallingName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by PhoneNumber's
	// String and GoString methods.
	CallingName *string `type:"string" sensitive:"true"`

	// The outbound calling name status.
	CallingNameStatus *string `type:"string" enum:"CallingNameStatus"`

	// The phone number capabilities.
	Capabilities *PhoneNumberCapabilities `type:"structure"`

	// The phone number country. Format: ISO 3166-1 alpha-2.
	Country *string `type:"string"`

	// The phone number creation timestamp, in ISO 8601 format.
	CreatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The deleted phone number timestamp, in ISO 8601 format.
	DeletionTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The phone number, in E.164 format.
	//
	// E164PhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by PhoneNumber's
	// String and GoString methods.
	E164PhoneNumber *string `type:"string" sensitive:"true"`

	// The phone number ID.
	PhoneNumberId *string `type:"string"`

	// The phone number product type.
	ProductType *string `type:"string" enum:"PhoneNumberProductType"`

	// The phone number status.
	Status *string `type:"string" enum:"PhoneNumberStatus"`

	// The phone number type.
	Type *string `type:"string" enum:"PhoneNumberType"`

	// The updated phone number timestamp, in ISO 8601 format.
	UpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PhoneNumber) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PhoneNumber) GoString() string {
	return s.String()
}

// SetAssociations sets the Associations field's value.
func (s *PhoneNumber) SetAssociations(v []*PhoneNumberAssociation) *PhoneNumber {
	s.Associations = v
	return s
}

// SetCallingName sets the CallingName field's value.
func (s *PhoneNumber) SetCallingName(v string) *PhoneNumber {
	s.CallingName = &v
	return s
}

// SetCallingNameStatus sets the CallingNameStatus field's value.
func (s *PhoneNumber) SetCallingNameStatus(v string) *PhoneNumber {
	s.CallingNameStatus = &v
	return s
}

// SetCapabilities sets the Capabilities field's value.
func (s *PhoneNumber) SetCapabilities(v *PhoneNumberCapabilities) *PhoneNumber {
	s.Capabilities = v
	return s
}

// SetCountry sets the Country field's value.
func (s *PhoneNumber) SetCountry(v string) *PhoneNumber {
	s.Country = &v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *PhoneNumber) SetCreatedTimestamp(v time.Time) *PhoneNumber {
	s.CreatedTimestamp = &v
	return s
}

// SetDeletionTimestamp sets the DeletionTimestamp field's value.
func (s *PhoneNumber) SetDeletionTimestamp(v time.Time) *PhoneNumber {
	s.DeletionTimestamp = &v
	return s
}

// SetE164PhoneNumber sets the E164PhoneNumber field's value.
func (s *PhoneNumber) SetE164PhoneNumber(v string) *PhoneNumber {
	s.E164PhoneNumber = &v
	return s
}

// SetPhoneNumberId sets the PhoneNumberId field's value.
func (s *PhoneNumber) SetPhoneNumberId(v string) *PhoneNumber {
	s.PhoneNumberId = &v
	return s
}

// SetProductType sets the ProductType field's value.
func (s *PhoneNumber) SetProductType(v string) *PhoneNumber {
	s.ProductType = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *PhoneNumber) SetStatus(v string) *PhoneNumber {
	s.Status = &v
	return s
}

// SetType sets the Type field's value.
func (s *PhoneNumber) SetType(v string) *PhoneNumber {
	s.Type = &v
	return s
}

// SetUpdatedTimestamp sets the UpdatedTimestamp field's value.
func (s *PhoneNumber) SetUpdatedTimestamp(v time.Time) *PhoneNumber {
	s.UpdatedTimestamp = &v
	return s
}

// The phone number associations, such as Amazon Chime account ID, Amazon Chime
// user ID, Amazon Chime Voice Connector ID, or Amazon Chime Voice Connector
// group ID.
type PhoneNumberAssociation struct {
	_ struct{} `type:"structure"`

	// The timestamp of the phone number association, in ISO 8601 format.
	AssociatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// Defines the association with an Amazon Chime account ID, user ID, Amazon
	// Chime Voice Connector ID, or Amazon Chime Voice Connector group ID.
	Name *string `type:"string" enum:"PhoneNumberAssociationName"`

	// Contains the ID for the entity specified in Name.
	Value *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PhoneNumberAssociation) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PhoneNumberAssociation) GoString() string {
	return s.String()
}

// SetAssociatedTimestamp sets the AssociatedTimestamp field's value.
func (s *PhoneNumberAssociation) SetAssociatedTimestamp(v time.Time) *PhoneNumberAssociation {
	s.AssociatedTimestamp = &v
	return s
}

// SetName sets the Name field's value.
func (s *PhoneNumberAssociation) SetName(v string) *PhoneNumberAssociation {
	s.Name = &v
	return s
}

// SetValue sets the Value field's value.
func (s *PhoneNumberAssociation) SetValue(v string) *PhoneNumberAssociation {
	s.Value = &v
	return s
}

// The phone number capabilities for Amazon Chime Business Calling phone numbers,
// such as enabled inbound and outbound calling and text messaging.
type PhoneNumberCapabilities struct {
	_ struct{} `type:"structure"`

	// Allows or denies inbound calling for the specified phone number.
	InboundCall *bool `type:"boolean"`

	// Allows or denies inbound MMS messaging for the specified phone number.
	InboundMMS *bool `type:"boolean"`

	// Allows or denies inbound SMS messaging for the specified phone number.
	InboundSMS *bool `type:"boolean"`

	// Allows or denies outbound calling for the specified phone number.
	OutboundCall *bool `type:"boolean"`

	// Allows or denies outbound MMS messaging for the specified phone number.
	OutboundMMS *bool `type:"boolean"`

	// Allows or denies outbound SMS messaging for the specified phone number.
	OutboundSMS *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PhoneNumberCapabilities) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PhoneNumberCapabilities) GoString() string {
	return s.String()
}

// SetInboundCall sets the InboundCall field's value.
func (s *PhoneNumberCapabilities) SetInboundCall(v bool) *PhoneNumberCapabilities {
	s.InboundCall = &v
	return s
}

// SetInboundMMS sets the InboundMMS field's value.
func (s *PhoneNumberCapabilities) SetInboundMMS(v bool) *PhoneNumberCapabilities {
	s.InboundMMS = &v
	return s
}

// SetInboundSMS sets the InboundSMS field's value.
func (s *PhoneNumberCapabilities) SetInboundSMS(v bool) *PhoneNumberCapabilities {
	s.InboundSMS = &v
	return s
}

// SetOutboundCall sets the OutboundCall field's value.
func (s *PhoneNumberCapabilities) SetOutboundCall(v bool) *PhoneNumberCapabilities {
	s.OutboundCall = &v
	return s
}

// SetOutboundMMS sets the OutboundMMS field's value.
func (s *PhoneNumberCapabilities) SetOutboundMMS(v bool) *PhoneNumberCapabilities {
	s.OutboundMMS = &v
	return s
}

// SetOutboundSMS sets the OutboundSMS field's value.
func (s *PhoneNumberCapabilities) SetOutboundSMS(v bool) *PhoneNumberCapabilities {
	s.OutboundSMS = &v
	return s
}

// The phone number country.
type PhoneNumberCountry struct {
	_ struct{} `type:"structure"`

	// The phone number country code. Format: ISO 3166-1 alpha-2.
	CountryCode *string `type:"string"`

	// The supported phone number types.
	SupportedPhoneNumberTypes []*string `type:"list" enum:"PhoneNumberType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PhoneNumberCountry) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PhoneNumberCountry) GoString() string {
	return s.String()
}

// SetCountryCode sets the CountryCode field's value.
func (s *PhoneNumberCountry) SetCountryCode(v string) *PhoneNumberCountry {
	s.CountryCode = &v
	return s
}

// SetSupportedPhoneNumberTypes sets the SupportedPhoneNumberTypes field's value.
func (s *PhoneNumberCountry) SetSupportedPhoneNumberTypes(v []*string) *PhoneNumberCountry {
	s.SupportedPhoneNumberTypes = v
	return s
}

// If the phone number action fails for one or more of the phone numbers in
// the request, a list of the phone numbers is returned, along with error codes
// and error messages.
type PhoneNumberError struct {
	_ struct{} `type:"structure"`

	// The error code.
	ErrorCode *string `type:"string" enum:"ErrorCode"`

	// The error message.
	ErrorMessage *string `type:"string"`

	// The phone number ID for which the action failed.
	PhoneNumberId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PhoneNumberError) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PhoneNumberError) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *PhoneNumberError) SetErrorCode(v string) *PhoneNumberError {
	s.ErrorCode = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *PhoneNumberError) SetErrorMessage(v string) *PhoneNumberError {
	s.ErrorMessage = &v
	return s
}

// SetPhoneNumberId sets the PhoneNumberId field's value.
func (s *PhoneNumberError) SetPhoneNumberId(v string) *PhoneNumberError {
	s.PhoneNumberId = &v
	return s
}

// The details of a phone number order created for Amazon Chime.
type PhoneNumberOrder struct {
	_ struct{} `type:"structure"`

	// The phone number order creation time stamp, in ISO 8601 format.
	CreatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The ordered phone number details, such as the phone number in E.164 format
	// and the phone number status.
	OrderedPhoneNumbers []*OrderedPhoneNumber `type:"list"`

	// The phone number order ID.
	PhoneNumberOrderId *string `type:"string"`

	// The phone number order product type.
	ProductType *string `type:"string" enum:"PhoneNumberProductType"`

	// The status of the phone number order.
	Status *string `type:"string" enum:"PhoneNumberOrderStatus"`

	// The updated phone number order time stamp, in ISO 8601 format.
	UpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PhoneNumberOrder) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PhoneNumberOrder) GoString() string {
	return s.String()
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *PhoneNumberOrder) SetCreatedTimestamp(v time.Time) *PhoneNumberOrder {
	s.CreatedTimestamp = &v
	return s
}

// SetOrderedPhoneNumbers sets the OrderedPhoneNumbers field's value.
func (s *PhoneNumberOrder) SetOrderedPhoneNumbers(v []*OrderedPhoneNumber) *PhoneNumberOrder {
	s.OrderedPhoneNumbers = v
	return s
}

// SetPhoneNumberOrderId sets the PhoneNumberOrderId field's value.
func (s *PhoneNumberOrder) SetPhoneNumberOrderId(v string) *PhoneNumberOrder {
	s.PhoneNumberOrderId = &v
	return s
}

// SetProductType sets the ProductType field's value.
func (s *PhoneNumberOrder) SetProductType(v string) *PhoneNumberOrder {
	s.ProductType = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *PhoneNumberOrder) SetStatus(v string) *PhoneNumberOrder {
	s.Status = &v
	return s
}

// SetUpdatedTimestamp sets the UpdatedTimestamp field's value.
func (s *PhoneNumberOrder) SetUpdatedTimestamp(v time.Time) *PhoneNumberOrder {
	s.UpdatedTimestamp = &v
	return s
}

// The proxy configuration for an Amazon Chime Voice Connector.
type Proxy struct {
	_ struct{} `type:"structure"`

	// The default number of minutes allowed for proxy sessions.
	DefaultSessionExpiryMinutes *int64 `type:"integer"`

	// When true, stops proxy sessions from being created on the specified Amazon
	// Chime Voice Connector.
	Disabled *bool `type:"boolean"`

	// The phone number to route calls to after a proxy session expires.
	//
	// FallBackPhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Proxy's
	// String and GoString methods.
	FallBackPhoneNumber *string `type:"string" sensitive:"true"`

	// The countries for proxy phone numbers to be selected from.
	PhoneNumberCountries []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Proxy) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Proxy) GoString() string {
	return s.String()
}

// SetDefaultSessionExpiryMinutes sets the DefaultSessionExpiryMinutes field's value.
func (s *Proxy) SetDefaultSessionExpiryMinutes(v int64) *Proxy {
	s.DefaultSessionExpiryMinutes = &v
	return s
}

// SetDisabled sets the Disabled field's value.
func (s *Proxy) SetDisabled(v bool) *Proxy {
	s.Disabled = &v
	return s
}

// SetFallBackPhoneNumber sets the FallBackPhoneNumber field's value.
func (s *Proxy) SetFallBackPhoneNumber(v string) *Proxy {
	s.FallBackPhoneNumber = &v
	return s
}

// SetPhoneNumberCountries sets the PhoneNumberCountries field's value.
func (s *Proxy) SetPhoneNumberCountries(v []*string) *Proxy {
	s.PhoneNumberCountries = v
	return s
}

// The proxy session for an Amazon Chime Voice Connector.
type ProxySession struct {
	_ struct{} `type:"structure"`

	// The proxy session capabilities.
	Capabilities []*string `type:"list" enum:"Capability"`

	// The created time stamp, in ISO 8601 format.
	CreatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The ended time stamp, in ISO 8601 format.
	EndedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The number of minutes allowed for the proxy session.
	ExpiryMinutes *int64 `min:"1" type:"integer"`

	// The preference for matching the country or area code of the proxy phone number
	// with that of the first participant.
	GeoMatchLevel *string `type:"string" enum:"GeoMatchLevel"`

	// The country and area code for the proxy phone number.
	GeoMatchParams *GeoMatchParams `type:"structure"`

	// The name of the proxy session.
	Name *string `type:"string"`

	// The preference for proxy phone number reuse, or stickiness, between the same
	// participants across sessions.
	NumberSelectionBehavior *string `type:"string" enum:"NumberSelectionBehavior"`

	// The proxy session participants.
	Participants []*Participant `type:"list"`

	// The proxy session ID.
	ProxySessionId *string `min:"1" type:"string"`

	// The status of the proxy session.
	Status *string `type:"string" enum:"ProxySessionStatus"`

	// The updated time stamp, in ISO 8601 format.
	UpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon Chime voice connector ID.
	VoiceConnectorId *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProxySession) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProxySession) GoString() string {
	return s.String()
}

// SetCapabilities sets the Capabilities field's value.
func (s *ProxySession) SetCapabilities(v []*string) *ProxySession {
	s.Capabilities = v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *ProxySession) SetCreatedTimestamp(v time.Time) *ProxySession {
	s.CreatedTimestamp = &v
	return s
}

// SetEndedTimestamp sets the EndedTimestamp field's value.
func (s *ProxySession) SetEndedTimestamp(v time.Time) *ProxySession {
	s.EndedTimestamp = &v
	return s
}

// SetExpiryMinutes sets the ExpiryMinutes field's value.
func (s *ProxySession) SetExpiryMinutes(v int64) *ProxySession {
	s.ExpiryMinutes = &v
	return s
}

// SetGeoMatchLevel sets the GeoMatchLevel field's value.
func (s *ProxySession) SetGeoMatchLevel(v string) *ProxySession {
	s.GeoMatchLevel = &v
	return s
}

// SetGeoMatchParams sets the GeoMatchParams field's value.
func (s *ProxySession) SetGeoMatchParams(v *GeoMatchParams) *ProxySession {
	s.GeoMatchParams = v
	return s
}

// SetName sets the Name field's value.
func (s *ProxySession) SetName(v string) *ProxySession {
	s.Name = &v
	return s
}

// SetNumberSelectionBehavior sets the NumberSelectionBehavior field's value.
func (s *ProxySession) SetNumberSelectionBehavior(v string) *ProxySession {
	s.NumberSelectionBehavior = &v
	return s
}

// SetParticipants sets the Participants field's value.
func (s *ProxySession) SetParticipants(v []*Participant) *ProxySession {
	s.Participants = v
	return s
}

// SetProxySessionId sets the ProxySessionId field's value.
func (s *ProxySession) SetProxySessionId(v string) *ProxySession {
	s.ProxySessionId = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ProxySession) SetStatus(v string) *ProxySession {
	s.Status = &v
	return s
}

// SetUpdatedTimestamp sets the UpdatedTimestamp field's value.
func (s *ProxySession) SetUpdatedTimestamp(v time.Time) *ProxySession {
	s.UpdatedTimestamp = &v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *ProxySession) SetVoiceConnectorId(v string) *ProxySession {
	s.VoiceConnectorId = &v
	return s
}

type PutAppInstanceRetentionSettingsInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the AppInstance.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"uri" locationName:"appInstanceArn" min:"5" type:"string" required:"true"`

	// The time in days to retain data. Data type: number.
	//
	// AppInstanceRetentionSettings is a required field
	AppInstanceRetentionSettings *AppInstanceRetentionSettings `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutAppInstanceRetentionSettingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutAppInstanceRetentionSettingsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutAppInstanceRetentionSettingsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutAppInstanceRetentionSettingsInput"}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}
	if s.AppInstanceRetentionSettings == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceRetentionSettings"))
	}
	if s.AppInstanceRetentionSettings != nil {
		if err := s.AppInstanceRetentionSettings.Validate(); err != nil {
			invalidParams.AddNested("AppInstanceRetentionSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *PutAppInstanceRetentionSettingsInput) SetAppInstanceArn(v string) *PutAppInstanceRetentionSettingsInput {
	s.AppInstanceArn = &v
	return s
}

// SetAppInstanceRetentionSettings sets the AppInstanceRetentionSettings field's value.
func (s *PutAppInstanceRetentionSettingsInput) SetAppInstanceRetentionSettings(v *AppInstanceRetentionSettings) *PutAppInstanceRetentionSettingsInput {
	s.AppInstanceRetentionSettings = v
	return s
}

type PutAppInstanceRetentionSettingsOutput struct {
	_ struct{} `type:"structure"`

	// The time in days to retain data. Data type: number.
	AppInstanceRetentionSettings *AppInstanceRetentionSettings `type:"structure"`

	// The time at which the API deletes data.
	InitiateDeletionTimestamp *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutAppInstanceRetentionSettingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutAppInstanceRetentionSettingsOutput) GoString() string {
	return s.String()
}

// SetAppInstanceRetentionSettings sets the AppInstanceRetentionSettings field's value.
func (s *PutAppInstanceRetentionSettingsOutput) SetAppInstanceRetentionSettings(v *AppInstanceRetentionSettings) *PutAppInstanceRetentionSettingsOutput {
	s.AppInstanceRetentionSettings = v
	return s
}

// SetInitiateDeletionTimestamp sets the InitiateDeletionTimestamp field's value.
func (s *PutAppInstanceRetentionSettingsOutput) SetInitiateDeletionTimestamp(v time.Time) *PutAppInstanceRetentionSettingsOutput {
	s.InitiateDeletionTimestamp = &v
	return s
}

type PutAppInstanceStreamingConfigurationsInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the AppInstance.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"uri" locationName:"appInstanceArn" min:"5" type:"string" required:"true"`

	// The streaming configurations set for an AppInstance.
	//
	// AppInstanceStreamingConfigurations is a required field
	AppInstanceStreamingConfigurations []*AppInstanceStreamingConfiguration `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutAppInstanceStreamingConfigurationsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutAppInstanceStreamingConfigurationsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutAppInstanceStreamingConfigurationsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutAppInstanceStreamingConfigurationsInput"}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}
	if s.AppInstanceStreamingConfigurations == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceStreamingConfigurations"))
	}
	if s.AppInstanceStreamingConfigurations != nil && len(s.AppInstanceStreamingConfigurations) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceStreamingConfigurations", 1))
	}
	if s.AppInstanceStreamingConfigurations != nil {
		for i, v := range s.AppInstanceStreamingConfigurations {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AppInstanceStreamingConfigurations", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *PutAppInstanceStreamingConfigurationsInput) SetAppInstanceArn(v string) *PutAppInstanceStreamingConfigurationsInput {
	s.AppInstanceArn = &v
	return s
}

// SetAppInstanceStreamingConfigurations sets the AppInstanceStreamingConfigurations field's value.
func (s *PutAppInstanceStreamingConfigurationsInput) SetAppInstanceStreamingConfigurations(v []*AppInstanceStreamingConfiguration) *PutAppInstanceStreamingConfigurationsInput {
	s.AppInstanceStreamingConfigurations = v
	return s
}

type PutAppInstanceStreamingConfigurationsOutput struct {
	_ struct{} `type:"structure"`

	// The streaming configurations of an AppInstance.
	AppInstanceStreamingConfigurations []*AppInstanceStreamingConfiguration `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutAppInstanceStreamingConfigurationsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutAppInstanceStreamingConfigurationsOutput) GoString() string {
	return s.String()
}

// SetAppInstanceStreamingConfigurations sets the AppInstanceStreamingConfigurations field's value.
func (s *PutAppInstanceStreamingConfigurationsOutput) SetAppInstanceStreamingConfigurations(v []*AppInstanceStreamingConfiguration) *PutAppInstanceStreamingConfigurationsOutput {
	s.AppInstanceStreamingConfigurations = v
	return s
}

type PutEventsConfigurationInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The bot ID.
	//
	// BotId is a required field
	BotId *string `location:"uri" locationName:"botId" type:"string" required:"true"`

	// Lambda function ARN that allows the bot to receive outgoing events.
	//
	// LambdaFunctionArn is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by PutEventsConfigurationInput's
	// String and GoString methods.
	LambdaFunctionArn *string `type:"string" sensitive:"true"`

	// HTTPS endpoint that allows the bot to receive outgoing events.
	//
	// OutboundEventsHTTPSEndpoint is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by PutEventsConfigurationInput's
	// String and GoString methods.
	OutboundEventsHTTPSEndpoint *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutEventsConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutEventsConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutEventsConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutEventsConfigurationInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.BotId == nil {
		invalidParams.Add(request.NewErrParamRequired("BotId"))
	}
	if s.BotId != nil && len(*s.BotId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BotId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *PutEventsConfigurationInput) SetAccountId(v string) *PutEventsConfigurationInput {
	s.AccountId = &v
	return s
}

// SetBotId sets the BotId field's value.
func (s *PutEventsConfigurationInput) SetBotId(v string) *PutEventsConfigurationInput {
	s.BotId = &v
	return s
}

// SetLambdaFunctionArn sets the LambdaFunctionArn field's value.
func (s *PutEventsConfigurationInput) SetLambdaFunctionArn(v string) *PutEventsConfigurationInput {
	s.LambdaFunctionArn = &v
	return s
}

// SetOutboundEventsHTTPSEndpoint sets the OutboundEventsHTTPSEndpoint field's value.
func (s *PutEventsConfigurationInput) SetOutboundEventsHTTPSEndpoint(v string) *PutEventsConfigurationInput {
	s.OutboundEventsHTTPSEndpoint = &v
	return s
}

type PutEventsConfigurationOutput struct {
	_ struct{} `type:"structure"`

	// The configuration that allows a bot to receive outgoing events. Can be an
	// HTTPS endpoint or an AWS Lambda function ARN.
	EventsConfiguration *EventsConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutEventsConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutEventsConfigurationOutput) GoString() string {
	return s.String()
}

// SetEventsConfiguration sets the EventsConfiguration field's value.
func (s *PutEventsConfigurationOutput) SetEventsConfiguration(v *EventsConfiguration) *PutEventsConfigurationOutput {
	s.EventsConfiguration = v
	return s
}

type PutRetentionSettingsInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The retention settings.
	//
	// RetentionSettings is a required field
	RetentionSettings *RetentionSettings `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutRetentionSettingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutRetentionSettingsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutRetentionSettingsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutRetentionSettingsInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.RetentionSettings == nil {
		invalidParams.Add(request.NewErrParamRequired("RetentionSettings"))
	}
	if s.RetentionSettings != nil {
		if err := s.RetentionSettings.Validate(); err != nil {
			invalidParams.AddNested("RetentionSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *PutRetentionSettingsInput) SetAccountId(v string) *PutRetentionSettingsInput {
	s.AccountId = &v
	return s
}

// SetRetentionSettings sets the RetentionSettings field's value.
func (s *PutRetentionSettingsInput) SetRetentionSettings(v *RetentionSettings) *PutRetentionSettingsInput {
	s.RetentionSettings = v
	return s
}

type PutRetentionSettingsOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp representing the time at which the specified items are permanently
	// deleted, in ISO 8601 format.
	InitiateDeletionTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The retention settings.
	RetentionSettings *RetentionSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutRetentionSettingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutRetentionSettingsOutput) GoString() string {
	return s.String()
}

// SetInitiateDeletionTimestamp sets the InitiateDeletionTimestamp field's value.
func (s *PutRetentionSettingsOutput) SetInitiateDeletionTimestamp(v time.Time) *PutRetentionSettingsOutput {
	s.InitiateDeletionTimestamp = &v
	return s
}

// SetRetentionSettings sets the RetentionSettings field's value.
func (s *PutRetentionSettingsOutput) SetRetentionSettings(v *RetentionSettings) *PutRetentionSettingsOutput {
	s.RetentionSettings = v
	return s
}

type PutSipMediaApplicationLoggingConfigurationInput struct {
	_ struct{} `type:"structure"`

	// The SIP media application ID.
	//
	// SipMediaApplicationId is a required field
	SipMediaApplicationId *string `location:"uri" locationName:"sipMediaApplicationId" type:"string" required:"true"`

	// The actual logging configuration.
	SipMediaApplicationLoggingConfiguration *SipMediaApplicationLoggingConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutSipMediaApplicationLoggingConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutSipMediaApplicationLoggingConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutSipMediaApplicationLoggingConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutSipMediaApplicationLoggingConfigurationInput"}
	if s.SipMediaApplicationId == nil {
		invalidParams.Add(request.NewErrParamRequired("SipMediaApplicationId"))
	}
	if s.SipMediaApplicationId != nil && len(*s.SipMediaApplicationId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SipMediaApplicationId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSipMediaApplicationId sets the SipMediaApplicationId field's value.
func (s *PutSipMediaApplicationLoggingConfigurationInput) SetSipMediaApplicationId(v string) *PutSipMediaApplicationLoggingConfigurationInput {
	s.SipMediaApplicationId = &v
	return s
}

// SetSipMediaApplicationLoggingConfiguration sets the SipMediaApplicationLoggingConfiguration field's value.
func (s *PutSipMediaApplicationLoggingConfigurationInput) SetSipMediaApplicationLoggingConfiguration(v *SipMediaApplicationLoggingConfiguration) *PutSipMediaApplicationLoggingConfigurationInput {
	s.SipMediaApplicationLoggingConfiguration = v
	return s
}

type PutSipMediaApplicationLoggingConfigurationOutput struct {
	_ struct{} `type:"structure"`

	// The logging configuration of the SIP media application.
	SipMediaApplicationLoggingConfiguration *SipMediaApplicationLoggingConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutSipMediaApplicationLoggingConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutSipMediaApplicationLoggingConfigurationOutput) GoString() string {
	return s.String()
}

// SetSipMediaApplicationLoggingConfiguration sets the SipMediaApplicationLoggingConfiguration field's value.
func (s *PutSipMediaApplicationLoggingConfigurationOutput) SetSipMediaApplicationLoggingConfiguration(v *SipMediaApplicationLoggingConfiguration) *PutSipMediaApplicationLoggingConfigurationOutput {
	s.SipMediaApplicationLoggingConfiguration = v
	return s
}

type PutVoiceConnectorEmergencyCallingConfigurationInput struct {
	_ struct{} `type:"structure"`

	// The emergency calling configuration details.
	//
	// EmergencyCallingConfiguration is a required field
	EmergencyCallingConfiguration *EmergencyCallingConfiguration `type:"structure" required:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorEmergencyCallingConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorEmergencyCallingConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutVoiceConnectorEmergencyCallingConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutVoiceConnectorEmergencyCallingConfigurationInput"}
	if s.EmergencyCallingConfiguration == nil {
		invalidParams.Add(request.NewErrParamRequired("EmergencyCallingConfiguration"))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}
	if s.EmergencyCallingConfiguration != nil {
		if err := s.EmergencyCallingConfiguration.Validate(); err != nil {
			invalidParams.AddNested("EmergencyCallingConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEmergencyCallingConfiguration sets the EmergencyCallingConfiguration field's value.
func (s *PutVoiceConnectorEmergencyCallingConfigurationInput) SetEmergencyCallingConfiguration(v *EmergencyCallingConfiguration) *PutVoiceConnectorEmergencyCallingConfigurationInput {
	s.EmergencyCallingConfiguration = v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *PutVoiceConnectorEmergencyCallingConfigurationInput) SetVoiceConnectorId(v string) *PutVoiceConnectorEmergencyCallingConfigurationInput {
	s.VoiceConnectorId = &v
	return s
}

type PutVoiceConnectorEmergencyCallingConfigurationOutput struct {
	_ struct{} `type:"structure"`

	// The emergency calling configuration details.
	EmergencyCallingConfiguration *EmergencyCallingConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorEmergencyCallingConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorEmergencyCallingConfigurationOutput) GoString() string {
	return s.String()
}

// SetEmergencyCallingConfiguration sets the EmergencyCallingConfiguration field's value.
func (s *PutVoiceConnectorEmergencyCallingConfigurationOutput) SetEmergencyCallingConfiguration(v *EmergencyCallingConfiguration) *PutVoiceConnectorEmergencyCallingConfigurationOutput {
	s.EmergencyCallingConfiguration = v
	return s
}

type PutVoiceConnectorLoggingConfigurationInput struct {
	_ struct{} `type:"structure"`

	// The logging configuration details to add.
	//
	// LoggingConfiguration is a required field
	LoggingConfiguration *LoggingConfiguration `type:"structure" required:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorLoggingConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorLoggingConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutVoiceConnectorLoggingConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutVoiceConnectorLoggingConfigurationInput"}
	if s.LoggingConfiguration == nil {
		invalidParams.Add(request.NewErrParamRequired("LoggingConfiguration"))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLoggingConfiguration sets the LoggingConfiguration field's value.
func (s *PutVoiceConnectorLoggingConfigurationInput) SetLoggingConfiguration(v *LoggingConfiguration) *PutVoiceConnectorLoggingConfigurationInput {
	s.LoggingConfiguration = v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *PutVoiceConnectorLoggingConfigurationInput) SetVoiceConnectorId(v string) *PutVoiceConnectorLoggingConfigurationInput {
	s.VoiceConnectorId = &v
	return s
}

type PutVoiceConnectorLoggingConfigurationOutput struct {
	_ struct{} `type:"structure"`

	// The updated logging configuration details.
	LoggingConfiguration *LoggingConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorLoggingConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorLoggingConfigurationOutput) GoString() string {
	return s.String()
}

// SetLoggingConfiguration sets the LoggingConfiguration field's value.
func (s *PutVoiceConnectorLoggingConfigurationOutput) SetLoggingConfiguration(v *LoggingConfiguration) *PutVoiceConnectorLoggingConfigurationOutput {
	s.LoggingConfiguration = v
	return s
}

type PutVoiceConnectorOriginationInput struct {
	_ struct{} `type:"structure"`

	// The origination setting details to add.
	//
	// Origination is a required field
	Origination *Origination `type:"structure" required:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorOriginationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorOriginationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutVoiceConnectorOriginationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutVoiceConnectorOriginationInput"}
	if s.Origination == nil {
		invalidParams.Add(request.NewErrParamRequired("Origination"))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}
	if s.Origination != nil {
		if err := s.Origination.Validate(); err != nil {
			invalidParams.AddNested("Origination", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetOrigination sets the Origination field's value.
func (s *PutVoiceConnectorOriginationInput) SetOrigination(v *Origination) *PutVoiceConnectorOriginationInput {
	s.Origination = v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *PutVoiceConnectorOriginationInput) SetVoiceConnectorId(v string) *PutVoiceConnectorOriginationInput {
	s.VoiceConnectorId = &v
	return s
}

type PutVoiceConnectorOriginationOutput struct {
	_ struct{} `type:"structure"`

	// The updated origination setting details.
	Origination *Origination `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorOriginationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorOriginationOutput) GoString() string {
	return s.String()
}

// SetOrigination sets the Origination field's value.
func (s *PutVoiceConnectorOriginationOutput) SetOrigination(v *Origination) *PutVoiceConnectorOriginationOutput {
	s.Origination = v
	return s
}

type PutVoiceConnectorProxyInput struct {
	_ struct{} `type:"structure"`

	// The default number of minutes allowed for proxy sessions.
	//
	// DefaultSessionExpiryMinutes is a required field
	DefaultSessionExpiryMinutes *int64 `type:"integer" required:"true"`

	// When true, stops proxy sessions from being created on the specified Amazon
	// Chime Voice Connector.
	Disabled *bool `type:"boolean"`

	// The phone number to route calls to after a proxy session expires.
	//
	// FallBackPhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by PutVoiceConnectorProxyInput's
	// String and GoString methods.
	FallBackPhoneNumber *string `type:"string" sensitive:"true"`

	// The countries for proxy phone numbers to be selected from.
	//
	// PhoneNumberPoolCountries is a required field
	PhoneNumberPoolCountries []*string `min:"1" type:"list" required:"true"`

	// The Amazon Chime voice connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorProxyInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorProxyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutVoiceConnectorProxyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutVoiceConnectorProxyInput"}
	if s.DefaultSessionExpiryMinutes == nil {
		invalidParams.Add(request.NewErrParamRequired("DefaultSessionExpiryMinutes"))
	}
	if s.PhoneNumberPoolCountries == nil {
		invalidParams.Add(request.NewErrParamRequired("PhoneNumberPoolCountries"))
	}
	if s.PhoneNumberPoolCountries != nil && len(s.PhoneNumberPoolCountries) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PhoneNumberPoolCountries", 1))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDefaultSessionExpiryMinutes sets the DefaultSessionExpiryMinutes field's value.
func (s *PutVoiceConnectorProxyInput) SetDefaultSessionExpiryMinutes(v int64) *PutVoiceConnectorProxyInput {
	s.DefaultSessionExpiryMinutes = &v
	return s
}

// SetDisabled sets the Disabled field's value.
func (s *PutVoiceConnectorProxyInput) SetDisabled(v bool) *PutVoiceConnectorProxyInput {
	s.Disabled = &v
	return s
}

// SetFallBackPhoneNumber sets the FallBackPhoneNumber field's value.
func (s *PutVoiceConnectorProxyInput) SetFallBackPhoneNumber(v string) *PutVoiceConnectorProxyInput {
	s.FallBackPhoneNumber = &v
	return s
}

// SetPhoneNumberPoolCountries sets the PhoneNumberPoolCountries field's value.
func (s *PutVoiceConnectorProxyInput) SetPhoneNumberPoolCountries(v []*string) *PutVoiceConnectorProxyInput {
	s.PhoneNumberPoolCountries = v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *PutVoiceConnectorProxyInput) SetVoiceConnectorId(v string) *PutVoiceConnectorProxyInput {
	s.VoiceConnectorId = &v
	return s
}

type PutVoiceConnectorProxyOutput struct {
	_ struct{} `type:"structure"`

	// The proxy configuration details.
	Proxy *Proxy `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorProxyOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorProxyOutput) GoString() string {
	return s.String()
}

// SetProxy sets the Proxy field's value.
func (s *PutVoiceConnectorProxyOutput) SetProxy(v *Proxy) *PutVoiceConnectorProxyOutput {
	s.Proxy = v
	return s
}

type PutVoiceConnectorStreamingConfigurationInput struct {
	_ struct{} `type:"structure"`

	// The streaming configuration details to add.
	//
	// StreamingConfiguration is a required field
	StreamingConfiguration *StreamingConfiguration `type:"structure" required:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorStreamingConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorStreamingConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutVoiceConnectorStreamingConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutVoiceConnectorStreamingConfigurationInput"}
	if s.StreamingConfiguration == nil {
		invalidParams.Add(request.NewErrParamRequired("StreamingConfiguration"))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}
	if s.StreamingConfiguration != nil {
		if err := s.StreamingConfiguration.Validate(); err != nil {
			invalidParams.AddNested("StreamingConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetStreamingConfiguration sets the StreamingConfiguration field's value.
func (s *PutVoiceConnectorStreamingConfigurationInput) SetStreamingConfiguration(v *StreamingConfiguration) *PutVoiceConnectorStreamingConfigurationInput {
	s.StreamingConfiguration = v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *PutVoiceConnectorStreamingConfigurationInput) SetVoiceConnectorId(v string) *PutVoiceConnectorStreamingConfigurationInput {
	s.VoiceConnectorId = &v
	return s
}

type PutVoiceConnectorStreamingConfigurationOutput struct {
	_ struct{} `type:"structure"`

	// The updated streaming configuration details.
	StreamingConfiguration *StreamingConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorStreamingConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorStreamingConfigurationOutput) GoString() string {
	return s.String()
}

// SetStreamingConfiguration sets the StreamingConfiguration field's value.
func (s *PutVoiceConnectorStreamingConfigurationOutput) SetStreamingConfiguration(v *StreamingConfiguration) *PutVoiceConnectorStreamingConfigurationOutput {
	s.StreamingConfiguration = v
	return s
}

type PutVoiceConnectorTerminationCredentialsInput struct {
	_ struct{} `type:"structure"`

	// The termination SIP credentials.
	Credentials []*Credential `type:"list"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorTerminationCredentialsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorTerminationCredentialsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutVoiceConnectorTerminationCredentialsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutVoiceConnectorTerminationCredentialsInput"}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCredentials sets the Credentials field's value.
func (s *PutVoiceConnectorTerminationCredentialsInput) SetCredentials(v []*Credential) *PutVoiceConnectorTerminationCredentialsInput {
	s.Credentials = v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *PutVoiceConnectorTerminationCredentialsInput) SetVoiceConnectorId(v string) *PutVoiceConnectorTerminationCredentialsInput {
	s.VoiceConnectorId = &v
	return s
}

type PutVoiceConnectorTerminationCredentialsOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorTerminationCredentialsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorTerminationCredentialsOutput) GoString() string {
	return s.String()
}

type PutVoiceConnectorTerminationInput struct {
	_ struct{} `type:"structure"`

	// The termination setting details to add.
	//
	// Termination is a required field
	Termination *Termination `type:"structure" required:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorTerminationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorTerminationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutVoiceConnectorTerminationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutVoiceConnectorTerminationInput"}
	if s.Termination == nil {
		invalidParams.Add(request.NewErrParamRequired("Termination"))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}
	if s.Termination != nil {
		if err := s.Termination.Validate(); err != nil {
			invalidParams.AddNested("Termination", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTermination sets the Termination field's value.
func (s *PutVoiceConnectorTerminationInput) SetTermination(v *Termination) *PutVoiceConnectorTerminationInput {
	s.Termination = v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *PutVoiceConnectorTerminationInput) SetVoiceConnectorId(v string) *PutVoiceConnectorTerminationInput {
	s.VoiceConnectorId = &v
	return s
}

type PutVoiceConnectorTerminationOutput struct {
	_ struct{} `type:"structure"`

	// The updated termination setting details.
	Termination *Termination `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorTerminationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutVoiceConnectorTerminationOutput) GoString() string {
	return s.String()
}

// SetTermination sets the Termination field's value.
func (s *PutVoiceConnectorTerminationOutput) SetTermination(v *Termination) *PutVoiceConnectorTerminationOutput {
	s.Termination = v
	return s
}

type RedactChannelMessageInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel containing the messages that you want to redact.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The ID of the message being redacted.
	//
	// MessageId is a required field
	MessageId *string `location:"uri" locationName:"messageId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedactChannelMessageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedactChannelMessageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RedactChannelMessageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RedactChannelMessageInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MessageId == nil {
		invalidParams.Add(request.NewErrParamRequired("MessageId"))
	}
	if s.MessageId != nil && len(*s.MessageId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MessageId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *RedactChannelMessageInput) SetChannelArn(v string) *RedactChannelMessageInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *RedactChannelMessageInput) SetChimeBearer(v string) *RedactChannelMessageInput {
	s.ChimeBearer = &v
	return s
}

// SetMessageId sets the MessageId field's value.
func (s *RedactChannelMessageInput) SetMessageId(v string) *RedactChannelMessageInput {
	s.MessageId = &v
	return s
}

type RedactChannelMessageOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel containing the messages that you want to redact.
	ChannelArn *string `min:"5" type:"string"`

	// The ID of the message being redacted.
	MessageId *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedactChannelMessageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedactChannelMessageOutput) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *RedactChannelMessageOutput) SetChannelArn(v string) *RedactChannelMessageOutput {
	s.ChannelArn = &v
	return s
}

// SetMessageId sets the MessageId field's value.
func (s *RedactChannelMessageOutput) SetMessageId(v string) *RedactChannelMessageOutput {
	s.MessageId = &v
	return s
}

type RedactConversationMessageInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The conversation ID.
	//
	// ConversationId is a required field
	ConversationId *string `location:"uri" locationName:"conversationId" type:"string" required:"true"`

	// The message ID.
	//
	// MessageId is a required field
	MessageId *string `location:"uri" locationName:"messageId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedactConversationMessageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedactConversationMessageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RedactConversationMessageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RedactConversationMessageInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.ConversationId == nil {
		invalidParams.Add(request.NewErrParamRequired("ConversationId"))
	}
	if s.ConversationId != nil && len(*s.ConversationId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ConversationId", 1))
	}
	if s.MessageId == nil {
		invalidParams.Add(request.NewErrParamRequired("MessageId"))
	}
	if s.MessageId != nil && len(*s.MessageId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MessageId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *RedactConversationMessageInput) SetAccountId(v string) *RedactConversationMessageInput {
	s.AccountId = &v
	return s
}

// SetConversationId sets the ConversationId field's value.
func (s *RedactConversationMessageInput) SetConversationId(v string) *RedactConversationMessageInput {
	s.ConversationId = &v
	return s
}

// SetMessageId sets the MessageId field's value.
func (s *RedactConversationMessageInput) SetMessageId(v string) *RedactConversationMessageInput {
	s.MessageId = &v
	return s
}

type RedactConversationMessageOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedactConversationMessageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedactConversationMessageOutput) GoString() string {
	return s.String()
}

type RedactRoomMessageInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The message ID.
	//
	// MessageId is a required field
	MessageId *string `location:"uri" locationName:"messageId" type:"string" required:"true"`

	// The room ID.
	//
	// RoomId is a required field
	RoomId *string `location:"uri" locationName:"roomId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedactRoomMessageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedactRoomMessageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RedactRoomMessageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RedactRoomMessageInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.MessageId == nil {
		invalidParams.Add(request.NewErrParamRequired("MessageId"))
	}
	if s.MessageId != nil && len(*s.MessageId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MessageId", 1))
	}
	if s.RoomId == nil {
		invalidParams.Add(request.NewErrParamRequired("RoomId"))
	}
	if s.RoomId != nil && len(*s.RoomId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RoomId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *RedactRoomMessageInput) SetAccountId(v string) *RedactRoomMessageInput {
	s.AccountId = &v
	return s
}

// SetMessageId sets the MessageId field's value.
func (s *RedactRoomMessageInput) SetMessageId(v string) *RedactRoomMessageInput {
	s.MessageId = &v
	return s
}

// SetRoomId sets the RoomId field's value.
func (s *RedactRoomMessageInput) SetRoomId(v string) *RedactRoomMessageInput {
	s.RoomId = &v
	return s
}

type RedactRoomMessageOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedactRoomMessageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedactRoomMessageOutput) GoString() string {
	return s.String()
}

type RegenerateSecurityTokenInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The bot ID.
	//
	// BotId is a required field
	BotId *string `location:"uri" locationName:"botId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RegenerateSecurityTokenInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RegenerateSecurityTokenInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RegenerateSecurityTokenInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RegenerateSecurityTokenInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.BotId == nil {
		invalidParams.Add(request.NewErrParamRequired("BotId"))
	}
	if s.BotId != nil && len(*s.BotId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BotId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *RegenerateSecurityTokenInput) SetAccountId(v string) *RegenerateSecurityTokenInput {
	s.AccountId = &v
	return s
}

// SetBotId sets the BotId field's value.
func (s *RegenerateSecurityTokenInput) SetBotId(v string) *RegenerateSecurityTokenInput {
	s.BotId = &v
	return s
}

type RegenerateSecurityTokenOutput struct {
	_ struct{} `type:"structure"`

	// A resource that allows Enterprise account administrators to configure an
	// interface that receives events from Amazon Chime.
	Bot *Bot `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RegenerateSecurityTokenOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RegenerateSecurityTokenOutput) GoString() string {
	return s.String()
}

// SetBot sets the Bot field's value.
func (s *RegenerateSecurityTokenOutput) SetBot(v *Bot) *RegenerateSecurityTokenOutput {
	s.Bot = v
	return s
}

type ResetPersonalPINInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The user ID.
	//
	// UserId is a required field
	UserId *string `location:"uri" locationName:"userId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResetPersonalPINInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResetPersonalPINInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ResetPersonalPINInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ResetPersonalPINInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.UserId == nil {
		invalidParams.Add(request.NewErrParamRequired("UserId"))
	}
	if s.UserId != nil && len(*s.UserId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UserId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *ResetPersonalPINInput) SetAccountId(v string) *ResetPersonalPINInput {
	s.AccountId = &v
	return s
}

// SetUserId sets the UserId field's value.
func (s *ResetPersonalPINInput) SetUserId(v string) *ResetPersonalPINInput {
	s.UserId = &v
	return s
}

type ResetPersonalPINOutput struct {
	_ struct{} `type:"structure"`

	// The user details and new personal meeting PIN.
	User *User `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResetPersonalPINOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResetPersonalPINOutput) GoString() string {
	return s.String()
}

// SetUser sets the User field's value.
func (s *ResetPersonalPINOutput) SetUser(v *User) *ResetPersonalPINOutput {
	s.User = v
	return s
}

// The request exceeds the resource limit.
type ResourceLimitExceededException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Code_ *string `locationName:"Code" type:"string" enum:"ErrorCode"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceLimitExceededException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceLimitExceededException) GoString() string {
	return s.String()
}

func newErrorResourceLimitExceededException(v protocol.ResponseMetadata) error {
	return &ResourceLimitExceededException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ResourceLimitExceededException) Code() string {
	return "ResourceLimitExceededException"
}

// Message returns the exception's message.
func (s *ResourceLimitExceededException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ResourceLimitExceededException) OrigErr() error {
	return nil
}

func (s *ResourceLimitExceededException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ResourceLimitExceededException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ResourceLimitExceededException) RequestID() string {
	return s.RespMetadata.RequestID
}

type RestorePhoneNumberInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The phone number.
	//
	// PhoneNumberId is a required field
	PhoneNumberId *string `location:"uri" locationName:"phoneNumberId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RestorePhoneNumberInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RestorePhoneNumberInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RestorePhoneNumberInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RestorePhoneNumberInput"}
	if s.PhoneNumberId == nil {
		invalidParams.Add(request.NewErrParamRequired("PhoneNumberId"))
	}
	if s.PhoneNumberId != nil && len(*s.PhoneNumberId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PhoneNumberId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPhoneNumberId sets the PhoneNumberId field's value.
func (s *RestorePhoneNumberInput) SetPhoneNumberId(v string) *RestorePhoneNumberInput {
	s.PhoneNumberId = &v
	return s
}

type RestorePhoneNumberOutput struct {
	_ struct{} `type:"structure"`

	// The phone number details.
	PhoneNumber *PhoneNumber `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RestorePhoneNumberOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RestorePhoneNumberOutput) GoString() string {
	return s.String()
}

// SetPhoneNumber sets the PhoneNumber field's value.
func (s *RestorePhoneNumberOutput) SetPhoneNumber(v *PhoneNumber) *RestorePhoneNumberOutput {
	s.PhoneNumber = v
	return s
}

// The retention settings for an Amazon Chime Enterprise account that determine
// how long to retain items such as chat-room messages and chat-conversation
// messages.
type RetentionSettings struct {
	_ struct{} `type:"structure"`

	// The chat conversation retention settings.
	ConversationRetentionSettings *ConversationRetentionSettings `type:"structure"`

	// The chat room retention settings.
	RoomRetentionSettings *RoomRetentionSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RetentionSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RetentionSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RetentionSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RetentionSettings"}
	if s.ConversationRetentionSettings != nil {
		if err := s.ConversationRetentionSettings.Validate(); err != nil {
			invalidParams.AddNested("ConversationRetentionSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.RoomRetentionSettings != nil {
		if err := s.RoomRetentionSettings.Validate(); err != nil {
			invalidParams.AddNested("RoomRetentionSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetConversationRetentionSettings sets the ConversationRetentionSettings field's value.
func (s *RetentionSettings) SetConversationRetentionSettings(v *ConversationRetentionSettings) *RetentionSettings {
	s.ConversationRetentionSettings = v
	return s
}

// SetRoomRetentionSettings sets the RoomRetentionSettings field's value.
func (s *RetentionSettings) SetRoomRetentionSettings(v *RoomRetentionSettings) *RetentionSettings {
	s.RoomRetentionSettings = v
	return s
}

// The Amazon Chime chat room details.
type Room struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	AccountId *string `type:"string"`

	// The identifier of the room creator.
	CreatedBy *string `type:"string"`

	// The room creation timestamp, in ISO 8601 format.
	CreatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The room name.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Room's
	// String and GoString methods.
	Name *string `type:"string" sensitive:"true"`

	// The room ID.
	RoomId *string `type:"string"`

	// The room update timestamp, in ISO 8601 format.
	UpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Room) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Room) GoString() string {
	return s.String()
}

// SetAccountId sets the AccountId field's value.
func (s *Room) SetAccountId(v string) *Room {
	s.AccountId = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *Room) SetCreatedBy(v string) *Room {
	s.CreatedBy = &v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *Room) SetCreatedTimestamp(v time.Time) *Room {
	s.CreatedTimestamp = &v
	return s
}

// SetName sets the Name field's value.
func (s *Room) SetName(v string) *Room {
	s.Name = &v
	return s
}

// SetRoomId sets the RoomId field's value.
func (s *Room) SetRoomId(v string) *Room {
	s.RoomId = &v
	return s
}

// SetUpdatedTimestamp sets the UpdatedTimestamp field's value.
func (s *Room) SetUpdatedTimestamp(v time.Time) *Room {
	s.UpdatedTimestamp = &v
	return s
}

// The room membership details.
type RoomMembership struct {
	_ struct{} `type:"structure"`

	// The identifier of the user that invited the room member.
	InvitedBy *string `type:"string"`

	// The member details, such as email address, name, member ID, and member type.
	Member *Member `type:"structure"`

	// The membership role.
	Role *string `type:"string" enum:"RoomMembershipRole"`

	// The room ID.
	RoomId *string `type:"string"`

	// The room membership update timestamp, in ISO 8601 format.
	UpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RoomMembership) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RoomMembership) GoString() string {
	return s.String()
}

// SetInvitedBy sets the InvitedBy field's value.
func (s *RoomMembership) SetInvitedBy(v string) *RoomMembership {
	s.InvitedBy = &v
	return s
}

// SetMember sets the Member field's value.
func (s *RoomMembership) SetMember(v *Member) *RoomMembership {
	s.Member = v
	return s
}

// SetRole sets the Role field's value.
func (s *RoomMembership) SetRole(v string) *RoomMembership {
	s.Role = &v
	return s
}

// SetRoomId sets the RoomId field's value.
func (s *RoomMembership) SetRoomId(v string) *RoomMembership {
	s.RoomId = &v
	return s
}

// SetUpdatedTimestamp sets the UpdatedTimestamp field's value.
func (s *RoomMembership) SetUpdatedTimestamp(v time.Time) *RoomMembership {
	s.UpdatedTimestamp = &v
	return s
}

// The retention settings that determine how long to retain chat-room messages
// for an Amazon Chime Enterprise account.
type RoomRetentionSettings struct {
	_ struct{} `type:"structure"`

	// The number of days for which to retain chat-room messages.
	RetentionDays *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RoomRetentionSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RoomRetentionSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RoomRetentionSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RoomRetentionSettings"}
	if s.RetentionDays != nil && *s.RetentionDays < 1 {
		invalidParams.Add(request.NewErrParamMinValue("RetentionDays", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetRetentionDays sets the RetentionDays field's value.
func (s *RoomRetentionSettings) SetRetentionDays(v int64) *RoomRetentionSettings {
	s.RetentionDays = &v
	return s
}

type SearchAvailablePhoneNumbersInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The area code used to filter results. Only applies to the US.
	AreaCode *string `location:"querystring" locationName:"area-code" type:"string"`

	// The city used to filter results. Only applies to the US.
	City *string `location:"querystring" locationName:"city" type:"string"`

	// The country used to filter results. Defaults to the US Format: ISO 3166-1
	// alpha-2.
	Country *string `location:"querystring" locationName:"country" type:"string"`

	// The maximum number of results to return in a single call.
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// The token used to retrieve the next page of results.
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`

	// The phone number type used to filter results. Required for non-US numbers.
	PhoneNumberType *string `location:"querystring" locationName:"phone-number-type" type:"string" enum:"PhoneNumberType"`

	// The state used to filter results. Required only if you provide City. Only
	// applies to the US.
	State *string `location:"querystring" locationName:"state" type:"string"`

	// The toll-free prefix that you use to filter results. Only applies to the
	// US.
	TollFreePrefix *string `location:"querystring" locationName:"toll-free-prefix" min:"3" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchAvailablePhoneNumbersInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchAvailablePhoneNumbersInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchAvailablePhoneNumbersInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchAvailablePhoneNumbersInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.TollFreePrefix != nil && len(*s.TollFreePrefix) < 3 {
		invalidParams.Add(request.NewErrParamMinLen("TollFreePrefix", 3))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAreaCode sets the AreaCode field's value.
func (s *SearchAvailablePhoneNumbersInput) SetAreaCode(v string) *SearchAvailablePhoneNumbersInput {
	s.AreaCode = &v
	return s
}

// SetCity sets the City field's value.
func (s *SearchAvailablePhoneNumbersInput) SetCity(v string) *SearchAvailablePhoneNumbersInput {
	s.City = &v
	return s
}

// SetCountry sets the Country field's value.
func (s *SearchAvailablePhoneNumbersInput) SetCountry(v string) *SearchAvailablePhoneNumbersInput {
	s.Country = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *SearchAvailablePhoneNumbersInput) SetMaxResults(v int64) *SearchAvailablePhoneNumbersInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchAvailablePhoneNumbersInput) SetNextToken(v string) *SearchAvailablePhoneNumbersInput {
	s.NextToken = &v
	return s
}

// SetPhoneNumberType sets the PhoneNumberType field's value.
func (s *SearchAvailablePhoneNumbersInput) SetPhoneNumberType(v string) *SearchAvailablePhoneNumbersInput {
	s.PhoneNumberType = &v
	return s
}

// SetState sets the State field's value.
func (s *SearchAvailablePhoneNumbersInput) SetState(v string) *SearchAvailablePhoneNumbersInput {
	s.State = &v
	return s
}

// SetTollFreePrefix sets the TollFreePrefix field's value.
func (s *SearchAvailablePhoneNumbersInput) SetTollFreePrefix(v string) *SearchAvailablePhoneNumbersInput {
	s.TollFreePrefix = &v
	return s
}

type SearchAvailablePhoneNumbersOutput struct {
	_ struct{} `type:"structure"`

	// List of phone numbers, in E.164 format.
	E164PhoneNumbers []*string `type:"list"`

	// The token used to retrieve the next page of search results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchAvailablePhoneNumbersOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchAvailablePhoneNumbersOutput) GoString() string {
	return s.String()
}

// SetE164PhoneNumbers sets the E164PhoneNumbers field's value.
func (s *SearchAvailablePhoneNumbersOutput) SetE164PhoneNumbers(v []*string) *SearchAvailablePhoneNumbersOutput {
	s.E164PhoneNumbers = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchAvailablePhoneNumbersOutput) SetNextToken(v string) *SearchAvailablePhoneNumbersOutput {
	s.NextToken = &v
	return s
}

// The video streams to capture for a specified media capture pipeline. The
// total number of video streams can't exceed 25.
type SelectedVideoStreams struct {
	_ struct{} `type:"structure"`

	// The attendee IDs of the streams selected for a media capture pipeline.
	AttendeeIds []*string `min:"1" type:"list"`

	// The external user IDs of the streams selected for a media capture pipeline.
	ExternalUserIds []*string `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SelectedVideoStreams) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SelectedVideoStreams) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SelectedVideoStreams) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SelectedVideoStreams"}
	if s.AttendeeIds != nil && len(s.AttendeeIds) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AttendeeIds", 1))
	}
	if s.ExternalUserIds != nil && len(s.ExternalUserIds) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ExternalUserIds", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAttendeeIds sets the AttendeeIds field's value.
func (s *SelectedVideoStreams) SetAttendeeIds(v []*string) *SelectedVideoStreams {
	s.AttendeeIds = v
	return s
}

// SetExternalUserIds sets the ExternalUserIds field's value.
func (s *SelectedVideoStreams) SetExternalUserIds(v []*string) *SelectedVideoStreams {
	s.ExternalUserIds = v
	return s
}

type SendChannelMessageInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The Idempotency token for each client request.
	//
	// ClientRequestToken is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SendChannelMessageInput's
	// String and GoString methods.
	ClientRequestToken *string `min:"2" type:"string" idempotencyToken:"true" sensitive:"true"`

	// The content of the message.
	//
	// Content is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SendChannelMessageInput's
	// String and GoString methods.
	//
	// Content is a required field
	Content *string `min:"1" type:"string" required:"true" sensitive:"true"`

	// The optional metadata for each message.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SendChannelMessageInput's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// Boolean that controls whether the message is persisted on the back end. Required.
	//
	// Persistence is a required field
	Persistence *string `type:"string" required:"true" enum:"ChannelMessagePersistenceType"`

	// The type of message, STANDARD or CONTROL.
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"ChannelMessageType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SendChannelMessageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SendChannelMessageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SendChannelMessageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SendChannelMessageInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 2))
	}
	if s.Content == nil {
		invalidParams.Add(request.NewErrParamRequired("Content"))
	}
	if s.Content != nil && len(*s.Content) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Content", 1))
	}
	if s.Persistence == nil {
		invalidParams.Add(request.NewErrParamRequired("Persistence"))
	}
	if s.Type == nil {
		invalidParams.Add(request.NewErrParamRequired("Type"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *SendChannelMessageInput) SetChannelArn(v string) *SendChannelMessageInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *SendChannelMessageInput) SetChimeBearer(v string) *SendChannelMessageInput {
	s.ChimeBearer = &v
	return s
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *SendChannelMessageInput) SetClientRequestToken(v string) *SendChannelMessageInput {
	s.ClientRequestToken = &v
	return s
}

// SetContent sets the Content field's value.
func (s *SendChannelMessageInput) SetContent(v string) *SendChannelMessageInput {
	s.Content = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *SendChannelMessageInput) SetMetadata(v string) *SendChannelMessageInput {
	s.Metadata = &v
	return s
}

// SetPersistence sets the Persistence field's value.
func (s *SendChannelMessageInput) SetPersistence(v string) *SendChannelMessageInput {
	s.Persistence = &v
	return s
}

// SetType sets the Type field's value.
func (s *SendChannelMessageInput) SetType(v string) *SendChannelMessageInput {
	s.Type = &v
	return s
}

type SendChannelMessageOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	ChannelArn *string `min:"5" type:"string"`

	// The ID string assigned to each message.
	MessageId *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SendChannelMessageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SendChannelMessageOutput) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *SendChannelMessageOutput) SetChannelArn(v string) *SendChannelMessageOutput {
	s.ChannelArn = &v
	return s
}

// SetMessageId sets the MessageId field's value.
func (s *SendChannelMessageOutput) SetMessageId(v string) *SendChannelMessageOutput {
	s.MessageId = &v
	return s
}

// The service encountered an unexpected error.
type ServiceFailureException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Code_ *string `locationName:"Code" type:"string" enum:"ErrorCode"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceFailureException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceFailureException) GoString() string {
	return s.String()
}

func newErrorServiceFailureException(v protocol.ResponseMetadata) error {
	return &ServiceFailureException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ServiceFailureException) Code() string {
	return "ServiceFailureException"
}

// Message returns the exception's message.
func (s *ServiceFailureException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ServiceFailureException) OrigErr() error {
	return nil
}

func (s *ServiceFailureException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ServiceFailureException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ServiceFailureException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The service is currently unavailable.
type ServiceUnavailableException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Code_ *string `locationName:"Code" type:"string" enum:"ErrorCode"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceUnavailableException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceUnavailableException) GoString() string {
	return s.String()
}

func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
	return &ServiceUnavailableException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ServiceUnavailableException) Code() string {
	return "ServiceUnavailableException"
}

// Message returns the exception's message.
func (s *ServiceUnavailableException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ServiceUnavailableException) OrigErr() error {
	return nil
}

func (s *ServiceUnavailableException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ServiceUnavailableException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ServiceUnavailableException) RequestID() string {
	return s.RespMetadata.RequestID
}

// An Active Directory (AD) group whose members are granted permission to act
// as delegates.
type SigninDelegateGroup struct {
	_ struct{} `type:"structure"`

	// The group name.
	GroupName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SigninDelegateGroup) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SigninDelegateGroup) GoString() string {
	return s.String()
}

// SetGroupName sets the GroupName field's value.
func (s *SigninDelegateGroup) SetGroupName(v string) *SigninDelegateGroup {
	s.GroupName = &v
	return s
}

// The details of the SIP media application, including name and endpoints. An
// AWS account can have multiple SIP media applications.
type SipMediaApplication struct {
	_ struct{} `type:"structure"`

	// The AWS Region in which the SIP media application is created.
	AwsRegion *string `type:"string"`

	// The SIP media application creation timestamp, in ISO 8601 format.
	CreatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// List of endpoints for SIP media application. Currently, only one endpoint
	// per SIP media application is permitted.
	Endpoints []*SipMediaApplicationEndpoint `min:"1" type:"list"`

	// The name of the SIP media application.
	Name *string `min:"1" type:"string"`

	// The SIP media application ID.
	SipMediaApplicationId *string `type:"string"`

	// The SIP media application updated timestamp, in ISO 8601 format.
	UpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SipMediaApplication) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SipMediaApplication) GoString() string {
	return s.String()
}

// SetAwsRegion sets the AwsRegion field's value.
func (s *SipMediaApplication) SetAwsRegion(v string) *SipMediaApplication {
	s.AwsRegion = &v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *SipMediaApplication) SetCreatedTimestamp(v time.Time) *SipMediaApplication {
	s.CreatedTimestamp = &v
	return s
}

// SetEndpoints sets the Endpoints field's value.
func (s *SipMediaApplication) SetEndpoints(v []*SipMediaApplicationEndpoint) *SipMediaApplication {
	s.Endpoints = v
	return s
}

// SetName sets the Name field's value.
func (s *SipMediaApplication) SetName(v string) *SipMediaApplication {
	s.Name = &v
	return s
}

// SetSipMediaApplicationId sets the SipMediaApplicationId field's value.
func (s *SipMediaApplication) SetSipMediaApplicationId(v string) *SipMediaApplication {
	s.SipMediaApplicationId = &v
	return s
}

// SetUpdatedTimestamp sets the UpdatedTimestamp field's value.
func (s *SipMediaApplication) SetUpdatedTimestamp(v time.Time) *SipMediaApplication {
	s.UpdatedTimestamp = &v
	return s
}

// A Call instance for a SIP media application.
type SipMediaApplicationCall struct {
	_ struct{} `type:"structure"`

	// The transaction ID of a call.
	TransactionId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SipMediaApplicationCall) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SipMediaApplicationCall) GoString() string {
	return s.String()
}

// SetTransactionId sets the TransactionId field's value.
func (s *SipMediaApplicationCall) SetTransactionId(v string) *SipMediaApplicationCall {
	s.TransactionId = &v
	return s
}

// The endpoint assigned to the SIP media application.
type SipMediaApplicationEndpoint struct {
	_ struct{} `type:"structure"`

	// Valid Amazon Resource Name (ARN) of the Lambda function, version, or alias.
	// The function must be created in the same AWS Region as the SIP media application.
	//
	// LambdaArn is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SipMediaApplicationEndpoint's
	// String and GoString methods.
	LambdaArn *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SipMediaApplicationEndpoint) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SipMediaApplicationEndpoint) GoString() string {
	return s.String()
}

// SetLambdaArn sets the LambdaArn field's value.
func (s *SipMediaApplicationEndpoint) SetLambdaArn(v string) *SipMediaApplicationEndpoint {
	s.LambdaArn = &v
	return s
}

// Logging configuration of the SIP media application.
type SipMediaApplicationLoggingConfiguration struct {
	_ struct{} `type:"structure"`

	// Enables application message logs for the SIP media application.
	EnableSipMediaApplicationMessageLogs *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SipMediaApplicationLoggingConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SipMediaApplicationLoggingConfiguration) GoString() string {
	return s.String()
}

// SetEnableSipMediaApplicationMessageLogs sets the EnableSipMediaApplicationMessageLogs field's value.
func (s *SipMediaApplicationLoggingConfiguration) SetEnableSipMediaApplicationMessageLogs(v bool) *SipMediaApplicationLoggingConfiguration {
	s.EnableSipMediaApplicationMessageLogs = &v
	return s
}

// The SIP rule details, including name, triggers, and target applications.
// An AWS account can have multiple SIP rules.
type SipRule struct {
	_ struct{} `type:"structure"`

	// The time at which the SIP rule was created, in ISO 8601 format.
	CreatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// Indicates whether the SIP rule is enabled or disabled. You must disable a
	// rule before you can delete it.
	Disabled *bool `type:"boolean"`

	// The name of the SIP rule.
	Name *string `min:"1" type:"string"`

	// The SIP rule ID.
	SipRuleId *string `type:"string"`

	// Target SIP media application and other details, such as priority and AWS
	// Region, to be specified in the SIP rule. Only one SIP rule per AWS Region
	// can be provided.
	TargetApplications []*SipRuleTargetApplication `min:"1" type:"list"`

	// The type of trigger assigned to the SIP rule in TriggerValue, currently RequestUriHostname
	// or ToPhoneNumber.
	TriggerType *string `type:"string" enum:"SipRuleTriggerType"`

	// If TriggerType is RequestUriHostname, then the value can be the outbound
	// host name of the Amazon Chime Voice Connector. If TriggerType is ToPhoneNumber,
	// then the value can be a customer-owned phone number in E164 format. SipRule
	// is triggered when a SIP rule requests host name or ToPhoneNumber matches
	// in the incoming SIP request.
	TriggerValue *string `type:"string"`

	// The time at which the SIP rule was last updated, in ISO 8601 format.
	UpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SipRule) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SipRule) GoString() string {
	return s.String()
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *SipRule) SetCreatedTimestamp(v time.Time) *SipRule {
	s.CreatedTimestamp = &v
	return s
}

// SetDisabled sets the Disabled field's value.
func (s *SipRule) SetDisabled(v bool) *SipRule {
	s.Disabled = &v
	return s
}

// SetName sets the Name field's value.
func (s *SipRule) SetName(v string) *SipRule {
	s.Name = &v
	return s
}

// SetSipRuleId sets the SipRuleId field's value.
func (s *SipRule) SetSipRuleId(v string) *SipRule {
	s.SipRuleId = &v
	return s
}

// SetTargetApplications sets the TargetApplications field's value.
func (s *SipRule) SetTargetApplications(v []*SipRuleTargetApplication) *SipRule {
	s.TargetApplications = v
	return s
}

// SetTriggerType sets the TriggerType field's value.
func (s *SipRule) SetTriggerType(v string) *SipRule {
	s.TriggerType = &v
	return s
}

// SetTriggerValue sets the TriggerValue field's value.
func (s *SipRule) SetTriggerValue(v string) *SipRule {
	s.TriggerValue = &v
	return s
}

// SetUpdatedTimestamp sets the UpdatedTimestamp field's value.
func (s *SipRule) SetUpdatedTimestamp(v time.Time) *SipRule {
	s.UpdatedTimestamp = &v
	return s
}

// Target SIP media application and other details, such as priority and AWS
// Region, to be specified in the SIP rule. Only one SIP rule per AWS Region
// can be provided.
type SipRuleTargetApplication struct {
	_ struct{} `type:"structure"`

	// The AWS Region of the target application.
	AwsRegion *string `type:"string"`

	// Priority of the SIP media application in the target list.
	Priority *int64 `min:"1" type:"integer"`

	// The SIP media application ID.
	SipMediaApplicationId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SipRuleTargetApplication) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SipRuleTargetApplication) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SipRuleTargetApplication) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SipRuleTargetApplication"}
	if s.Priority != nil && *s.Priority < 1 {
		invalidParams.Add(request.NewErrParamMinValue("Priority", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAwsRegion sets the AwsRegion field's value.
func (s *SipRuleTargetApplication) SetAwsRegion(v string) *SipRuleTargetApplication {
	s.AwsRegion = &v
	return s
}

// SetPriority sets the Priority field's value.
func (s *SipRuleTargetApplication) SetPriority(v int64) *SipRuleTargetApplication {
	s.Priority = &v
	return s
}

// SetSipMediaApplicationId sets the SipMediaApplicationId field's value.
func (s *SipRuleTargetApplication) SetSipMediaApplicationId(v string) *SipRuleTargetApplication {
	s.SipMediaApplicationId = &v
	return s
}

// Source configuration for a specified media capture pipeline.
type SourceConfiguration struct {
	_ struct{} `type:"structure"`

	// The selected video streams to capture for a specified media capture pipeline.
	// The number of video streams can't exceed 25.
	SelectedVideoStreams *SelectedVideoStreams `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SourceConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SourceConfiguration"}
	if s.SelectedVideoStreams != nil {
		if err := s.SelectedVideoStreams.Validate(); err != nil {
			invalidParams.AddNested("SelectedVideoStreams", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSelectedVideoStreams sets the SelectedVideoStreams field's value.
func (s *SourceConfiguration) SetSelectedVideoStreams(v *SelectedVideoStreams) *SourceConfiguration {
	s.SelectedVideoStreams = v
	return s
}

type StartMeetingTranscriptionInput struct {
	_ struct{} `type:"structure"`

	// The unique ID of the meeting being transcribed.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`

	// The configuration for the current transcription operation. Must contain EngineTranscribeSettings
	// or EngineTranscribeMedicalSettings.
	//
	// TranscriptionConfiguration is a required field
	TranscriptionConfiguration *TranscriptionConfiguration `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartMeetingTranscriptionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartMeetingTranscriptionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StartMeetingTranscriptionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StartMeetingTranscriptionInput"}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}
	if s.TranscriptionConfiguration == nil {
		invalidParams.Add(request.NewErrParamRequired("TranscriptionConfiguration"))
	}
	if s.TranscriptionConfiguration != nil {
		if err := s.TranscriptionConfiguration.Validate(); err != nil {
			invalidParams.AddNested("TranscriptionConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMeetingId sets the MeetingId field's value.
func (s *StartMeetingTranscriptionInput) SetMeetingId(v string) *StartMeetingTranscriptionInput {
	s.MeetingId = &v
	return s
}

// SetTranscriptionConfiguration sets the TranscriptionConfiguration field's value.
func (s *StartMeetingTranscriptionInput) SetTranscriptionConfiguration(v *TranscriptionConfiguration) *StartMeetingTranscriptionInput {
	s.TranscriptionConfiguration = v
	return s
}

type StartMeetingTranscriptionOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartMeetingTranscriptionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartMeetingTranscriptionOutput) GoString() string {
	return s.String()
}

type StopMeetingTranscriptionInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The unique ID of the meeting for which you stop transcription.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopMeetingTranscriptionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopMeetingTranscriptionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopMeetingTranscriptionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopMeetingTranscriptionInput"}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMeetingId sets the MeetingId field's value.
func (s *StopMeetingTranscriptionInput) SetMeetingId(v string) *StopMeetingTranscriptionInput {
	s.MeetingId = &v
	return s
}

type StopMeetingTranscriptionOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopMeetingTranscriptionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopMeetingTranscriptionOutput) GoString() string {
	return s.String()
}

// The streaming configuration associated with an Amazon Chime Voice Connector.
// Specifies whether media streaming is enabled for sending to Amazon Kinesis,
// and shows the retention period for the Amazon Kinesis data, in hours.
type StreamingConfiguration struct {
	_ struct{} `type:"structure"`

	// The retention period, in hours, for the Amazon Kinesis data.
	//
	// DataRetentionInHours is a required field
	DataRetentionInHours *int64 `type:"integer" required:"true"`

	// When true, media streaming to Amazon Kinesis is turned off.
	Disabled *bool `type:"boolean"`

	// The streaming notification targets.
	StreamingNotificationTargets []*StreamingNotificationTarget `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StreamingConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StreamingConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StreamingConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StreamingConfiguration"}
	if s.DataRetentionInHours == nil {
		invalidParams.Add(request.NewErrParamRequired("DataRetentionInHours"))
	}
	if s.StreamingNotificationTargets != nil && len(s.StreamingNotificationTargets) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StreamingNotificationTargets", 1))
	}
	if s.StreamingNotificationTargets != nil {
		for i, v := range s.StreamingNotificationTargets {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StreamingNotificationTargets", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataRetentionInHours sets the DataRetentionInHours field's value.
func (s *StreamingConfiguration) SetDataRetentionInHours(v int64) *StreamingConfiguration {
	s.DataRetentionInHours = &v
	return s
}

// SetDisabled sets the Disabled field's value.
func (s *StreamingConfiguration) SetDisabled(v bool) *StreamingConfiguration {
	s.Disabled = &v
	return s
}

// SetStreamingNotificationTargets sets the StreamingNotificationTargets field's value.
func (s *StreamingConfiguration) SetStreamingNotificationTargets(v []*StreamingNotificationTarget) *StreamingConfiguration {
	s.StreamingNotificationTargets = v
	return s
}

// The targeted recipient for a streaming configuration notification.
type StreamingNotificationTarget struct {
	_ struct{} `type:"structure"`

	// The streaming notification target.
	//
	// NotificationTarget is a required field
	NotificationTarget *string `type:"string" required:"true" enum:"NotificationTarget"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StreamingNotificationTarget) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StreamingNotificationTarget) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StreamingNotificationTarget) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StreamingNotificationTarget"}
	if s.NotificationTarget == nil {
		invalidParams.Add(request.NewErrParamRequired("NotificationTarget"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetNotificationTarget sets the NotificationTarget field's value.
func (s *StreamingNotificationTarget) SetNotificationTarget(v string) *StreamingNotificationTarget {
	s.NotificationTarget = &v
	return s
}

// Describes a tag applied to a resource.
type Tag struct {
	_ struct{} `type:"structure"`

	// The key of the tag.
	//
	// Key is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Tag's
	// String and GoString methods.
	//
	// Key is a required field
	Key *string `min:"1" type:"string" required:"true" sensitive:"true"`

	// The value of the tag.
	//
	// Value is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Tag's
	// String and GoString methods.
	//
	// Value is a required field
	Value *string `min:"1" type:"string" required:"true" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Tag) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Tag) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Tag) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Tag"}
	if s.Key == nil {
		invalidParams.Add(request.NewErrParamRequired("Key"))
	}
	if s.Key != nil && len(*s.Key) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
	}
	if s.Value == nil {
		invalidParams.Add(request.NewErrParamRequired("Value"))
	}
	if s.Value != nil && len(*s.Value) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKey sets the Key field's value.
func (s *Tag) SetKey(v string) *Tag {
	s.Key = &v
	return s
}

// SetValue sets the Value field's value.
func (s *Tag) SetValue(v string) *Tag {
	s.Value = &v
	return s
}

type TagAttendeeInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime SDK attendee ID.
	//
	// AttendeeId is a required field
	AttendeeId *string `location:"uri" locationName:"attendeeId" type:"string" required:"true"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`

	// The tag key-value pairs.
	//
	// Tags is a required field
	Tags []*Tag `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagAttendeeInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagAttendeeInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TagAttendeeInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TagAttendeeInput"}
	if s.AttendeeId == nil {
		invalidParams.Add(request.NewErrParamRequired("AttendeeId"))
	}
	if s.AttendeeId != nil && len(*s.AttendeeId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AttendeeId", 1))
	}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}
	if s.Tags == nil {
		invalidParams.Add(request.NewErrParamRequired("Tags"))
	}
	if s.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAttendeeId sets the AttendeeId field's value.
func (s *TagAttendeeInput) SetAttendeeId(v string) *TagAttendeeInput {
	s.AttendeeId = &v
	return s
}

// SetMeetingId sets the MeetingId field's value.
func (s *TagAttendeeInput) SetMeetingId(v string) *TagAttendeeInput {
	s.MeetingId = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *TagAttendeeInput) SetTags(v []*Tag) *TagAttendeeInput {
	s.Tags = v
	return s
}

type TagAttendeeOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagAttendeeOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagAttendeeOutput) GoString() string {
	return s.String()
}

type TagMeetingInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`

	// The tag key-value pairs.
	//
	// Tags is a required field
	Tags []*Tag `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagMeetingInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagMeetingInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TagMeetingInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TagMeetingInput"}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}
	if s.Tags == nil {
		invalidParams.Add(request.NewErrParamRequired("Tags"))
	}
	if s.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMeetingId sets the MeetingId field's value.
func (s *TagMeetingInput) SetMeetingId(v string) *TagMeetingInput {
	s.MeetingId = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *TagMeetingInput) SetTags(v []*Tag) *TagMeetingInput {
	s.Tags = v
	return s
}

type TagMeetingOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagMeetingOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagMeetingOutput) GoString() string {
	return s.String()
}

type TagResourceInput struct {
	_ struct{} `type:"structure"`

	// The resource ARN.
	//
	// ResourceARN is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by TagResourceInput's
	// String and GoString methods.
	//
	// ResourceARN is a required field
	ResourceARN *string `min:"1" type:"string" required:"true" sensitive:"true"`

	// The tag key-value pairs.
	//
	// Tags is a required field
	Tags []*Tag `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TagResourceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
	if s.ResourceARN == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
	}
	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
	}
	if s.Tags == nil {
		invalidParams.Add(request.NewErrParamRequired("Tags"))
	}
	if s.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetResourceARN sets the ResourceARN field's value.
func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
	s.ResourceARN = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
	s.Tags = v
	return s
}

type TagResourceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceOutput) GoString() string {
	return s.String()
}

// Settings that allow management of telephony permissions for an Amazon Chime
// user, such as inbound and outbound calling and text messaging.
type TelephonySettings struct {
	_ struct{} `type:"structure"`

	// Allows or denies inbound calling.
	//
	// InboundCalling is a required field
	InboundCalling *bool `type:"boolean" required:"true"`

	// Allows or denies outbound calling.
	//
	// OutboundCalling is a required field
	OutboundCalling *bool `type:"boolean" required:"true"`

	// Allows or denies SMS messaging.
	//
	// SMS is a required field
	SMS *bool `type:"boolean" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TelephonySettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TelephonySettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TelephonySettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TelephonySettings"}
	if s.InboundCalling == nil {
		invalidParams.Add(request.NewErrParamRequired("InboundCalling"))
	}
	if s.OutboundCalling == nil {
		invalidParams.Add(request.NewErrParamRequired("OutboundCalling"))
	}
	if s.SMS == nil {
		invalidParams.Add(request.NewErrParamRequired("SMS"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInboundCalling sets the InboundCalling field's value.
func (s *TelephonySettings) SetInboundCalling(v bool) *TelephonySettings {
	s.InboundCalling = &v
	return s
}

// SetOutboundCalling sets the OutboundCalling field's value.
func (s *TelephonySettings) SetOutboundCalling(v bool) *TelephonySettings {
	s.OutboundCalling = &v
	return s
}

// SetSMS sets the SMS field's value.
func (s *TelephonySettings) SetSMS(v bool) *TelephonySettings {
	s.SMS = &v
	return s
}

// Termination settings enable your SIP hosts to make outbound calls using your
// Amazon Chime Voice Connector.
type Termination struct {
	_ struct{} `type:"structure"`

	// The countries to which calls are allowed, in ISO 3166-1 alpha-2 format. Required.
	CallingRegions []*string `type:"list"`

	// The IP addresses allowed to make calls, in CIDR format. Required.
	CidrAllowedList []*string `type:"list"`

	// The limit on calls per second. Max value based on account service quota.
	// Default value of 1.
	CpsLimit *int64 `min:"1" type:"integer"`

	// The default caller ID phone number.
	//
	// DefaultPhoneNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Termination's
	// String and GoString methods.
	DefaultPhoneNumber *string `type:"string" sensitive:"true"`

	// When termination settings are disabled, outbound calls can not be made.
	Disabled *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Termination) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Termination) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Termination) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Termination"}
	if s.CpsLimit != nil && *s.CpsLimit < 1 {
		invalidParams.Add(request.NewErrParamMinValue("CpsLimit", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCallingRegions sets the CallingRegions field's value.
func (s *Termination) SetCallingRegions(v []*string) *Termination {
	s.CallingRegions = v
	return s
}

// SetCidrAllowedList sets the CidrAllowedList field's value.
func (s *Termination) SetCidrAllowedList(v []*string) *Termination {
	s.CidrAllowedList = v
	return s
}

// SetCpsLimit sets the CpsLimit field's value.
func (s *Termination) SetCpsLimit(v int64) *Termination {
	s.CpsLimit = &v
	return s
}

// SetDefaultPhoneNumber sets the DefaultPhoneNumber field's value.
func (s *Termination) SetDefaultPhoneNumber(v string) *Termination {
	s.DefaultPhoneNumber = &v
	return s
}

// SetDisabled sets the Disabled field's value.
func (s *Termination) SetDisabled(v bool) *Termination {
	s.Disabled = &v
	return s
}

// The termination health details, including the source IP address and timestamp
// of the last successful SIP OPTIONS message from your SIP infrastructure.
type TerminationHealth struct {
	_ struct{} `type:"structure"`

	// The source IP address.
	Source *string `type:"string"`

	// The timestamp, in ISO 8601 format.
	Timestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TerminationHealth) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TerminationHealth) GoString() string {
	return s.String()
}

// SetSource sets the Source field's value.
func (s *TerminationHealth) SetSource(v string) *TerminationHealth {
	s.Source = &v
	return s
}

// SetTimestamp sets the Timestamp field's value.
func (s *TerminationHealth) SetTimestamp(v time.Time) *TerminationHealth {
	s.Timestamp = &v
	return s
}

// The client exceeded its request rate limit.
type ThrottledClientException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Code_ *string `locationName:"Code" type:"string" enum:"ErrorCode"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ThrottledClientException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ThrottledClientException) GoString() string {
	return s.String()
}

func newErrorThrottledClientException(v protocol.ResponseMetadata) error {
	return &ThrottledClientException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ThrottledClientException) Code() string {
	return "ThrottledClientException"
}

// Message returns the exception's message.
func (s *ThrottledClientException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ThrottledClientException) OrigErr() error {
	return nil
}

func (s *ThrottledClientException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ThrottledClientException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ThrottledClientException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The configuration for the current transcription operation. Must contain EngineTranscribeSettings
// or EngineTranscribeMedicalSettings.
type TranscriptionConfiguration struct {
	_ struct{} `type:"structure"`

	// The transcription configuration settings passed to Amazon Transcribe Medical.
	EngineTranscribeMedicalSettings *EngineTranscribeMedicalSettings `type:"structure"`

	// The transcription configuration settings passed to Amazon Transcribe.
	EngineTranscribeSettings *EngineTranscribeSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TranscriptionConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TranscriptionConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TranscriptionConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TranscriptionConfiguration"}
	if s.EngineTranscribeMedicalSettings != nil {
		if err := s.EngineTranscribeMedicalSettings.Validate(); err != nil {
			invalidParams.AddNested("EngineTranscribeMedicalSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.EngineTranscribeSettings != nil {
		if err := s.EngineTranscribeSettings.Validate(); err != nil {
			invalidParams.AddNested("EngineTranscribeSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEngineTranscribeMedicalSettings sets the EngineTranscribeMedicalSettings field's value.
func (s *TranscriptionConfiguration) SetEngineTranscribeMedicalSettings(v *EngineTranscribeMedicalSettings) *TranscriptionConfiguration {
	s.EngineTranscribeMedicalSettings = v
	return s
}

// SetEngineTranscribeSettings sets the EngineTranscribeSettings field's value.
func (s *TranscriptionConfiguration) SetEngineTranscribeSettings(v *EngineTranscribeSettings) *TranscriptionConfiguration {
	s.EngineTranscribeSettings = v
	return s
}

// The client is not currently authorized to make the request.
type UnauthorizedClientException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Code_ *string `locationName:"Code" type:"string" enum:"ErrorCode"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UnauthorizedClientException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UnauthorizedClientException) GoString() string {
	return s.String()
}

func newErrorUnauthorizedClientException(v protocol.ResponseMetadata) error {
	return &UnauthorizedClientException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *UnauthorizedClientException) Code() string {
	return "UnauthorizedClientException"
}

// Message returns the exception's message.
func (s *UnauthorizedClientException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *UnauthorizedClientException) OrigErr() error {
	return nil
}

func (s *UnauthorizedClientException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *UnauthorizedClientException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *UnauthorizedClientException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The request was well-formed but was unable to be followed due to semantic
// errors.
type UnprocessableEntityException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Code_ *string `locationName:"Code" type:"string" enum:"ErrorCode"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UnprocessableEntityException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UnprocessableEntityException) GoString() string {
	return s.String()
}

func newErrorUnprocessableEntityException(v protocol.ResponseMetadata) error {
	return &UnprocessableEntityException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *UnprocessableEntityException) Code() string {
	return "UnprocessableEntityException"
}

// Message returns the exception's message.
func (s *UnprocessableEntityException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *UnprocessableEntityException) OrigErr() error {
	return nil
}

func (s *UnprocessableEntityException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *UnprocessableEntityException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *UnprocessableEntityException) RequestID() string {
	return s.RespMetadata.RequestID
}

type UntagAttendeeInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime SDK attendee ID.
	//
	// AttendeeId is a required field
	AttendeeId *string `location:"uri" locationName:"attendeeId" type:"string" required:"true"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`

	// The tag keys.
	//
	// TagKeys is a required field
	TagKeys []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagAttendeeInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagAttendeeInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UntagAttendeeInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UntagAttendeeInput"}
	if s.AttendeeId == nil {
		invalidParams.Add(request.NewErrParamRequired("AttendeeId"))
	}
	if s.AttendeeId != nil && len(*s.AttendeeId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AttendeeId", 1))
	}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}
	if s.TagKeys == nil {
		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
	}
	if s.TagKeys != nil && len(s.TagKeys) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAttendeeId sets the AttendeeId field's value.
func (s *UntagAttendeeInput) SetAttendeeId(v string) *UntagAttendeeInput {
	s.AttendeeId = &v
	return s
}

// SetMeetingId sets the MeetingId field's value.
func (s *UntagAttendeeInput) SetMeetingId(v string) *UntagAttendeeInput {
	s.MeetingId = &v
	return s
}

// SetTagKeys sets the TagKeys field's value.
func (s *UntagAttendeeInput) SetTagKeys(v []*string) *UntagAttendeeInput {
	s.TagKeys = v
	return s
}

type UntagAttendeeOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagAttendeeOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagAttendeeOutput) GoString() string {
	return s.String()
}

type UntagMeetingInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime SDK meeting ID.
	//
	// MeetingId is a required field
	MeetingId *string `location:"uri" locationName:"meetingId" type:"string" required:"true"`

	// The tag keys.
	//
	// TagKeys is a required field
	TagKeys []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagMeetingInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagMeetingInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UntagMeetingInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UntagMeetingInput"}
	if s.MeetingId == nil {
		invalidParams.Add(request.NewErrParamRequired("MeetingId"))
	}
	if s.MeetingId != nil && len(*s.MeetingId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MeetingId", 1))
	}
	if s.TagKeys == nil {
		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
	}
	if s.TagKeys != nil && len(s.TagKeys) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMeetingId sets the MeetingId field's value.
func (s *UntagMeetingInput) SetMeetingId(v string) *UntagMeetingInput {
	s.MeetingId = &v
	return s
}

// SetTagKeys sets the TagKeys field's value.
func (s *UntagMeetingInput) SetTagKeys(v []*string) *UntagMeetingInput {
	s.TagKeys = v
	return s
}

type UntagMeetingOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagMeetingOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagMeetingOutput) GoString() string {
	return s.String()
}

type UntagResourceInput struct {
	_ struct{} `type:"structure"`

	// The resource ARN.
	//
	// ResourceARN is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UntagResourceInput's
	// String and GoString methods.
	//
	// ResourceARN is a required field
	ResourceARN *string `min:"1" type:"string" required:"true" sensitive:"true"`

	// The tag keys.
	//
	// TagKeys is a required field
	TagKeys []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UntagResourceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
	if s.ResourceARN == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
	}
	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
	}
	if s.TagKeys == nil {
		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
	}
	if s.TagKeys != nil && len(s.TagKeys) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetResourceARN sets the ResourceARN field's value.
func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
	s.ResourceARN = &v
	return s
}

// SetTagKeys sets the TagKeys field's value.
func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
	s.TagKeys = v
	return s
}

type UntagResourceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceOutput) GoString() string {
	return s.String()
}

type UpdateAccountInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The default license applied when you add users to an Amazon Chime account.
	DefaultLicense *string `type:"string" enum:"License"`

	// The new name for the specified Amazon Chime account.
	Name *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAccountInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAccountInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateAccountInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateAccountInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *UpdateAccountInput) SetAccountId(v string) *UpdateAccountInput {
	s.AccountId = &v
	return s
}

// SetDefaultLicense sets the DefaultLicense field's value.
func (s *UpdateAccountInput) SetDefaultLicense(v string) *UpdateAccountInput {
	s.DefaultLicense = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateAccountInput) SetName(v string) *UpdateAccountInput {
	s.Name = &v
	return s
}

type UpdateAccountOutput struct {
	_ struct{} `type:"structure"`

	// The updated Amazon Chime account details.
	Account *Account `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAccountOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAccountOutput) GoString() string {
	return s.String()
}

// SetAccount sets the Account field's value.
func (s *UpdateAccountOutput) SetAccount(v *Account) *UpdateAccountOutput {
	s.Account = v
	return s
}

type UpdateAccountSettingsInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The Amazon Chime account settings to update.
	//
	// AccountSettings is a required field
	AccountSettings *AccountSettings `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAccountSettingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAccountSettingsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateAccountSettingsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateAccountSettingsInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.AccountSettings == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountSettings"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *UpdateAccountSettingsInput) SetAccountId(v string) *UpdateAccountSettingsInput {
	s.AccountId = &v
	return s
}

// SetAccountSettings sets the AccountSettings field's value.
func (s *UpdateAccountSettingsInput) SetAccountSettings(v *AccountSettings) *UpdateAccountSettingsInput {
	s.AccountSettings = v
	return s
}

type UpdateAccountSettingsOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAccountSettingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAccountSettingsOutput) GoString() string {
	return s.String()
}

type UpdateAppInstanceInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the AppInstance.
	//
	// AppInstanceArn is a required field
	AppInstanceArn *string `location:"uri" locationName:"appInstanceArn" min:"5" type:"string" required:"true"`

	// The metadata that you want to change.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateAppInstanceInput's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// The name that you want to change.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateAppInstanceInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAppInstanceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAppInstanceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateAppInstanceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateAppInstanceInput"}
	if s.AppInstanceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceArn"))
	}
	if s.AppInstanceArn != nil && len(*s.AppInstanceArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceArn", 5))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *UpdateAppInstanceInput) SetAppInstanceArn(v string) *UpdateAppInstanceInput {
	s.AppInstanceArn = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *UpdateAppInstanceInput) SetMetadata(v string) *UpdateAppInstanceInput {
	s.Metadata = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateAppInstanceInput) SetName(v string) *UpdateAppInstanceInput {
	s.Name = &v
	return s
}

type UpdateAppInstanceOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the AppInstance.
	AppInstanceArn *string `min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAppInstanceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAppInstanceOutput) GoString() string {
	return s.String()
}

// SetAppInstanceArn sets the AppInstanceArn field's value.
func (s *UpdateAppInstanceOutput) SetAppInstanceArn(v string) *UpdateAppInstanceOutput {
	s.AppInstanceArn = &v
	return s
}

type UpdateAppInstanceUserInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the AppInstanceUser.
	//
	// AppInstanceUserArn is a required field
	AppInstanceUserArn *string `location:"uri" locationName:"appInstanceUserArn" min:"5" type:"string" required:"true"`

	// The metadata of the AppInstanceUser.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateAppInstanceUserInput's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// The name of the AppInstanceUser.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateAppInstanceUserInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAppInstanceUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAppInstanceUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateAppInstanceUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateAppInstanceUserInput"}
	if s.AppInstanceUserArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AppInstanceUserArn"))
	}
	if s.AppInstanceUserArn != nil && len(*s.AppInstanceUserArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("AppInstanceUserArn", 5))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppInstanceUserArn sets the AppInstanceUserArn field's value.
func (s *UpdateAppInstanceUserInput) SetAppInstanceUserArn(v string) *UpdateAppInstanceUserInput {
	s.AppInstanceUserArn = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *UpdateAppInstanceUserInput) SetMetadata(v string) *UpdateAppInstanceUserInput {
	s.Metadata = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateAppInstanceUserInput) SetName(v string) *UpdateAppInstanceUserInput {
	s.Name = &v
	return s
}

type UpdateAppInstanceUserOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the AppInstanceUser.
	AppInstanceUserArn *string `min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAppInstanceUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAppInstanceUserOutput) GoString() string {
	return s.String()
}

// SetAppInstanceUserArn sets the AppInstanceUserArn field's value.
func (s *UpdateAppInstanceUserOutput) SetAppInstanceUserArn(v string) *UpdateAppInstanceUserOutput {
	s.AppInstanceUserArn = &v
	return s
}

type UpdateBotInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The bot ID.
	//
	// BotId is a required field
	BotId *string `location:"uri" locationName:"botId" type:"string" required:"true"`

	// When true, stops the specified bot from running in your account.
	Disabled *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateBotInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateBotInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateBotInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateBotInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.BotId == nil {
		invalidParams.Add(request.NewErrParamRequired("BotId"))
	}
	if s.BotId != nil && len(*s.BotId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BotId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *UpdateBotInput) SetAccountId(v string) *UpdateBotInput {
	s.AccountId = &v
	return s
}

// SetBotId sets the BotId field's value.
func (s *UpdateBotInput) SetBotId(v string) *UpdateBotInput {
	s.BotId = &v
	return s
}

// SetDisabled sets the Disabled field's value.
func (s *UpdateBotInput) SetDisabled(v bool) *UpdateBotInput {
	s.Disabled = &v
	return s
}

type UpdateBotOutput struct {
	_ struct{} `type:"structure"`

	// The updated bot details.
	Bot *Bot `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateBotOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateBotOutput) GoString() string {
	return s.String()
}

// SetBot sets the Bot field's value.
func (s *UpdateBotOutput) SetBot(v *Bot) *UpdateBotOutput {
	s.Bot = v
	return s
}

type UpdateChannelInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The metadata for the update request.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateChannelInput's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`

	// The mode of the update request.
	//
	// Mode is a required field
	Mode *string `type:"string" required:"true" enum:"ChannelMode"`

	// The name of the channel.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateChannelInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateChannelInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateChannelInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateChannelInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateChannelInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.Mode == nil {
		invalidParams.Add(request.NewErrParamRequired("Mode"))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *UpdateChannelInput) SetChannelArn(v string) *UpdateChannelInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *UpdateChannelInput) SetChimeBearer(v string) *UpdateChannelInput {
	s.ChimeBearer = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *UpdateChannelInput) SetMetadata(v string) *UpdateChannelInput {
	s.Metadata = &v
	return s
}

// SetMode sets the Mode field's value.
func (s *UpdateChannelInput) SetMode(v string) *UpdateChannelInput {
	s.Mode = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateChannelInput) SetName(v string) *UpdateChannelInput {
	s.Name = &v
	return s
}

type UpdateChannelMessageInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`

	// The content of the message being updated.
	//
	// Content is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateChannelMessageInput's
	// String and GoString methods.
	Content *string `type:"string" sensitive:"true"`

	// The ID string of the message being updated.
	//
	// MessageId is a required field
	MessageId *string `location:"uri" locationName:"messageId" min:"1" type:"string" required:"true"`

	// The metadata of the message being updated.
	//
	// Metadata is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateChannelMessageInput's
	// String and GoString methods.
	Metadata *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateChannelMessageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateChannelMessageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateChannelMessageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateChannelMessageInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}
	if s.MessageId == nil {
		invalidParams.Add(request.NewErrParamRequired("MessageId"))
	}
	if s.MessageId != nil && len(*s.MessageId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MessageId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *UpdateChannelMessageInput) SetChannelArn(v string) *UpdateChannelMessageInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *UpdateChannelMessageInput) SetChimeBearer(v string) *UpdateChannelMessageInput {
	s.ChimeBearer = &v
	return s
}

// SetContent sets the Content field's value.
func (s *UpdateChannelMessageInput) SetContent(v string) *UpdateChannelMessageInput {
	s.Content = &v
	return s
}

// SetMessageId sets the MessageId field's value.
func (s *UpdateChannelMessageInput) SetMessageId(v string) *UpdateChannelMessageInput {
	s.MessageId = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *UpdateChannelMessageInput) SetMetadata(v string) *UpdateChannelMessageInput {
	s.Metadata = &v
	return s
}

type UpdateChannelMessageOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	ChannelArn *string `min:"5" type:"string"`

	// The ID string of the message being updated.
	MessageId *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateChannelMessageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateChannelMessageOutput) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *UpdateChannelMessageOutput) SetChannelArn(v string) *UpdateChannelMessageOutput {
	s.ChannelArn = &v
	return s
}

// SetMessageId sets the MessageId field's value.
func (s *UpdateChannelMessageOutput) SetMessageId(v string) *UpdateChannelMessageOutput {
	s.MessageId = &v
	return s
}

type UpdateChannelOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	ChannelArn *string `min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateChannelOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateChannelOutput) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *UpdateChannelOutput) SetChannelArn(v string) *UpdateChannelOutput {
	s.ChannelArn = &v
	return s
}

type UpdateChannelReadMarkerInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the channel.
	//
	// ChannelArn is a required field
	ChannelArn *string `location:"uri" locationName:"channelArn" min:"5" type:"string" required:"true"`

	// The AppInstanceUserArn of the user that makes the API call.
	ChimeBearer *string `location:"header" locationName:"x-amz-chime-bearer" min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateChannelReadMarkerInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateChannelReadMarkerInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateChannelReadMarkerInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateChannelReadMarkerInput"}
	if s.ChannelArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelArn"))
	}
	if s.ChannelArn != nil && len(*s.ChannelArn) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelArn", 5))
	}
	if s.ChimeBearer != nil && len(*s.ChimeBearer) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("ChimeBearer", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelArn sets the ChannelArn field's value.
func (s *UpdateChannelReadMarkerInput) SetChannelArn(v string) *UpdateChannelReadMarkerInput {
	s.ChannelArn = &v
	return s
}

// SetChimeBearer sets the ChimeBearer field's value.
func (s *UpdateChannelReadMarkerInput) SetChimeBearer(v string) *UpdateChannelReadMarkerInput {
	s.ChimeBearer = &v
	return s
}

type UpdateChannelReadMarkerOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the channel.
	ChannelArn *string `min:"5" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateChannelReadMarkerOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateChannelReadMarkerOutput) GoString() string {
	return s.String()
}

// SetChannelArn sets the ChannelArn field's value.
func (s *UpdateChannelReadMarkerOutput) SetChannelArn(v string) *UpdateChannelReadMarkerOutput {
	s.ChannelArn = &v
	return s
}

type UpdateGlobalSettingsInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime Business Calling settings.
	BusinessCalling *BusinessCallingSettings `type:"structure"`

	// The Amazon Chime Voice Connector settings.
	VoiceConnector *VoiceConnectorSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGlobalSettingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGlobalSettingsInput) GoString() string {
	return s.String()
}

// SetBusinessCalling sets the BusinessCalling field's value.
func (s *UpdateGlobalSettingsInput) SetBusinessCalling(v *BusinessCallingSettings) *UpdateGlobalSettingsInput {
	s.BusinessCalling = v
	return s
}

// SetVoiceConnector sets the VoiceConnector field's value.
func (s *UpdateGlobalSettingsInput) SetVoiceConnector(v *VoiceConnectorSettings) *UpdateGlobalSettingsInput {
	s.VoiceConnector = v
	return s
}

type UpdateGlobalSettingsOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGlobalSettingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGlobalSettingsOutput) GoString() string {
	return s.String()
}

type UpdatePhoneNumberInput struct {
	_ struct{} `type:"structure"`

	// The outbound calling name associated with the phone number.
	//
	// CallingName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdatePhoneNumberInput's
	// String and GoString methods.
	CallingName *string `type:"string" sensitive:"true"`

	// The phone number ID.
	//
	// PhoneNumberId is a required field
	PhoneNumberId *string `location:"uri" locationName:"phoneNumberId" type:"string" required:"true"`

	// The product type.
	ProductType *string `type:"string" enum:"PhoneNumberProductType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePhoneNumberInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePhoneNumberInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdatePhoneNumberInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdatePhoneNumberInput"}
	if s.PhoneNumberId == nil {
		invalidParams.Add(request.NewErrParamRequired("PhoneNumberId"))
	}
	if s.PhoneNumberId != nil && len(*s.PhoneNumberId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PhoneNumberId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCallingName sets the CallingName field's value.
func (s *UpdatePhoneNumberInput) SetCallingName(v string) *UpdatePhoneNumberInput {
	s.CallingName = &v
	return s
}

// SetPhoneNumberId sets the PhoneNumberId field's value.
func (s *UpdatePhoneNumberInput) SetPhoneNumberId(v string) *UpdatePhoneNumberInput {
	s.PhoneNumberId = &v
	return s
}

// SetProductType sets the ProductType field's value.
func (s *UpdatePhoneNumberInput) SetProductType(v string) *UpdatePhoneNumberInput {
	s.ProductType = &v
	return s
}

type UpdatePhoneNumberOutput struct {
	_ struct{} `type:"structure"`

	// The updated phone number details.
	PhoneNumber *PhoneNumber `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePhoneNumberOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePhoneNumberOutput) GoString() string {
	return s.String()
}

// SetPhoneNumber sets the PhoneNumber field's value.
func (s *UpdatePhoneNumberOutput) SetPhoneNumber(v *PhoneNumber) *UpdatePhoneNumberOutput {
	s.PhoneNumber = v
	return s
}

// The phone number ID, product type, or calling name fields to update, used
// with the BatchUpdatePhoneNumber and UpdatePhoneNumber actions.
type UpdatePhoneNumberRequestItem struct {
	_ struct{} `type:"structure"`

	// The outbound calling name to update.
	//
	// CallingName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdatePhoneNumberRequestItem's
	// String and GoString methods.
	CallingName *string `type:"string" sensitive:"true"`

	// The phone number ID to update.
	//
	// PhoneNumberId is a required field
	PhoneNumberId *string `type:"string" required:"true"`

	// The product type to update.
	ProductType *string `type:"string" enum:"PhoneNumberProductType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePhoneNumberRequestItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePhoneNumberRequestItem) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdatePhoneNumberRequestItem) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdatePhoneNumberRequestItem"}
	if s.PhoneNumberId == nil {
		invalidParams.Add(request.NewErrParamRequired("PhoneNumberId"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCallingName sets the CallingName field's value.
func (s *UpdatePhoneNumberRequestItem) SetCallingName(v string) *UpdatePhoneNumberRequestItem {
	s.CallingName = &v
	return s
}

// SetPhoneNumberId sets the PhoneNumberId field's value.
func (s *UpdatePhoneNumberRequestItem) SetPhoneNumberId(v string) *UpdatePhoneNumberRequestItem {
	s.PhoneNumberId = &v
	return s
}

// SetProductType sets the ProductType field's value.
func (s *UpdatePhoneNumberRequestItem) SetProductType(v string) *UpdatePhoneNumberRequestItem {
	s.ProductType = &v
	return s
}

type UpdatePhoneNumberSettingsInput struct {
	_ struct{} `type:"structure"`

	// The default outbound calling name for the account.
	//
	// CallingName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdatePhoneNumberSettingsInput's
	// String and GoString methods.
	//
	// CallingName is a required field
	CallingName *string `type:"string" required:"true" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePhoneNumberSettingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePhoneNumberSettingsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdatePhoneNumberSettingsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdatePhoneNumberSettingsInput"}
	if s.CallingName == nil {
		invalidParams.Add(request.NewErrParamRequired("CallingName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCallingName sets the CallingName field's value.
func (s *UpdatePhoneNumberSettingsInput) SetCallingName(v string) *UpdatePhoneNumberSettingsInput {
	s.CallingName = &v
	return s
}

type UpdatePhoneNumberSettingsOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePhoneNumberSettingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePhoneNumberSettingsOutput) GoString() string {
	return s.String()
}

type UpdateProxySessionInput struct {
	_ struct{} `type:"structure"`

	// The proxy session capabilities.
	//
	// Capabilities is a required field
	Capabilities []*string `type:"list" required:"true" enum:"Capability"`

	// The number of minutes allowed for the proxy session.
	ExpiryMinutes *int64 `min:"1" type:"integer"`

	// The proxy session ID.
	//
	// ProxySessionId is a required field
	ProxySessionId *string `location:"uri" locationName:"proxySessionId" min:"1" type:"string" required:"true"`

	// The Amazon Chime voice connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateProxySessionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateProxySessionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateProxySessionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateProxySessionInput"}
	if s.Capabilities == nil {
		invalidParams.Add(request.NewErrParamRequired("Capabilities"))
	}
	if s.ExpiryMinutes != nil && *s.ExpiryMinutes < 1 {
		invalidParams.Add(request.NewErrParamMinValue("ExpiryMinutes", 1))
	}
	if s.ProxySessionId == nil {
		invalidParams.Add(request.NewErrParamRequired("ProxySessionId"))
	}
	if s.ProxySessionId != nil && len(*s.ProxySessionId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProxySessionId", 1))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCapabilities sets the Capabilities field's value.
func (s *UpdateProxySessionInput) SetCapabilities(v []*string) *UpdateProxySessionInput {
	s.Capabilities = v
	return s
}

// SetExpiryMinutes sets the ExpiryMinutes field's value.
func (s *UpdateProxySessionInput) SetExpiryMinutes(v int64) *UpdateProxySessionInput {
	s.ExpiryMinutes = &v
	return s
}

// SetProxySessionId sets the ProxySessionId field's value.
func (s *UpdateProxySessionInput) SetProxySessionId(v string) *UpdateProxySessionInput {
	s.ProxySessionId = &v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *UpdateProxySessionInput) SetVoiceConnectorId(v string) *UpdateProxySessionInput {
	s.VoiceConnectorId = &v
	return s
}

type UpdateProxySessionOutput struct {
	_ struct{} `type:"structure"`

	// The proxy session details.
	ProxySession *ProxySession `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateProxySessionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateProxySessionOutput) GoString() string {
	return s.String()
}

// SetProxySession sets the ProxySession field's value.
func (s *UpdateProxySessionOutput) SetProxySession(v *ProxySession) *UpdateProxySessionOutput {
	s.ProxySession = v
	return s
}

type UpdateRoomInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The room name.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateRoomInput's
	// String and GoString methods.
	Name *string `type:"string" sensitive:"true"`

	// The room ID.
	//
	// RoomId is a required field
	RoomId *string `location:"uri" locationName:"roomId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateRoomInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateRoomInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateRoomInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateRoomInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.RoomId == nil {
		invalidParams.Add(request.NewErrParamRequired("RoomId"))
	}
	if s.RoomId != nil && len(*s.RoomId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RoomId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *UpdateRoomInput) SetAccountId(v string) *UpdateRoomInput {
	s.AccountId = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateRoomInput) SetName(v string) *UpdateRoomInput {
	s.Name = &v
	return s
}

// SetRoomId sets the RoomId field's value.
func (s *UpdateRoomInput) SetRoomId(v string) *UpdateRoomInput {
	s.RoomId = &v
	return s
}

type UpdateRoomMembershipInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The member ID.
	//
	// MemberId is a required field
	MemberId *string `location:"uri" locationName:"memberId" type:"string" required:"true"`

	// The role of the member.
	Role *string `type:"string" enum:"RoomMembershipRole"`

	// The room ID.
	//
	// RoomId is a required field
	RoomId *string `location:"uri" locationName:"roomId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateRoomMembershipInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateRoomMembershipInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateRoomMembershipInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateRoomMembershipInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.MemberId == nil {
		invalidParams.Add(request.NewErrParamRequired("MemberId"))
	}
	if s.MemberId != nil && len(*s.MemberId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MemberId", 1))
	}
	if s.RoomId == nil {
		invalidParams.Add(request.NewErrParamRequired("RoomId"))
	}
	if s.RoomId != nil && len(*s.RoomId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RoomId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *UpdateRoomMembershipInput) SetAccountId(v string) *UpdateRoomMembershipInput {
	s.AccountId = &v
	return s
}

// SetMemberId sets the MemberId field's value.
func (s *UpdateRoomMembershipInput) SetMemberId(v string) *UpdateRoomMembershipInput {
	s.MemberId = &v
	return s
}

// SetRole sets the Role field's value.
func (s *UpdateRoomMembershipInput) SetRole(v string) *UpdateRoomMembershipInput {
	s.Role = &v
	return s
}

// SetRoomId sets the RoomId field's value.
func (s *UpdateRoomMembershipInput) SetRoomId(v string) *UpdateRoomMembershipInput {
	s.RoomId = &v
	return s
}

type UpdateRoomMembershipOutput struct {
	_ struct{} `type:"structure"`

	// The room membership details.
	RoomMembership *RoomMembership `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateRoomMembershipOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateRoomMembershipOutput) GoString() string {
	return s.String()
}

// SetRoomMembership sets the RoomMembership field's value.
func (s *UpdateRoomMembershipOutput) SetRoomMembership(v *RoomMembership) *UpdateRoomMembershipOutput {
	s.RoomMembership = v
	return s
}

type UpdateRoomOutput struct {
	_ struct{} `type:"structure"`

	// The room details.
	Room *Room `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateRoomOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateRoomOutput) GoString() string {
	return s.String()
}

// SetRoom sets the Room field's value.
func (s *UpdateRoomOutput) SetRoom(v *Room) *UpdateRoomOutput {
	s.Room = v
	return s
}

type UpdateSipMediaApplicationCallInput struct {
	_ struct{} `type:"structure"`

	// Arguments made available to the Lambda function as part of the CALL_UPDATE_REQUESTED
	// event. Can contain 0-20 key-value pairs.
	//
	// Arguments is a required field
	Arguments map[string]*string `type:"map" required:"true"`

	// The ID of the SIP media application handling the call.
	//
	// SipMediaApplicationId is a required field
	SipMediaApplicationId *string `location:"uri" locationName:"sipMediaApplicationId" type:"string" required:"true"`

	// The ID of the call transaction.
	//
	// TransactionId is a required field
	TransactionId *string `location:"uri" locationName:"transactionId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSipMediaApplicationCallInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSipMediaApplicationCallInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateSipMediaApplicationCallInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateSipMediaApplicationCallInput"}
	if s.Arguments == nil {
		invalidParams.Add(request.NewErrParamRequired("Arguments"))
	}
	if s.SipMediaApplicationId == nil {
		invalidParams.Add(request.NewErrParamRequired("SipMediaApplicationId"))
	}
	if s.SipMediaApplicationId != nil && len(*s.SipMediaApplicationId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SipMediaApplicationId", 1))
	}
	if s.TransactionId == nil {
		invalidParams.Add(request.NewErrParamRequired("TransactionId"))
	}
	if s.TransactionId != nil && len(*s.TransactionId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TransactionId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetArguments sets the Arguments field's value.
func (s *UpdateSipMediaApplicationCallInput) SetArguments(v map[string]*string) *UpdateSipMediaApplicationCallInput {
	s.Arguments = v
	return s
}

// SetSipMediaApplicationId sets the SipMediaApplicationId field's value.
func (s *UpdateSipMediaApplicationCallInput) SetSipMediaApplicationId(v string) *UpdateSipMediaApplicationCallInput {
	s.SipMediaApplicationId = &v
	return s
}

// SetTransactionId sets the TransactionId field's value.
func (s *UpdateSipMediaApplicationCallInput) SetTransactionId(v string) *UpdateSipMediaApplicationCallInput {
	s.TransactionId = &v
	return s
}

type UpdateSipMediaApplicationCallOutput struct {
	_ struct{} `type:"structure"`

	// A Call instance for a SIP media application.
	SipMediaApplicationCall *SipMediaApplicationCall `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSipMediaApplicationCallOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSipMediaApplicationCallOutput) GoString() string {
	return s.String()
}

// SetSipMediaApplicationCall sets the SipMediaApplicationCall field's value.
func (s *UpdateSipMediaApplicationCallOutput) SetSipMediaApplicationCall(v *SipMediaApplicationCall) *UpdateSipMediaApplicationCallOutput {
	s.SipMediaApplicationCall = v
	return s
}

type UpdateSipMediaApplicationInput struct {
	_ struct{} `type:"structure"`

	// The new set of endpoints for the specified SIP media application.
	Endpoints []*SipMediaApplicationEndpoint `min:"1" type:"list"`

	// The new name for the specified SIP media application.
	Name *string `min:"1" type:"string"`

	// The SIP media application ID.
	//
	// SipMediaApplicationId is a required field
	SipMediaApplicationId *string `location:"uri" locationName:"sipMediaApplicationId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSipMediaApplicationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSipMediaApplicationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateSipMediaApplicationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateSipMediaApplicationInput"}
	if s.Endpoints != nil && len(s.Endpoints) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Endpoints", 1))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.SipMediaApplicationId == nil {
		invalidParams.Add(request.NewErrParamRequired("SipMediaApplicationId"))
	}
	if s.SipMediaApplicationId != nil && len(*s.SipMediaApplicationId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SipMediaApplicationId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEndpoints sets the Endpoints field's value.
func (s *UpdateSipMediaApplicationInput) SetEndpoints(v []*SipMediaApplicationEndpoint) *UpdateSipMediaApplicationInput {
	s.Endpoints = v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateSipMediaApplicationInput) SetName(v string) *UpdateSipMediaApplicationInput {
	s.Name = &v
	return s
}

// SetSipMediaApplicationId sets the SipMediaApplicationId field's value.
func (s *UpdateSipMediaApplicationInput) SetSipMediaApplicationId(v string) *UpdateSipMediaApplicationInput {
	s.SipMediaApplicationId = &v
	return s
}

type UpdateSipMediaApplicationOutput struct {
	_ struct{} `type:"structure"`

	// The updated SIP media application details.
	SipMediaApplication *SipMediaApplication `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSipMediaApplicationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSipMediaApplicationOutput) GoString() string {
	return s.String()
}

// SetSipMediaApplication sets the SipMediaApplication field's value.
func (s *UpdateSipMediaApplicationOutput) SetSipMediaApplication(v *SipMediaApplication) *UpdateSipMediaApplicationOutput {
	s.SipMediaApplication = v
	return s
}

type UpdateSipRuleInput struct {
	_ struct{} `type:"structure"`

	// The new value specified to indicate whether the rule is disabled.
	Disabled *bool `type:"boolean"`

	// The new name for the specified SIP rule.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The SIP rule ID.
	//
	// SipRuleId is a required field
	SipRuleId *string `location:"uri" locationName:"sipRuleId" type:"string" required:"true"`

	// The new value of the list of target applications.
	TargetApplications []*SipRuleTargetApplication `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSipRuleInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSipRuleInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateSipRuleInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateSipRuleInput"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.SipRuleId == nil {
		invalidParams.Add(request.NewErrParamRequired("SipRuleId"))
	}
	if s.SipRuleId != nil && len(*s.SipRuleId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SipRuleId", 1))
	}
	if s.TargetApplications != nil && len(s.TargetApplications) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TargetApplications", 1))
	}
	if s.TargetApplications != nil {
		for i, v := range s.TargetApplications {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetApplications", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDisabled sets the Disabled field's value.
func (s *UpdateSipRuleInput) SetDisabled(v bool) *UpdateSipRuleInput {
	s.Disabled = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateSipRuleInput) SetName(v string) *UpdateSipRuleInput {
	s.Name = &v
	return s
}

// SetSipRuleId sets the SipRuleId field's value.
func (s *UpdateSipRuleInput) SetSipRuleId(v string) *UpdateSipRuleInput {
	s.SipRuleId = &v
	return s
}

// SetTargetApplications sets the TargetApplications field's value.
func (s *UpdateSipRuleInput) SetTargetApplications(v []*SipRuleTargetApplication) *UpdateSipRuleInput {
	s.TargetApplications = v
	return s
}

type UpdateSipRuleOutput struct {
	_ struct{} `type:"structure"`

	// Updated SIP rule details.
	SipRule *SipRule `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSipRuleOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSipRuleOutput) GoString() string {
	return s.String()
}

// SetSipRule sets the SipRule field's value.
func (s *UpdateSipRuleOutput) SetSipRule(v *SipRule) *UpdateSipRuleOutput {
	s.SipRule = v
	return s
}

type UpdateUserInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The Alexa for Business metadata.
	AlexaForBusinessMetadata *AlexaForBusinessMetadata `type:"structure"`

	// The user license type to update. This must be a supported license type for
	// the Amazon Chime account that the user belongs to.
	LicenseType *string `type:"string" enum:"License"`

	// The user ID.
	//
	// UserId is a required field
	UserId *string `location:"uri" locationName:"userId" type:"string" required:"true"`

	// The user type.
	UserType *string `type:"string" enum:"UserType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateUserInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateUserInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.UserId == nil {
		invalidParams.Add(request.NewErrParamRequired("UserId"))
	}
	if s.UserId != nil && len(*s.UserId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UserId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *UpdateUserInput) SetAccountId(v string) *UpdateUserInput {
	s.AccountId = &v
	return s
}

// SetAlexaForBusinessMetadata sets the AlexaForBusinessMetadata field's value.
func (s *UpdateUserInput) SetAlexaForBusinessMetadata(v *AlexaForBusinessMetadata) *UpdateUserInput {
	s.AlexaForBusinessMetadata = v
	return s
}

// SetLicenseType sets the LicenseType field's value.
func (s *UpdateUserInput) SetLicenseType(v string) *UpdateUserInput {
	s.LicenseType = &v
	return s
}

// SetUserId sets the UserId field's value.
func (s *UpdateUserInput) SetUserId(v string) *UpdateUserInput {
	s.UserId = &v
	return s
}

// SetUserType sets the UserType field's value.
func (s *UpdateUserInput) SetUserType(v string) *UpdateUserInput {
	s.UserType = &v
	return s
}

type UpdateUserOutput struct {
	_ struct{} `type:"structure"`

	// The updated user details.
	User *User `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserOutput) GoString() string {
	return s.String()
}

// SetUser sets the User field's value.
func (s *UpdateUserOutput) SetUser(v *User) *UpdateUserOutput {
	s.User = v
	return s
}

// The user ID and user fields to update, used with the BatchUpdateUser action.
type UpdateUserRequestItem struct {
	_ struct{} `type:"structure"`

	// The Alexa for Business metadata.
	AlexaForBusinessMetadata *AlexaForBusinessMetadata `type:"structure"`

	// The user license type.
	LicenseType *string `type:"string" enum:"License"`

	// The user ID.
	//
	// UserId is a required field
	UserId *string `type:"string" required:"true"`

	// The user type.
	UserType *string `type:"string" enum:"UserType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserRequestItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserRequestItem) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateUserRequestItem) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateUserRequestItem"}
	if s.UserId == nil {
		invalidParams.Add(request.NewErrParamRequired("UserId"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlexaForBusinessMetadata sets the AlexaForBusinessMetadata field's value.
func (s *UpdateUserRequestItem) SetAlexaForBusinessMetadata(v *AlexaForBusinessMetadata) *UpdateUserRequestItem {
	s.AlexaForBusinessMetadata = v
	return s
}

// SetLicenseType sets the LicenseType field's value.
func (s *UpdateUserRequestItem) SetLicenseType(v string) *UpdateUserRequestItem {
	s.LicenseType = &v
	return s
}

// SetUserId sets the UserId field's value.
func (s *UpdateUserRequestItem) SetUserId(v string) *UpdateUserRequestItem {
	s.UserId = &v
	return s
}

// SetUserType sets the UserType field's value.
func (s *UpdateUserRequestItem) SetUserType(v string) *UpdateUserRequestItem {
	s.UserType = &v
	return s
}

type UpdateUserSettingsInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	//
	// AccountId is a required field
	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`

	// The user ID.
	//
	// UserId is a required field
	UserId *string `location:"uri" locationName:"userId" type:"string" required:"true"`

	// The user settings to update.
	//
	// UserSettings is a required field
	UserSettings *UserSettings `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserSettingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserSettingsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateUserSettingsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateUserSettingsInput"}
	if s.AccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AccountId"))
	}
	if s.AccountId != nil && len(*s.AccountId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
	}
	if s.UserId == nil {
		invalidParams.Add(request.NewErrParamRequired("UserId"))
	}
	if s.UserId != nil && len(*s.UserId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UserId", 1))
	}
	if s.UserSettings == nil {
		invalidParams.Add(request.NewErrParamRequired("UserSettings"))
	}
	if s.UserSettings != nil {
		if err := s.UserSettings.Validate(); err != nil {
			invalidParams.AddNested("UserSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccountId sets the AccountId field's value.
func (s *UpdateUserSettingsInput) SetAccountId(v string) *UpdateUserSettingsInput {
	s.AccountId = &v
	return s
}

// SetUserId sets the UserId field's value.
func (s *UpdateUserSettingsInput) SetUserId(v string) *UpdateUserSettingsInput {
	s.UserId = &v
	return s
}

// SetUserSettings sets the UserSettings field's value.
func (s *UpdateUserSettingsInput) SetUserSettings(v *UserSettings) *UpdateUserSettingsInput {
	s.UserSettings = v
	return s
}

type UpdateUserSettingsOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserSettingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserSettingsOutput) GoString() string {
	return s.String()
}

type UpdateVoiceConnectorGroupInput struct {
	_ struct{} `type:"structure"`

	// The name of the Amazon Chime Voice Connector group.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The Amazon Chime Voice Connector group ID.
	//
	// VoiceConnectorGroupId is a required field
	VoiceConnectorGroupId *string `location:"uri" locationName:"voiceConnectorGroupId" type:"string" required:"true"`

	// The VoiceConnectorItems to associate with the group.
	//
	// VoiceConnectorItems is a required field
	VoiceConnectorItems []*VoiceConnectorItem `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateVoiceConnectorGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateVoiceConnectorGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateVoiceConnectorGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateVoiceConnectorGroupInput"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.VoiceConnectorGroupId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorGroupId"))
	}
	if s.VoiceConnectorGroupId != nil && len(*s.VoiceConnectorGroupId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorGroupId", 1))
	}
	if s.VoiceConnectorItems == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorItems"))
	}
	if s.VoiceConnectorItems != nil {
		for i, v := range s.VoiceConnectorItems {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "VoiceConnectorItems", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *UpdateVoiceConnectorGroupInput) SetName(v string) *UpdateVoiceConnectorGroupInput {
	s.Name = &v
	return s
}

// SetVoiceConnectorGroupId sets the VoiceConnectorGroupId field's value.
func (s *UpdateVoiceConnectorGroupInput) SetVoiceConnectorGroupId(v string) *UpdateVoiceConnectorGroupInput {
	s.VoiceConnectorGroupId = &v
	return s
}

// SetVoiceConnectorItems sets the VoiceConnectorItems field's value.
func (s *UpdateVoiceConnectorGroupInput) SetVoiceConnectorItems(v []*VoiceConnectorItem) *UpdateVoiceConnectorGroupInput {
	s.VoiceConnectorItems = v
	return s
}

type UpdateVoiceConnectorGroupOutput struct {
	_ struct{} `type:"structure"`

	// The updated Amazon Chime Voice Connector group details.
	VoiceConnectorGroup *VoiceConnectorGroup `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateVoiceConnectorGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateVoiceConnectorGroupOutput) GoString() string {
	return s.String()
}

// SetVoiceConnectorGroup sets the VoiceConnectorGroup field's value.
func (s *UpdateVoiceConnectorGroupOutput) SetVoiceConnectorGroup(v *VoiceConnectorGroup) *UpdateVoiceConnectorGroupOutput {
	s.VoiceConnectorGroup = v
	return s
}

type UpdateVoiceConnectorInput struct {
	_ struct{} `type:"structure"`

	// The name of the Amazon Chime Voice Connector.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// When enabled, requires encryption for the Amazon Chime Voice Connector.
	//
	// RequireEncryption is a required field
	RequireEncryption *bool `type:"boolean" required:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `location:"uri" locationName:"voiceConnectorId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateVoiceConnectorInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateVoiceConnectorInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateVoiceConnectorInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateVoiceConnectorInput"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.RequireEncryption == nil {
		invalidParams.Add(request.NewErrParamRequired("RequireEncryption"))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}
	if s.VoiceConnectorId != nil && len(*s.VoiceConnectorId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VoiceConnectorId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *UpdateVoiceConnectorInput) SetName(v string) *UpdateVoiceConnectorInput {
	s.Name = &v
	return s
}

// SetRequireEncryption sets the RequireEncryption field's value.
func (s *UpdateVoiceConnectorInput) SetRequireEncryption(v bool) *UpdateVoiceConnectorInput {
	s.RequireEncryption = &v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *UpdateVoiceConnectorInput) SetVoiceConnectorId(v string) *UpdateVoiceConnectorInput {
	s.VoiceConnectorId = &v
	return s
}

type UpdateVoiceConnectorOutput struct {
	_ struct{} `type:"structure"`

	// The updated Amazon Chime Voice Connector details.
	VoiceConnector *VoiceConnector `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateVoiceConnectorOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateVoiceConnectorOutput) GoString() string {
	return s.String()
}

// SetVoiceConnector sets the VoiceConnector field's value.
func (s *UpdateVoiceConnectorOutput) SetVoiceConnector(v *VoiceConnector) *UpdateVoiceConnectorOutput {
	s.VoiceConnector = v
	return s
}

// The user on the Amazon Chime account.
type User struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime account ID.
	AccountId *string `type:"string"`

	// The Alexa for Business metadata.
	AlexaForBusinessMetadata *AlexaForBusinessMetadata `type:"structure"`

	// The display name of the user.
	//
	// DisplayName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by User's
	// String and GoString methods.
	DisplayName *string `type:"string" sensitive:"true"`

	// Date and time when the user is invited to the Amazon Chime account, in ISO
	// 8601 format.
	InvitedOn *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The license type for the user.
	LicenseType *string `type:"string" enum:"License"`

	// The user's personal meeting PIN.
	PersonalPIN *string `type:"string"`

	// The primary email address of the user.
	//
	// PrimaryEmail is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by User's
	// String and GoString methods.
	PrimaryEmail *string `type:"string" sensitive:"true"`

	// The primary phone number associated with the user.
	//
	// PrimaryProvisionedNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by User's
	// String and GoString methods.
	PrimaryProvisionedNumber *string `type:"string" sensitive:"true"`

	// Date and time when the user is registered, in ISO 8601 format.
	RegisteredOn *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The user ID.
	//
	// UserId is a required field
	UserId *string `type:"string" required:"true"`

	// The user invite status.
	UserInvitationStatus *string `type:"string" enum:"InviteStatus"`

	// The user registration status.
	UserRegistrationStatus *string `type:"string" enum:"RegistrationStatus"`

	// The user type.
	UserType *string `type:"string" enum:"UserType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s User) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s User) GoString() string {
	return s.String()
}

// SetAccountId sets the AccountId field's value.
func (s *User) SetAccountId(v string) *User {
	s.AccountId = &v
	return s
}

// SetAlexaForBusinessMetadata sets the AlexaForBusinessMetadata field's value.
func (s *User) SetAlexaForBusinessMetadata(v *AlexaForBusinessMetadata) *User {
	s.AlexaForBusinessMetadata = v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *User) SetDisplayName(v string) *User {
	s.DisplayName = &v
	return s
}

// SetInvitedOn sets the InvitedOn field's value.
func (s *User) SetInvitedOn(v time.Time) *User {
	s.InvitedOn = &v
	return s
}

// SetLicenseType sets the LicenseType field's value.
func (s *User) SetLicenseType(v string) *User {
	s.LicenseType = &v
	return s
}

// SetPersonalPIN sets the PersonalPIN field's value.
func (s *User) SetPersonalPIN(v string) *User {
	s.PersonalPIN = &v
	return s
}

// SetPrimaryEmail sets the PrimaryEmail field's value.
func (s *User) SetPrimaryEmail(v string) *User {
	s.PrimaryEmail = &v
	return s
}

// SetPrimaryProvisionedNumber sets the PrimaryProvisionedNumber field's value.
func (s *User) SetPrimaryProvisionedNumber(v string) *User {
	s.PrimaryProvisionedNumber = &v
	return s
}

// SetRegisteredOn sets the RegisteredOn field's value.
func (s *User) SetRegisteredOn(v time.Time) *User {
	s.RegisteredOn = &v
	return s
}

// SetUserId sets the UserId field's value.
func (s *User) SetUserId(v string) *User {
	s.UserId = &v
	return s
}

// SetUserInvitationStatus sets the UserInvitationStatus field's value.
func (s *User) SetUserInvitationStatus(v string) *User {
	s.UserInvitationStatus = &v
	return s
}

// SetUserRegistrationStatus sets the UserRegistrationStatus field's value.
func (s *User) SetUserRegistrationStatus(v string) *User {
	s.UserRegistrationStatus = &v
	return s
}

// SetUserType sets the UserType field's value.
func (s *User) SetUserType(v string) *User {
	s.UserType = &v
	return s
}

// The list of errors returned when errors are encountered during the BatchSuspendUser,
// BatchUnsuspendUser, or BatchUpdateUser actions. This includes user IDs, error
// codes, and error messages.
type UserError struct {
	_ struct{} `type:"structure"`

	// The error code.
	ErrorCode *string `type:"string" enum:"ErrorCode"`

	// The error message.
	ErrorMessage *string `type:"string"`

	// The user ID for which the action failed.
	UserId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserError) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserError) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *UserError) SetErrorCode(v string) *UserError {
	s.ErrorCode = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *UserError) SetErrorMessage(v string) *UserError {
	s.ErrorMessage = &v
	return s
}

// SetUserId sets the UserId field's value.
func (s *UserError) SetUserId(v string) *UserError {
	s.UserId = &v
	return s
}

// Settings associated with an Amazon Chime user, including inbound and outbound
// calling and text messaging.
type UserSettings struct {
	_ struct{} `type:"structure"`

	// The telephony settings associated with the user.
	//
	// Telephony is a required field
	Telephony *TelephonySettings `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UserSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UserSettings"}
	if s.Telephony == nil {
		invalidParams.Add(request.NewErrParamRequired("Telephony"))
	}
	if s.Telephony != nil {
		if err := s.Telephony.Validate(); err != nil {
			invalidParams.AddNested("Telephony", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTelephony sets the Telephony field's value.
func (s *UserSettings) SetTelephony(v *TelephonySettings) *UserSettings {
	s.Telephony = v
	return s
}

type ValidateE911AddressInput struct {
	_ struct{} `type:"structure"`

	// The AWS account ID.
	//
	// AwsAccountId is a required field
	AwsAccountId *string `type:"string" required:"true"`

	// The address city, such as Portland.
	//
	// City is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ValidateE911AddressInput's
	// String and GoString methods.
	//
	// City is a required field
	City *string `type:"string" required:"true" sensitive:"true"`

	// The address country, such as US.
	//
	// Country is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ValidateE911AddressInput's
	// String and GoString methods.
	//
	// Country is a required field
	Country *string `type:"string" required:"true" sensitive:"true"`

	// The address postal code, such as 04352.
	//
	// PostalCode is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ValidateE911AddressInput's
	// String and GoString methods.
	//
	// PostalCode is a required field
	PostalCode *string `type:"string" required:"true" sensitive:"true"`

	// The address state, such as ME.
	//
	// State is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ValidateE911AddressInput's
	// String and GoString methods.
	//
	// State is a required field
	State *string `type:"string" required:"true" sensitive:"true"`

	// The address street information, such as 8th Avenue.
	//
	// StreetInfo is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ValidateE911AddressInput's
	// String and GoString methods.
	//
	// StreetInfo is a required field
	StreetInfo *string `type:"string" required:"true" sensitive:"true"`

	// The address street number, such as 200 or 2121.
	//
	// StreetNumber is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ValidateE911AddressInput's
	// String and GoString methods.
	//
	// StreetNumber is a required field
	StreetNumber *string `type:"string" required:"true" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ValidateE911AddressInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ValidateE911AddressInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ValidateE911AddressInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ValidateE911AddressInput"}
	if s.AwsAccountId == nil {
		invalidParams.Add(request.NewErrParamRequired("AwsAccountId"))
	}
	if s.City == nil {
		invalidParams.Add(request.NewErrParamRequired("City"))
	}
	if s.Country == nil {
		invalidParams.Add(request.NewErrParamRequired("Country"))
	}
	if s.PostalCode == nil {
		invalidParams.Add(request.NewErrParamRequired("PostalCode"))
	}
	if s.State == nil {
		invalidParams.Add(request.NewErrParamRequired("State"))
	}
	if s.StreetInfo == nil {
		invalidParams.Add(request.NewErrParamRequired("StreetInfo"))
	}
	if s.StreetNumber == nil {
		invalidParams.Add(request.NewErrParamRequired("StreetNumber"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *ValidateE911AddressInput) SetAwsAccountId(v string) *ValidateE911AddressInput {
	s.AwsAccountId = &v
	return s
}

// SetCity sets the City field's value.
func (s *ValidateE911AddressInput) SetCity(v string) *ValidateE911AddressInput {
	s.City = &v
	return s
}

// SetCountry sets the Country field's value.
func (s *ValidateE911AddressInput) SetCountry(v string) *ValidateE911AddressInput {
	s.Country = &v
	return s
}

// SetPostalCode sets the PostalCode field's value.
func (s *ValidateE911AddressInput) SetPostalCode(v string) *ValidateE911AddressInput {
	s.PostalCode = &v
	return s
}

// SetState sets the State field's value.
func (s *ValidateE911AddressInput) SetState(v string) *ValidateE911AddressInput {
	s.State = &v
	return s
}

// SetStreetInfo sets the StreetInfo field's value.
func (s *ValidateE911AddressInput) SetStreetInfo(v string) *ValidateE911AddressInput {
	s.StreetInfo = &v
	return s
}

// SetStreetNumber sets the StreetNumber field's value.
func (s *ValidateE911AddressInput) SetStreetNumber(v string) *ValidateE911AddressInput {
	s.StreetNumber = &v
	return s
}

type ValidateE911AddressOutput struct {
	_ struct{} `type:"structure"`

	// The validated address.
	Address *Address `type:"structure"`

	// The ID that represents the address.
	AddressExternalId *string `type:"string"`

	// The list of address suggestions.
	CandidateAddressList []*CandidateAddress `type:"list"`

	// Number indicating the result of address validation. 0 means the address was
	// perfect as is and successfully validated. 1 means the address was corrected.
	// 2 means the address sent was not close enough and was not validated.
	ValidationResult *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ValidateE911AddressOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ValidateE911AddressOutput) GoString() string {
	return s.String()
}

// SetAddress sets the Address field's value.
func (s *ValidateE911AddressOutput) SetAddress(v *Address) *ValidateE911AddressOutput {
	s.Address = v
	return s
}

// SetAddressExternalId sets the AddressExternalId field's value.
func (s *ValidateE911AddressOutput) SetAddressExternalId(v string) *ValidateE911AddressOutput {
	s.AddressExternalId = &v
	return s
}

// SetCandidateAddressList sets the CandidateAddressList field's value.
func (s *ValidateE911AddressOutput) SetCandidateAddressList(v []*CandidateAddress) *ValidateE911AddressOutput {
	s.CandidateAddressList = v
	return s
}

// SetValidationResult sets the ValidationResult field's value.
func (s *ValidateE911AddressOutput) SetValidationResult(v int64) *ValidateE911AddressOutput {
	s.ValidationResult = &v
	return s
}

// The video artifact configuration object.
type VideoArtifactsConfiguration struct {
	_ struct{} `type:"structure"`

	// The MUX type of the video artifact configuration object.
	MuxType *string `type:"string" enum:"VideoMuxType"`

	// Indicates whether the video artifact is enabled or disabled.
	//
	// State is a required field
	State *string `type:"string" required:"true" enum:"ArtifactsState"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VideoArtifactsConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VideoArtifactsConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *VideoArtifactsConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "VideoArtifactsConfiguration"}
	if s.State == nil {
		invalidParams.Add(request.NewErrParamRequired("State"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMuxType sets the MuxType field's value.
func (s *VideoArtifactsConfiguration) SetMuxType(v string) *VideoArtifactsConfiguration {
	s.MuxType = &v
	return s
}

// SetState sets the State field's value.
func (s *VideoArtifactsConfiguration) SetState(v string) *VideoArtifactsConfiguration {
	s.State = &v
	return s
}

// The Amazon Chime Voice Connector configuration, including outbound host name
// and encryption settings.
type VoiceConnector struct {
	_ struct{} `type:"structure"`

	// The AWS Region in which the Amazon Chime Voice Connector is created. Default:
	// us-east-1.
	AwsRegion *string `type:"string" enum:"VoiceConnectorAwsRegion"`

	// The Amazon Chime Voice Connector creation timestamp, in ISO 8601 format.
	CreatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The name of the Amazon Chime Voice Connector.
	Name *string `min:"1" type:"string"`

	// The outbound host name for the Amazon Chime Voice Connector.
	OutboundHostName *string `type:"string"`

	// Designates whether encryption is required for the Amazon Chime Voice Connector.
	RequireEncryption *bool `type:"boolean"`

	// The updated Amazon Chime Voice Connector timestamp, in ISO 8601 format.
	UpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The ARN of the specified Amazon Chime Voice Connector.
	VoiceConnectorArn *string `type:"string"`

	// The Amazon Chime Voice Connector ID.
	VoiceConnectorId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VoiceConnector) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VoiceConnector) GoString() string {
	return s.String()
}

// SetAwsRegion sets the AwsRegion field's value.
func (s *VoiceConnector) SetAwsRegion(v string) *VoiceConnector {
	s.AwsRegion = &v
	return s
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *VoiceConnector) SetCreatedTimestamp(v time.Time) *VoiceConnector {
	s.CreatedTimestamp = &v
	return s
}

// SetName sets the Name field's value.
func (s *VoiceConnector) SetName(v string) *VoiceConnector {
	s.Name = &v
	return s
}

// SetOutboundHostName sets the OutboundHostName field's value.
func (s *VoiceConnector) SetOutboundHostName(v string) *VoiceConnector {
	s.OutboundHostName = &v
	return s
}

// SetRequireEncryption sets the RequireEncryption field's value.
func (s *VoiceConnector) SetRequireEncryption(v bool) *VoiceConnector {
	s.RequireEncryption = &v
	return s
}

// SetUpdatedTimestamp sets the UpdatedTimestamp field's value.
func (s *VoiceConnector) SetUpdatedTimestamp(v time.Time) *VoiceConnector {
	s.UpdatedTimestamp = &v
	return s
}

// SetVoiceConnectorArn sets the VoiceConnectorArn field's value.
func (s *VoiceConnector) SetVoiceConnectorArn(v string) *VoiceConnector {
	s.VoiceConnectorArn = &v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *VoiceConnector) SetVoiceConnectorId(v string) *VoiceConnector {
	s.VoiceConnectorId = &v
	return s
}

// The Amazon Chime Voice Connector group configuration, including associated
// Amazon Chime Voice Connectors. You can include Amazon Chime Voice Connectors
// from different AWS Regions in your group. This creates a fault tolerant mechanism
// for fallback in case of availability events.
type VoiceConnectorGroup struct {
	_ struct{} `type:"structure"`

	// The Amazon Chime Voice Connector group creation time stamp, in ISO 8601 format.
	CreatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The name of the Amazon Chime Voice Connector group.
	Name *string `min:"1" type:"string"`

	// The updated Amazon Chime Voice Connector group time stamp, in ISO 8601 format.
	UpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`

	// The ARN of the specified Amazon Chime Voice Connector group.
	VoiceConnectorGroupArn *string `type:"string"`

	// The Amazon Chime Voice Connector group ID.
	VoiceConnectorGroupId *string `type:"string"`

	// The Amazon Chime Voice Connectors to which to route inbound calls.
	VoiceConnectorItems []*VoiceConnectorItem `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VoiceConnectorGroup) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VoiceConnectorGroup) GoString() string {
	return s.String()
}

// SetCreatedTimestamp sets the CreatedTimestamp field's value.
func (s *VoiceConnectorGroup) SetCreatedTimestamp(v time.Time) *VoiceConnectorGroup {
	s.CreatedTimestamp = &v
	return s
}

// SetName sets the Name field's value.
func (s *VoiceConnectorGroup) SetName(v string) *VoiceConnectorGroup {
	s.Name = &v
	return s
}

// SetUpdatedTimestamp sets the UpdatedTimestamp field's value.
func (s *VoiceConnectorGroup) SetUpdatedTimestamp(v time.Time) *VoiceConnectorGroup {
	s.UpdatedTimestamp = &v
	return s
}

// SetVoiceConnectorGroupArn sets the VoiceConnectorGroupArn field's value.
func (s *VoiceConnectorGroup) SetVoiceConnectorGroupArn(v string) *VoiceConnectorGroup {
	s.VoiceConnectorGroupArn = &v
	return s
}

// SetVoiceConnectorGroupId sets the VoiceConnectorGroupId field's value.
func (s *VoiceConnectorGroup) SetVoiceConnectorGroupId(v string) *VoiceConnectorGroup {
	s.VoiceConnectorGroupId = &v
	return s
}

// SetVoiceConnectorItems sets the VoiceConnectorItems field's value.
func (s *VoiceConnectorGroup) SetVoiceConnectorItems(v []*VoiceConnectorItem) *VoiceConnectorGroup {
	s.VoiceConnectorItems = v
	return s
}

// For Amazon Chime Voice Connector groups, the Amazon Chime Voice Connectors
// to which to route inbound calls. Includes priority configuration settings.
// Limit: 3 VoiceConnectorItems per Amazon Chime Voice Connector group.
type VoiceConnectorItem struct {
	_ struct{} `type:"structure"`

	// The priority associated with the Amazon Chime Voice Connector, with 1 being
	// the highest priority. Higher priority Amazon Chime Voice Connectors are attempted
	// first.
	//
	// Priority is a required field
	Priority *int64 `min:"1" type:"integer" required:"true"`

	// The Amazon Chime Voice Connector ID.
	//
	// VoiceConnectorId is a required field
	VoiceConnectorId *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VoiceConnectorItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VoiceConnectorItem) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *VoiceConnectorItem) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "VoiceConnectorItem"}
	if s.Priority == nil {
		invalidParams.Add(request.NewErrParamRequired("Priority"))
	}
	if s.Priority != nil && *s.Priority < 1 {
		invalidParams.Add(request.NewErrParamMinValue("Priority", 1))
	}
	if s.VoiceConnectorId == nil {
		invalidParams.Add(request.NewErrParamRequired("VoiceConnectorId"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPriority sets the Priority field's value.
func (s *VoiceConnectorItem) SetPriority(v int64) *VoiceConnectorItem {
	s.Priority = &v
	return s
}

// SetVoiceConnectorId sets the VoiceConnectorId field's value.
func (s *VoiceConnectorItem) SetVoiceConnectorId(v string) *VoiceConnectorItem {
	s.VoiceConnectorId = &v
	return s
}

// The Amazon Chime Voice Connector settings. Includes any Amazon S3 buckets
// designated for storing call detail records.
type VoiceConnectorSettings struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 bucket designated for call detail record storage.
	CdrBucket *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VoiceConnectorSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VoiceConnectorSettings) GoString() string {
	return s.String()
}

// SetCdrBucket sets the CdrBucket field's value.
func (s *VoiceConnectorSettings) SetCdrBucket(v string) *VoiceConnectorSettings {
	s.CdrBucket = &v
	return s
}

const (
	// AccountStatusSuspended is a AccountStatus enum value
	AccountStatusSuspended = "Suspended"

	// AccountStatusActive is a AccountStatus enum value
	AccountStatusActive = "Active"
)

// AccountStatus_Values returns all elements of the AccountStatus enum
func AccountStatus_Values() []string {
	return []string{
		AccountStatusSuspended,
		AccountStatusActive,
	}
}

const (
	// AccountTypeTeam is a AccountType enum value
	AccountTypeTeam = "Team"

	// AccountTypeEnterpriseDirectory is a AccountType enum value
	AccountTypeEnterpriseDirectory = "EnterpriseDirectory"

	// AccountTypeEnterpriseLwa is a AccountType enum value
	AccountTypeEnterpriseLwa = "EnterpriseLWA"

	// AccountTypeEnterpriseOidc is a AccountType enum value
	AccountTypeEnterpriseOidc = "EnterpriseOIDC"
)

// AccountType_Values returns all elements of the AccountType enum
func AccountType_Values() []string {
	return []string{
		AccountTypeTeam,
		AccountTypeEnterpriseDirectory,
		AccountTypeEnterpriseLwa,
		AccountTypeEnterpriseOidc,
	}
}

const (
	// AppInstanceDataTypeChannel is a AppInstanceDataType enum value
	AppInstanceDataTypeChannel = "Channel"

	// AppInstanceDataTypeChannelMessage is a AppInstanceDataType enum value
	AppInstanceDataTypeChannelMessage = "ChannelMessage"
)

// AppInstanceDataType_Values returns all elements of the AppInstanceDataType enum
func AppInstanceDataType_Values() []string {
	return []string{
		AppInstanceDataTypeChannel,
		AppInstanceDataTypeChannelMessage,
	}
}

const (
	// ArtifactsStateEnabled is a ArtifactsState enum value
	ArtifactsStateEnabled = "Enabled"

	// ArtifactsStateDisabled is a ArtifactsState enum value
	ArtifactsStateDisabled = "Disabled"
)

// ArtifactsState_Values returns all elements of the ArtifactsState enum
func ArtifactsState_Values() []string {
	return []string{
		ArtifactsStateEnabled,
		ArtifactsStateDisabled,
	}
}

const (
	// AudioMuxTypeAudioOnly is a AudioMuxType enum value
	AudioMuxTypeAudioOnly = "AudioOnly"

	// AudioMuxTypeAudioWithActiveSpeakerVideo is a AudioMuxType enum value
	AudioMuxTypeAudioWithActiveSpeakerVideo = "AudioWithActiveSpeakerVideo"
)

// AudioMuxType_Values returns all elements of the AudioMuxType enum
func AudioMuxType_Values() []string {
	return []string{
		AudioMuxTypeAudioOnly,
		AudioMuxTypeAudioWithActiveSpeakerVideo,
	}
}

const (
	// BotTypeChatBot is a BotType enum value
	BotTypeChatBot = "ChatBot"
)

// BotType_Values returns all elements of the BotType enum
func BotType_Values() []string {
	return []string{
		BotTypeChatBot,
	}
}

const (
	// CallingNameStatusUnassigned is a CallingNameStatus enum value
	CallingNameStatusUnassigned = "Unassigned"

	// CallingNameStatusUpdateInProgress is a CallingNameStatus enum value
	CallingNameStatusUpdateInProgress = "UpdateInProgress"

	// CallingNameStatusUpdateSucceeded is a CallingNameStatus enum value
	CallingNameStatusUpdateSucceeded = "UpdateSucceeded"

	// CallingNameStatusUpdateFailed is a CallingNameStatus enum value
	CallingNameStatusUpdateFailed = "UpdateFailed"
)

// CallingNameStatus_Values returns all elements of the CallingNameStatus enum
func CallingNameStatus_Values() []string {
	return []string{
		CallingNameStatusUnassigned,
		CallingNameStatusUpdateInProgress,
		CallingNameStatusUpdateSucceeded,
		CallingNameStatusUpdateFailed,
	}
}

const (
	// CapabilityVoice is a Capability enum value
	CapabilityVoice = "Voice"

	// CapabilitySms is a Capability enum value
	CapabilitySms = "SMS"
)

// Capability_Values returns all elements of the Capability enum
func Capability_Values() []string {
	return []string{
		CapabilityVoice,
		CapabilitySms,
	}
}

const (
	// ChannelMembershipTypeDefault is a ChannelMembershipType enum value
	ChannelMembershipTypeDefault = "DEFAULT"

	// ChannelMembershipTypeHidden is a ChannelMembershipType enum value
	ChannelMembershipTypeHidden = "HIDDEN"
)

// ChannelMembershipType_Values returns all elements of the ChannelMembershipType enum
func ChannelMembershipType_Values() []string {
	return []string{
		ChannelMembershipTypeDefault,
		ChannelMembershipTypeHidden,
	}
}

const (
	// ChannelMessagePersistenceTypePersistent is a ChannelMessagePersistenceType enum value
	ChannelMessagePersistenceTypePersistent = "PERSISTENT"

	// ChannelMessagePersistenceTypeNonPersistent is a ChannelMessagePersistenceType enum value
	ChannelMessagePersistenceTypeNonPersistent = "NON_PERSISTENT"
)

// ChannelMessagePersistenceType_Values returns all elements of the ChannelMessagePersistenceType enum
func ChannelMessagePersistenceType_Values() []string {
	return []string{
		ChannelMessagePersistenceTypePersistent,
		ChannelMessagePersistenceTypeNonPersistent,
	}
}

const (
	// ChannelMessageTypeStandard is a ChannelMessageType enum value
	ChannelMessageTypeStandard = "STANDARD"

	// ChannelMessageTypeControl is a ChannelMessageType enum value
	ChannelMessageTypeControl = "CONTROL"
)

// ChannelMessageType_Values returns all elements of the ChannelMessageType enum
func ChannelMessageType_Values() []string {
	return []string{
		ChannelMessageTypeStandard,
		ChannelMessageTypeControl,
	}
}

const (
	// ChannelModeUnrestricted is a ChannelMode enum value
	ChannelModeUnrestricted = "UNRESTRICTED"

	// ChannelModeRestricted is a ChannelMode enum value
	ChannelModeRestricted = "RESTRICTED"
)

// ChannelMode_Values returns all elements of the ChannelMode enum
func ChannelMode_Values() []string {
	return []string{
		ChannelModeUnrestricted,
		ChannelModeRestricted,
	}
}

const (
	// ChannelPrivacyPublic is a ChannelPrivacy enum value
	ChannelPrivacyPublic = "PUBLIC"

	// ChannelPrivacyPrivate is a ChannelPrivacy enum value
	ChannelPrivacyPrivate = "PRIVATE"
)

// ChannelPrivacy_Values returns all elements of the ChannelPrivacy enum
func ChannelPrivacy_Values() []string {
	return []string{
		ChannelPrivacyPublic,
		ChannelPrivacyPrivate,
	}
}

const (
	// ContentMuxTypeContentOnly is a ContentMuxType enum value
	ContentMuxTypeContentOnly = "ContentOnly"
)

// ContentMuxType_Values returns all elements of the ContentMuxType enum
func ContentMuxType_Values() []string {
	return []string{
		ContentMuxTypeContentOnly,
	}
}

const (
	// EmailStatusNotSent is a EmailStatus enum value
	EmailStatusNotSent = "NotSent"

	// EmailStatusSent is a EmailStatus enum value
	EmailStatusSent = "Sent"

	// EmailStatusFailed is a EmailStatus enum value
	EmailStatusFailed = "Failed"
)

// EmailStatus_Values returns all elements of the EmailStatus enum
func EmailStatus_Values() []string {
	return []string{
		EmailStatusNotSent,
		EmailStatusSent,
		EmailStatusFailed,
	}
}

const (
	// ErrorCodeBadRequest is a ErrorCode enum value
	ErrorCodeBadRequest = "BadRequest"

	// ErrorCodeConflict is a ErrorCode enum value
	ErrorCodeConflict = "Conflict"

	// ErrorCodeForbidden is a ErrorCode enum value
	ErrorCodeForbidden = "Forbidden"

	// ErrorCodeNotFound is a ErrorCode enum value
	ErrorCodeNotFound = "NotFound"

	// ErrorCodePreconditionFailed is a ErrorCode enum value
	ErrorCodePreconditionFailed = "PreconditionFailed"

	// ErrorCodeResourceLimitExceeded is a ErrorCode enum value
	ErrorCodeResourceLimitExceeded = "ResourceLimitExceeded"

	// ErrorCodeServiceFailure is a ErrorCode enum value
	ErrorCodeServiceFailure = "ServiceFailure"

	// ErrorCodeAccessDenied is a ErrorCode enum value
	ErrorCodeAccessDenied = "AccessDenied"

	// ErrorCodeServiceUnavailable is a ErrorCode enum value
	ErrorCodeServiceUnavailable = "ServiceUnavailable"

	// ErrorCodeThrottled is a ErrorCode enum value
	ErrorCodeThrottled = "Throttled"

	// ErrorCodeThrottling is a ErrorCode enum value
	ErrorCodeThrottling = "Throttling"

	// ErrorCodeUnauthorized is a ErrorCode enum value
	ErrorCodeUnauthorized = "Unauthorized"

	// ErrorCodeUnprocessable is a ErrorCode enum value
	ErrorCodeUnprocessable = "Unprocessable"

	// ErrorCodeVoiceConnectorGroupAssociationsExist is a ErrorCode enum value
	ErrorCodeVoiceConnectorGroupAssociationsExist = "VoiceConnectorGroupAssociationsExist"

	// ErrorCodePhoneNumberAssociationsExist is a ErrorCode enum value
	ErrorCodePhoneNumberAssociationsExist = "PhoneNumberAssociationsExist"
)

// ErrorCode_Values returns all elements of the ErrorCode enum
func ErrorCode_Values() []string {
	return []string{
		ErrorCodeBadRequest,
		ErrorCodeConflict,
		ErrorCodeForbidden,
		ErrorCodeNotFound,
		ErrorCodePreconditionFailed,
		ErrorCodeResourceLimitExceeded,
		ErrorCodeServiceFailure,
		ErrorCodeAccessDenied,
		ErrorCodeServiceUnavailable,
		ErrorCodeThrottled,
		ErrorCodeThrottling,
		ErrorCodeUnauthorized,
		ErrorCodeUnprocessable,
		ErrorCodeVoiceConnectorGroupAssociationsExist,
		ErrorCodePhoneNumberAssociationsExist,
	}
}

const (
	// GeoMatchLevelCountry is a GeoMatchLevel enum value
	GeoMatchLevelCountry = "Country"

	// GeoMatchLevelAreaCode is a GeoMatchLevel enum value
	GeoMatchLevelAreaCode = "AreaCode"
)

// GeoMatchLevel_Values returns all elements of the GeoMatchLevel enum
func GeoMatchLevel_Values() []string {
	return []string{
		GeoMatchLevelCountry,
		GeoMatchLevelAreaCode,
	}
}

const (
	// InviteStatusPending is a InviteStatus enum value
	InviteStatusPending = "Pending"

	// InviteStatusAccepted is a InviteStatus enum value
	InviteStatusAccepted = "Accepted"

	// InviteStatusFailed is a InviteStatus enum value
	InviteStatusFailed = "Failed"
)

// InviteStatus_Values returns all elements of the InviteStatus enum
func InviteStatus_Values() []string {
	return []string{
		InviteStatusPending,
		InviteStatusAccepted,
		InviteStatusFailed,
	}
}

const (
	// LicenseBasic is a License enum value
	LicenseBasic = "Basic"

	// LicensePlus is a License enum value
	LicensePlus = "Plus"

	// LicensePro is a License enum value
	LicensePro = "Pro"

	// LicenseProTrial is a License enum value
	LicenseProTrial = "ProTrial"
)

// License_Values returns all elements of the License enum
func License_Values() []string {
	return []string{
		LicenseBasic,
		LicensePlus,
		LicensePro,
		LicenseProTrial,
	}
}

const (
	// MediaPipelineSinkTypeS3bucket is a MediaPipelineSinkType enum value
	MediaPipelineSinkTypeS3bucket = "S3Bucket"
)

// MediaPipelineSinkType_Values returns all elements of the MediaPipelineSinkType enum
func MediaPipelineSinkType_Values() []string {
	return []string{
		MediaPipelineSinkTypeS3bucket,
	}
}

const (
	// MediaPipelineSourceTypeChimeSdkMeeting is a MediaPipelineSourceType enum value
	MediaPipelineSourceTypeChimeSdkMeeting = "ChimeSdkMeeting"
)

// MediaPipelineSourceType_Values returns all elements of the MediaPipelineSourceType enum
func MediaPipelineSourceType_Values() []string {
	return []string{
		MediaPipelineSourceTypeChimeSdkMeeting,
	}
}

const (
	// MediaPipelineStatusInitializing is a MediaPipelineStatus enum value
	MediaPipelineStatusInitializing = "Initializing"

	// MediaPipelineStatusInProgress is a MediaPipelineStatus enum value
	MediaPipelineStatusInProgress = "InProgress"

	// MediaPipelineStatusFailed is a MediaPipelineStatus enum value
	MediaPipelineStatusFailed = "Failed"

	// MediaPipelineStatusStopping is a MediaPipelineStatus enum value
	MediaPipelineStatusStopping = "Stopping"

	// MediaPipelineStatusStopped is a MediaPipelineStatus enum value
	MediaPipelineStatusStopped = "Stopped"
)

// MediaPipelineStatus_Values returns all elements of the MediaPipelineStatus enum
func MediaPipelineStatus_Values() []string {
	return []string{
		MediaPipelineStatusInitializing,
		MediaPipelineStatusInProgress,
		MediaPipelineStatusFailed,
		MediaPipelineStatusStopping,
		MediaPipelineStatusStopped,
	}
}

const (
	// MemberTypeUser is a MemberType enum value
	MemberTypeUser = "User"

	// MemberTypeBot is a MemberType enum value
	MemberTypeBot = "Bot"

	// MemberTypeWebhook is a MemberType enum value
	MemberTypeWebhook = "Webhook"
)

// MemberType_Values returns all elements of the MemberType enum
func MemberType_Values() []string {
	return []string{
		MemberTypeUser,
		MemberTypeBot,
		MemberTypeWebhook,
	}
}

const (
	// NotificationTargetEventBridge is a NotificationTarget enum value
	NotificationTargetEventBridge = "EventBridge"

	// NotificationTargetSns is a NotificationTarget enum value
	NotificationTargetSns = "SNS"

	// NotificationTargetSqs is a NotificationTarget enum value
	NotificationTargetSqs = "SQS"
)

// NotificationTarget_Values returns all elements of the NotificationTarget enum
func NotificationTarget_Values() []string {
	return []string{
		NotificationTargetEventBridge,
		NotificationTargetSns,
		NotificationTargetSqs,
	}
}

const (
	// NumberSelectionBehaviorPreferSticky is a NumberSelectionBehavior enum value
	NumberSelectionBehaviorPreferSticky = "PreferSticky"

	// NumberSelectionBehaviorAvoidSticky is a NumberSelectionBehavior enum value
	NumberSelectionBehaviorAvoidSticky = "AvoidSticky"
)

// NumberSelectionBehavior_Values returns all elements of the NumberSelectionBehavior enum
func NumberSelectionBehavior_Values() []string {
	return []string{
		NumberSelectionBehaviorPreferSticky,
		NumberSelectionBehaviorAvoidSticky,
	}
}

const (
	// OrderedPhoneNumberStatusProcessing is a OrderedPhoneNumberStatus enum value
	OrderedPhoneNumberStatusProcessing = "Processing"

	// OrderedPhoneNumberStatusAcquired is a OrderedPhoneNumberStatus enum value
	OrderedPhoneNumberStatusAcquired = "Acquired"

	// OrderedPhoneNumberStatusFailed is a OrderedPhoneNumberStatus enum value
	OrderedPhoneNumberStatusFailed = "Failed"
)

// OrderedPhoneNumberStatus_Values returns all elements of the OrderedPhoneNumberStatus enum
func OrderedPhoneNumberStatus_Values() []string {
	return []string{
		OrderedPhoneNumberStatusProcessing,
		OrderedPhoneNumberStatusAcquired,
		OrderedPhoneNumberStatusFailed,
	}
}

const (
	// OriginationRouteProtocolTcp is a OriginationRouteProtocol enum value
	OriginationRouteProtocolTcp = "TCP"

	// OriginationRouteProtocolUdp is a OriginationRouteProtocol enum value
	OriginationRouteProtocolUdp = "UDP"
)

// OriginationRouteProtocol_Values returns all elements of the OriginationRouteProtocol enum
func OriginationRouteProtocol_Values() []string {
	return []string{
		OriginationRouteProtocolTcp,
		OriginationRouteProtocolUdp,
	}
}

const (
	// PhoneNumberAssociationNameAccountId is a PhoneNumberAssociationName enum value
	PhoneNumberAssociationNameAccountId = "AccountId"

	// PhoneNumberAssociationNameUserId is a PhoneNumberAssociationName enum value
	PhoneNumberAssociationNameUserId = "UserId"

	// PhoneNumberAssociationNameVoiceConnectorId is a PhoneNumberAssociationName enum value
	PhoneNumberAssociationNameVoiceConnectorId = "VoiceConnectorId"

	// PhoneNumberAssociationNameVoiceConnectorGroupId is a PhoneNumberAssociationName enum value
	PhoneNumberAssociationNameVoiceConnectorGroupId = "VoiceConnectorGroupId"

	// PhoneNumberAssociationNameSipRuleId is a PhoneNumberAssociationName enum value
	PhoneNumberAssociationNameSipRuleId = "SipRuleId"
)

// PhoneNumberAssociationName_Values returns all elements of the PhoneNumberAssociationName enum
func PhoneNumberAssociationName_Values() []string {
	return []string{
		PhoneNumberAssociationNameAccountId,
		PhoneNumberAssociationNameUserId,
		PhoneNumberAssociationNameVoiceConnectorId,
		PhoneNumberAssociationNameVoiceConnectorGroupId,
		PhoneNumberAssociationNameSipRuleId,
	}
}

const (
	// PhoneNumberOrderStatusProcessing is a PhoneNumberOrderStatus enum value
	PhoneNumberOrderStatusProcessing = "Processing"

	// PhoneNumberOrderStatusSuccessful is a PhoneNumberOrderStatus enum value
	PhoneNumberOrderStatusSuccessful = "Successful"

	// PhoneNumberOrderStatusFailed is a PhoneNumberOrderStatus enum value
	PhoneNumberOrderStatusFailed = "Failed"

	// PhoneNumberOrderStatusPartial is a PhoneNumberOrderStatus enum value
	PhoneNumberOrderStatusPartial = "Partial"
)

// PhoneNumberOrderStatus_Values returns all elements of the PhoneNumberOrderStatus enum
func PhoneNumberOrderStatus_Values() []string {
	return []string{
		PhoneNumberOrderStatusProcessing,
		PhoneNumberOrderStatusSuccessful,
		PhoneNumberOrderStatusFailed,
		PhoneNumberOrderStatusPartial,
	}
}

const (
	// PhoneNumberProductTypeBusinessCalling is a PhoneNumberProductType enum value
	PhoneNumberProductTypeBusinessCalling = "BusinessCalling"

	// PhoneNumberProductTypeVoiceConnector is a PhoneNumberProductType enum value
	PhoneNumberProductTypeVoiceConnector = "VoiceConnector"

	// PhoneNumberProductTypeSipMediaApplicationDialIn is a PhoneNumberProductType enum value
	PhoneNumberProductTypeSipMediaApplicationDialIn = "SipMediaApplicationDialIn"
)

// PhoneNumberProductType_Values returns all elements of the PhoneNumberProductType enum
func PhoneNumberProductType_Values() []string {
	return []string{
		PhoneNumberProductTypeBusinessCalling,
		PhoneNumberProductTypeVoiceConnector,
		PhoneNumberProductTypeSipMediaApplicationDialIn,
	}
}

const (
	// PhoneNumberStatusAcquireInProgress is a PhoneNumberStatus enum value
	PhoneNumberStatusAcquireInProgress = "AcquireInProgress"

	// PhoneNumberStatusAcquireFailed is a PhoneNumberStatus enum value
	PhoneNumberStatusAcquireFailed = "AcquireFailed"

	// PhoneNumberStatusUnassigned is a PhoneNumberStatus enum value
	PhoneNumberStatusUnassigned = "Unassigned"

	// PhoneNumberStatusAssigned is a PhoneNumberStatus enum value
	PhoneNumberStatusAssigned = "Assigned"

	// PhoneNumberStatusReleaseInProgress is a PhoneNumberStatus enum value
	PhoneNumberStatusReleaseInProgress = "ReleaseInProgress"

	// PhoneNumberStatusDeleteInProgress is a PhoneNumberStatus enum value
	PhoneNumberStatusDeleteInProgress = "DeleteInProgress"

	// PhoneNumberStatusReleaseFailed is a PhoneNumberStatus enum value
	PhoneNumberStatusReleaseFailed = "ReleaseFailed"

	// PhoneNumberStatusDeleteFailed is a PhoneNumberStatus enum value
	PhoneNumberStatusDeleteFailed = "DeleteFailed"
)

// PhoneNumberStatus_Values returns all elements of the PhoneNumberStatus enum
func PhoneNumberStatus_Values() []string {
	return []string{
		PhoneNumberStatusAcquireInProgress,
		PhoneNumberStatusAcquireFailed,
		PhoneNumberStatusUnassigned,
		PhoneNumberStatusAssigned,
		PhoneNumberStatusReleaseInProgress,
		PhoneNumberStatusDeleteInProgress,
		PhoneNumberStatusReleaseFailed,
		PhoneNumberStatusDeleteFailed,
	}
}

const (
	// PhoneNumberTypeLocal is a PhoneNumberType enum value
	PhoneNumberTypeLocal = "Local"

	// PhoneNumberTypeTollFree is a PhoneNumberType enum value
	PhoneNumberTypeTollFree = "TollFree"
)

// PhoneNumberType_Values returns all elements of the PhoneNumberType enum
func PhoneNumberType_Values() []string {
	return []string{
		PhoneNumberTypeLocal,
		PhoneNumberTypeTollFree,
	}
}

const (
	// ProxySessionStatusOpen is a ProxySessionStatus enum value
	ProxySessionStatusOpen = "Open"

	// ProxySessionStatusInProgress is a ProxySessionStatus enum value
	ProxySessionStatusInProgress = "InProgress"

	// ProxySessionStatusClosed is a ProxySessionStatus enum value
	ProxySessionStatusClosed = "Closed"
)

// ProxySessionStatus_Values returns all elements of the ProxySessionStatus enum
func ProxySessionStatus_Values() []string {
	return []string{
		ProxySessionStatusOpen,
		ProxySessionStatusInProgress,
		ProxySessionStatusClosed,
	}
}

const (
	// RegistrationStatusUnregistered is a RegistrationStatus enum value
	RegistrationStatusUnregistered = "Unregistered"

	// RegistrationStatusRegistered is a RegistrationStatus enum value
	RegistrationStatusRegistered = "Registered"

	// RegistrationStatusSuspended is a RegistrationStatus enum value
	RegistrationStatusSuspended = "Suspended"
)

// RegistrationStatus_Values returns all elements of the RegistrationStatus enum
func RegistrationStatus_Values() []string {
	return []string{
		RegistrationStatusUnregistered,
		RegistrationStatusRegistered,
		RegistrationStatusSuspended,
	}
}

const (
	// RoomMembershipRoleAdministrator is a RoomMembershipRole enum value
	RoomMembershipRoleAdministrator = "Administrator"

	// RoomMembershipRoleMember is a RoomMembershipRole enum value
	RoomMembershipRoleMember = "Member"
)

// RoomMembershipRole_Values returns all elements of the RoomMembershipRole enum
func RoomMembershipRole_Values() []string {
	return []string{
		RoomMembershipRoleAdministrator,
		RoomMembershipRoleMember,
	}
}

const (
	// SipRuleTriggerTypeToPhoneNumber is a SipRuleTriggerType enum value
	SipRuleTriggerTypeToPhoneNumber = "ToPhoneNumber"

	// SipRuleTriggerTypeRequestUriHostname is a SipRuleTriggerType enum value
	SipRuleTriggerTypeRequestUriHostname = "RequestUriHostname"
)

// SipRuleTriggerType_Values returns all elements of the SipRuleTriggerType enum
func SipRuleTriggerType_Values() []string {
	return []string{
		SipRuleTriggerTypeToPhoneNumber,
		SipRuleTriggerTypeRequestUriHostname,
	}
}

const (
	// SortOrderAscending is a SortOrder enum value
	SortOrderAscending = "ASCENDING"

	// SortOrderDescending is a SortOrder enum value
	SortOrderDescending = "DESCENDING"
)

// SortOrder_Values returns all elements of the SortOrder enum
func SortOrder_Values() []string {
	return []string{
		SortOrderAscending,
		SortOrderDescending,
	}
}

const (
	// TranscribeContentIdentificationTypePii is a TranscribeContentIdentificationType enum value
	TranscribeContentIdentificationTypePii = "PII"
)

// TranscribeContentIdentificationType_Values returns all elements of the TranscribeContentIdentificationType enum
func TranscribeContentIdentificationType_Values() []string {
	return []string{
		TranscribeContentIdentificationTypePii,
	}
}

const (
	// TranscribeContentRedactionTypePii is a TranscribeContentRedactionType enum value
	TranscribeContentRedactionTypePii = "PII"
)

// TranscribeContentRedactionType_Values returns all elements of the TranscribeContentRedactionType enum
func TranscribeContentRedactionType_Values() []string {
	return []string{
		TranscribeContentRedactionTypePii,
	}
}

const (
	// TranscribeLanguageCodeEnUs is a TranscribeLanguageCode enum value
	TranscribeLanguageCodeEnUs = "en-US"

	// TranscribeLanguageCodeEnGb is a TranscribeLanguageCode enum value
	TranscribeLanguageCodeEnGb = "en-GB"

	// TranscribeLanguageCodeEsUs is a TranscribeLanguageCode enum value
	TranscribeLanguageCodeEsUs = "es-US"

	// TranscribeLanguageCodeFrCa is a TranscribeLanguageCode enum value
	TranscribeLanguageCodeFrCa = "fr-CA"

	// TranscribeLanguageCodeFrFr is a TranscribeLanguageCode enum value
	TranscribeLanguageCodeFrFr = "fr-FR"

	// TranscribeLanguageCodeEnAu is a TranscribeLanguageCode enum value
	TranscribeLanguageCodeEnAu = "en-AU"

	// TranscribeLanguageCodeItIt is a TranscribeLanguageCode enum value
	TranscribeLanguageCodeItIt = "it-IT"

	// TranscribeLanguageCodeDeDe is a TranscribeLanguageCode enum value
	TranscribeLanguageCodeDeDe = "de-DE"

	// TranscribeLanguageCodePtBr is a TranscribeLanguageCode enum value
	TranscribeLanguageCodePtBr = "pt-BR"

	// TranscribeLanguageCodeJaJp is a TranscribeLanguageCode enum value
	TranscribeLanguageCodeJaJp = "ja-JP"

	// TranscribeLanguageCodeKoKr is a TranscribeLanguageCode enum value
	TranscribeLanguageCodeKoKr = "ko-KR"

	// TranscribeLanguageCodeZhCn is a TranscribeLanguageCode enum value
	TranscribeLanguageCodeZhCn = "zh-CN"

	// TranscribeLanguageCodeThTh is a TranscribeLanguageCode enum value
	TranscribeLanguageCodeThTh = "th-TH"

	// TranscribeLanguageCodeHiIn is a TranscribeLanguageCode enum value
	TranscribeLanguageCodeHiIn = "hi-IN"
)

// TranscribeLanguageCode_Values returns all elements of the TranscribeLanguageCode enum
func TranscribeLanguageCode_Values() []string {
	return []string{
		TranscribeLanguageCodeEnUs,
		TranscribeLanguageCodeEnGb,
		TranscribeLanguageCodeEsUs,
		TranscribeLanguageCodeFrCa,
		TranscribeLanguageCodeFrFr,
		TranscribeLanguageCodeEnAu,
		TranscribeLanguageCodeItIt,
		TranscribeLanguageCodeDeDe,
		TranscribeLanguageCodePtBr,
		TranscribeLanguageCodeJaJp,
		TranscribeLanguageCodeKoKr,
		TranscribeLanguageCodeZhCn,
		TranscribeLanguageCodeThTh,
		TranscribeLanguageCodeHiIn,
	}
}

const (
	// TranscribeMedicalContentIdentificationTypePhi is a TranscribeMedicalContentIdentificationType enum value
	TranscribeMedicalContentIdentificationTypePhi = "PHI"
)

// TranscribeMedicalContentIdentificationType_Values returns all elements of the TranscribeMedicalContentIdentificationType enum
func TranscribeMedicalContentIdentificationType_Values() []string {
	return []string{
		TranscribeMedicalContentIdentificationTypePhi,
	}
}

const (
	// TranscribeMedicalLanguageCodeEnUs is a TranscribeMedicalLanguageCode enum value
	TranscribeMedicalLanguageCodeEnUs = "en-US"
)

// TranscribeMedicalLanguageCode_Values returns all elements of the TranscribeMedicalLanguageCode enum
func TranscribeMedicalLanguageCode_Values() []string {
	return []string{
		TranscribeMedicalLanguageCodeEnUs,
	}
}

const (
	// TranscribeMedicalRegionUsEast1 is a TranscribeMedicalRegion enum value
	TranscribeMedicalRegionUsEast1 = "us-east-1"

	// TranscribeMedicalRegionUsEast2 is a TranscribeMedicalRegion enum value
	TranscribeMedicalRegionUsEast2 = "us-east-2"

	// TranscribeMedicalRegionUsWest2 is a TranscribeMedicalRegion enum value
	TranscribeMedicalRegionUsWest2 = "us-west-2"

	// TranscribeMedicalRegionApSoutheast2 is a TranscribeMedicalRegion enum value
	TranscribeMedicalRegionApSoutheast2 = "ap-southeast-2"

	// TranscribeMedicalRegionCaCentral1 is a TranscribeMedicalRegion enum value
	TranscribeMedicalRegionCaCentral1 = "ca-central-1"

	// TranscribeMedicalRegionEuWest1 is a TranscribeMedicalRegion enum value
	TranscribeMedicalRegionEuWest1 = "eu-west-1"

	// TranscribeMedicalRegionAuto is a TranscribeMedicalRegion enum value
	TranscribeMedicalRegionAuto = "auto"
)

// TranscribeMedicalRegion_Values returns all elements of the TranscribeMedicalRegion enum
func TranscribeMedicalRegion_Values() []string {
	return []string{
		TranscribeMedicalRegionUsEast1,
		TranscribeMedicalRegionUsEast2,
		TranscribeMedicalRegionUsWest2,
		TranscribeMedicalRegionApSoutheast2,
		TranscribeMedicalRegionCaCentral1,
		TranscribeMedicalRegionEuWest1,
		TranscribeMedicalRegionAuto,
	}
}

const (
	// TranscribeMedicalSpecialtyPrimarycare is a TranscribeMedicalSpecialty enum value
	TranscribeMedicalSpecialtyPrimarycare = "PRIMARYCARE"

	// TranscribeMedicalSpecialtyCardiology is a TranscribeMedicalSpecialty enum value
	TranscribeMedicalSpecialtyCardiology = "CARDIOLOGY"

	// TranscribeMedicalSpecialtyNeurology is a TranscribeMedicalSpecialty enum value
	TranscribeMedicalSpecialtyNeurology = "NEUROLOGY"

	// TranscribeMedicalSpecialtyOncology is a TranscribeMedicalSpecialty enum value
	TranscribeMedicalSpecialtyOncology = "ONCOLOGY"

	// TranscribeMedicalSpecialtyRadiology is a TranscribeMedicalSpecialty enum value
	TranscribeMedicalSpecialtyRadiology = "RADIOLOGY"

	// TranscribeMedicalSpecialtyUrology is a TranscribeMedicalSpecialty enum value
	TranscribeMedicalSpecialtyUrology = "UROLOGY"
)

// TranscribeMedicalSpecialty_Values returns all elements of the TranscribeMedicalSpecialty enum
func TranscribeMedicalSpecialty_Values() []string {
	return []string{
		TranscribeMedicalSpecialtyPrimarycare,
		TranscribeMedicalSpecialtyCardiology,
		TranscribeMedicalSpecialtyNeurology,
		TranscribeMedicalSpecialtyOncology,
		TranscribeMedicalSpecialtyRadiology,
		TranscribeMedicalSpecialtyUrology,
	}
}

const (
	// TranscribeMedicalTypeConversation is a TranscribeMedicalType enum value
	TranscribeMedicalTypeConversation = "CONVERSATION"

	// TranscribeMedicalTypeDictation is a TranscribeMedicalType enum value
	TranscribeMedicalTypeDictation = "DICTATION"
)

// TranscribeMedicalType_Values returns all elements of the TranscribeMedicalType enum
func TranscribeMedicalType_Values() []string {
	return []string{
		TranscribeMedicalTypeConversation,
		TranscribeMedicalTypeDictation,
	}
}

const (
	// TranscribePartialResultsStabilityLow is a TranscribePartialResultsStability enum value
	TranscribePartialResultsStabilityLow = "low"

	// TranscribePartialResultsStabilityMedium is a TranscribePartialResultsStability enum value
	TranscribePartialResultsStabilityMedium = "medium"

	// TranscribePartialResultsStabilityHigh is a TranscribePartialResultsStability enum value
	TranscribePartialResultsStabilityHigh = "high"
)

// TranscribePartialResultsStability_Values returns all elements of the TranscribePartialResultsStability enum
func TranscribePartialResultsStability_Values() []string {
	return []string{
		TranscribePartialResultsStabilityLow,
		TranscribePartialResultsStabilityMedium,
		TranscribePartialResultsStabilityHigh,
	}
}

const (
	// TranscribeRegionUsEast2 is a TranscribeRegion enum value
	TranscribeRegionUsEast2 = "us-east-2"

	// TranscribeRegionUsEast1 is a TranscribeRegion enum value
	TranscribeRegionUsEast1 = "us-east-1"

	// TranscribeRegionUsWest2 is a TranscribeRegion enum value
	TranscribeRegionUsWest2 = "us-west-2"

	// TranscribeRegionApNortheast2 is a TranscribeRegion enum value
	TranscribeRegionApNortheast2 = "ap-northeast-2"

	// TranscribeRegionApSoutheast2 is a TranscribeRegion enum value
	TranscribeRegionApSoutheast2 = "ap-southeast-2"

	// TranscribeRegionApNortheast1 is a TranscribeRegion enum value
	TranscribeRegionApNortheast1 = "ap-northeast-1"

	// TranscribeRegionCaCentral1 is a TranscribeRegion enum value
	TranscribeRegionCaCentral1 = "ca-central-1"

	// TranscribeRegionEuCentral1 is a TranscribeRegion enum value
	TranscribeRegionEuCentral1 = "eu-central-1"

	// TranscribeRegionEuWest1 is a TranscribeRegion enum value
	TranscribeRegionEuWest1 = "eu-west-1"

	// TranscribeRegionEuWest2 is a TranscribeRegion enum value
	TranscribeRegionEuWest2 = "eu-west-2"

	// TranscribeRegionSaEast1 is a TranscribeRegion enum value
	TranscribeRegionSaEast1 = "sa-east-1"

	// TranscribeRegionAuto is a TranscribeRegion enum value
	TranscribeRegionAuto = "auto"
)

// TranscribeRegion_Values returns all elements of the TranscribeRegion enum
func TranscribeRegion_Values() []string {
	return []string{
		TranscribeRegionUsEast2,
		TranscribeRegionUsEast1,
		TranscribeRegionUsWest2,
		TranscribeRegionApNortheast2,
		TranscribeRegionApSoutheast2,
		TranscribeRegionApNortheast1,
		TranscribeRegionCaCentral1,
		TranscribeRegionEuCentral1,
		TranscribeRegionEuWest1,
		TranscribeRegionEuWest2,
		TranscribeRegionSaEast1,
		TranscribeRegionAuto,
	}
}

const (
	// TranscribeVocabularyFilterMethodRemove is a TranscribeVocabularyFilterMethod enum value
	TranscribeVocabularyFilterMethodRemove = "remove"

	// TranscribeVocabularyFilterMethodMask is a TranscribeVocabularyFilterMethod enum value
	TranscribeVocabularyFilterMethodMask = "mask"

	// TranscribeVocabularyFilterMethodTag is a TranscribeVocabularyFilterMethod enum value
	TranscribeVocabularyFilterMethodTag = "tag"
)

// TranscribeVocabularyFilterMethod_Values returns all elements of the TranscribeVocabularyFilterMethod enum
func TranscribeVocabularyFilterMethod_Values() []string {
	return []string{
		TranscribeVocabularyFilterMethodRemove,
		TranscribeVocabularyFilterMethodMask,
		TranscribeVocabularyFilterMethodTag,
	}
}

const (
	// UserTypePrivateUser is a UserType enum value
	UserTypePrivateUser = "PrivateUser"

	// UserTypeSharedDevice is a UserType enum value
	UserTypeSharedDevice = "SharedDevice"
)

// UserType_Values returns all elements of the UserType enum
func UserType_Values() []string {
	return []string{
		UserTypePrivateUser,
		UserTypeSharedDevice,
	}
}

const (
	// VideoMuxTypeVideoOnly is a VideoMuxType enum value
	VideoMuxTypeVideoOnly = "VideoOnly"
)

// VideoMuxType_Values returns all elements of the VideoMuxType enum
func VideoMuxType_Values() []string {
	return []string{
		VideoMuxTypeVideoOnly,
	}
}

const (
	// VoiceConnectorAwsRegionUsEast1 is a VoiceConnectorAwsRegion enum value
	VoiceConnectorAwsRegionUsEast1 = "us-east-1"

	// VoiceConnectorAwsRegionUsWest2 is a VoiceConnectorAwsRegion enum value
	VoiceConnectorAwsRegionUsWest2 = "us-west-2"
)

// VoiceConnectorAwsRegion_Values returns all elements of the VoiceConnectorAwsRegion enum
func VoiceConnectorAwsRegion_Values() []string {
	return []string{
		VoiceConnectorAwsRegionUsEast1,
		VoiceConnectorAwsRegionUsWest2,
	}
}
© 2026 GrazzMean
Beegazpacho


Let’s  Start  Your  Online  Journey  with  Beegazpacho 

Welcome to Beegazpacho,
where creativity meets strategy,
and innovation drives success.


Contact
Now


OUR CLIENTS

WhatsApp-Image-2021-12-06.png
Untitled-design-11.png
niaf-logo.png
20220406-163308-scaled.jpg
karchi-logo.png
20220405-171252.png
20220405-171309.png
20220321-161603.png
20220321-161611.png
20220321-161628.png
20220321-161244.png
20220321-161256.png
20220321-161450.png
20220321-161205.png
20220226-170222.png
20220321-161051.png
20211202-170852.png
Untitled-design-9
pidilite-png-logo-colour
logo-black-e1706125740216-qisosldqhzgcaerhdt6n4t3m4s50jr0iik48z0h5vk
Fraikin-Dayim-logo-1
hpcl-logo-2-1
services

Transforming Ideas into
Success

.01
Digital Marketing

We drive growth through data-driven strategies and cutting-edge techniques.

Learn More

.02
SEO

Improve your online visibility and rank higher on search engines with our expert SEO services.

Learn More

.03
Website Designing

We design websites that are not only visually stunning but also user-centric, ensuring seamless navigation and enhanced user experience.

Learn More

.04
App Development

Our apps are crafted to be intuitive, engaging, and functional, providing your users with an exceptional mobile experience.

Learn More

.05
Social Media Ads

Target the right audience with precision and creativity to maximize engagement and conversions.

Learn More

.06
Google Ads

Maximize ROI with precision-targeted campaigns on Google’s powerful ad platform.

Learn More

.07
Google My Business

Optimize your local presence with strategies that put your business on the map and attract more customers.

Learn More

.08
Graphic Designing

Our designs tell your brand’s story in a visually compelling way.

Learn More

.09
3D Videos

Bring your product to life with immersive and dynamic 3D explainer videos.

Learn More

about BEEGAZPACHO

creating special Things
For special brands

Join the ranks of successful brands by partnering with Beegazpacho

00+

Happy Customer

00+

Continents

Our vision is not just to be a service provider but to be your partner in growth. We see ourselves as an extension of your team, working tirelessly to ensure that your brand not only meets its goals but surpasses them.

Explore
more

Our Recent Work

Crafted with Passion and Precision

Connect now


Web Design
Design, Development & Identity

Logo Design
Design, Development & Identity

Creative Brand design
Design, Development & Identity

Product Design Marketing
Design, Development & Identity

DIGITAL MARKETING
SEO
WEBSITE DESIGNING
APP DEVELOPMENT
SOCIAL MEDIA ADS
GOOGLE ADS
GOOGLE MY BUSINESS
GRAPHIC DESINING
3D VIDEOS
Client Stories

Hear It from Those Who Know Us Best

Our clients’ success stories speak volumes about our commitment to excellence. Don’t just take our word for it—hear directly from the brands we’ve partnered with. Their testimonials highlight our ability to bring visions to life and create a lasting impact on their businesses.

“Beegazpacho feels like an extension of our team. Their content marketing and social media expertise have elevated our brand. They listen, adapt, and always deliver on time. We look forward to continuing this partnership.”

— Sarah Williams

Head of Marketing, GreenPlanet Apparel

“Beegazpacho’s data-driven strategies helped us improve our online ads, optimize our website, and enhance branding. We’ve seen great ROI and increased visibility. Their professionalism is unmatched.”

— Arvind Shah

CEO, InnovateTech Solutions

“Partnering with Beegazpacho has been a game-changer for our brand. Their creative ad campaigns and SEO services have boosted our online presence and significantly increased leads and sales. We couldn’t ask for a better partner!”

— Rina Kapoor

Marketing Director, Luxury Home Interiors

“Beegazpacho feels like an extension of our team. Their content marketing and social media expertise have elevated our brand. They listen, adapt, and always deliver on time. We look forward to continuing this partnership.”

— Sarah Williams

Head of Marketing, GreenPlanet Apparel

“Beegazpacho’s data-driven strategies helped us improve our online ads, optimize our website, and enhance branding. We’ve seen great ROI and increased visibility. Their professionalism is unmatched.”

— Arvind Shah

CEO, InnovateTech Solutions

“Partnering with Beegazpacho has been a game-changer for our brand. Their creative ad campaigns and SEO services have boosted our online presence and significantly increased leads and sales. We couldn’t ask for a better partner!”

— Rina Kapoor

Marketing Director, Luxury Home Interiors