Module: Aws::IoT::ClientApi Private

Includes:
Seahorse::Model
Defined in:
lib/aws-sdk-iot/client_api.rb

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Constant Summary collapse

AbortAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AbortAction')
AbortConfig =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AbortConfig')
AbortCriteria =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AbortCriteria')
AbortCriteriaList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'AbortCriteriaList')
AbortThresholdPercentage =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::FloatShape.new(name: 'AbortThresholdPercentage')
AcceptCertificateTransferRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AcceptCertificateTransferRequest')
Action =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Action')
ActionList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ActionList')
ActionType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ActionType')
ActiveViolation =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ActiveViolation')
ActiveViolations =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ActiveViolations')
AddThingToBillingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AddThingToBillingGroupRequest')
AddThingToBillingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AddThingToBillingGroupResponse')
AddThingToThingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AddThingToThingGroupRequest')
AddThingToThingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AddThingToThingGroupResponse')
AdditionalParameterMap =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'AdditionalParameterMap')
AlarmName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AlarmName')
AlertTarget =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AlertTarget')
AlertTargetArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AlertTargetArn')
AlertTargetType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AlertTargetType')
AlertTargets =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'AlertTargets')
AllowAutoRegistration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'AllowAutoRegistration')
Allowed =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Allowed')
ApproximateSecondsBeforeTimedOut =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'ApproximateSecondsBeforeTimedOut')
AscendingOrder =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'AscendingOrder')
AssociateTargetsWithJobRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AssociateTargetsWithJobRequest')
AssociateTargetsWithJobResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AssociateTargetsWithJobResponse')
AttachPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AttachPolicyRequest')
AttachPrincipalPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AttachPrincipalPolicyRequest')
AttachSecurityProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AttachSecurityProfileRequest')
AttachSecurityProfileResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AttachSecurityProfileResponse')
AttachThingPrincipalRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AttachThingPrincipalRequest')
AttachThingPrincipalResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AttachThingPrincipalResponse')
AttributeKey =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AttributeKey')
AttributeName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AttributeName')
AttributePayload =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AttributePayload')
AttributeValue =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AttributeValue')
Attributes =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'Attributes')
AttributesMap =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'AttributesMap')
AuditCheckConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AuditCheckConfiguration')
AuditCheckConfigurations =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'AuditCheckConfigurations')
AuditCheckDetails =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AuditCheckDetails')
AuditCheckName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AuditCheckName')
AuditCheckRunStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AuditCheckRunStatus')
AuditDetails =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'AuditDetails')
AuditFinding =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AuditFinding')
AuditFindingSeverity =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AuditFindingSeverity')
AuditFindings =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'AuditFindings')
AuditFrequency =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AuditFrequency')
AuditNotificationTarget =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AuditNotificationTarget')
AuditNotificationTargetConfigurations =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'AuditNotificationTargetConfigurations')
AuditNotificationType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AuditNotificationType')
AuditTaskId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AuditTaskId')
AuditTaskMetadata =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AuditTaskMetadata')
AuditTaskMetadataList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'AuditTaskMetadataList')
AuditTaskStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AuditTaskStatus')
AuditTaskType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AuditTaskType')
AuthDecision =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AuthDecision')
AuthInfo =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AuthInfo')
AuthInfos =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'AuthInfos')
AuthResult =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AuthResult')
AuthResults =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'AuthResults')
AuthorizerArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AuthorizerArn')
AuthorizerDescription =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AuthorizerDescription')
AuthorizerFunctionArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AuthorizerFunctionArn')
AuthorizerName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AuthorizerName')
AuthorizerStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AuthorizerStatus')
AuthorizerSummary =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AuthorizerSummary')
Authorizers =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Authorizers')
AutoRegistrationStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AutoRegistrationStatus')
AwsAccountId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AwsAccountId')
AwsArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AwsArn')
AwsIotJobArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AwsIotJobArn')
AwsIotJobId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AwsIotJobId')
AwsIotSqlVersion =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AwsIotSqlVersion')
AwsJobExecutionsRolloutConfig =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AwsJobExecutionsRolloutConfig')
Behavior =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Behavior')
BehaviorCriteria =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'BehaviorCriteria')
BehaviorMetric =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'BehaviorMetric')
BehaviorName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'BehaviorName')
Behaviors =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Behaviors')
BillingGroupArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'BillingGroupArn')
BillingGroupDescription =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'BillingGroupDescription')
BillingGroupId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'BillingGroupId')
BillingGroupMetadata =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'BillingGroupMetadata')
BillingGroupName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'BillingGroupName')
BillingGroupNameAndArnList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'BillingGroupNameAndArnList')
BillingGroupProperties =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'BillingGroupProperties')
Boolean =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'Boolean')
BucketName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'BucketName')
CACertificate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CACertificate')
CACertificateDescription =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CACertificateDescription')
CACertificateStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CACertificateStatus')
CACertificates =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'CACertificates')
CancelAuditTaskRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CancelAuditTaskRequest')
CancelAuditTaskResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CancelAuditTaskResponse')
CancelCertificateTransferRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CancelCertificateTransferRequest')
CancelJobExecutionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CancelJobExecutionRequest')
CancelJobRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CancelJobRequest')
CancelJobResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CancelJobResponse')
CanceledChecksCount =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'CanceledChecksCount')
CanceledThings =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'CanceledThings')
CannedAccessControlList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CannedAccessControlList')
Certificate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Certificate')
CertificateArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CertificateArn')
CertificateConflictException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CertificateConflictException')
CertificateDescription =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CertificateDescription')
CertificateId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CertificateId')
CertificateName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CertificateName')
CertificatePathOnDevice =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CertificatePathOnDevice')
CertificatePem =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CertificatePem')
CertificateSigningRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CertificateSigningRequest')
CertificateStateException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CertificateStateException')
CertificateStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CertificateStatus')
CertificateValidationException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CertificateValidationException')
CertificateValidity =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CertificateValidity')
Certificates =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Certificates')
ChannelName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ChannelName')
CheckCompliant =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'CheckCompliant')
Cidr =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Cidr')
Cidrs =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Cidrs')
ClearDefaultAuthorizerRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ClearDefaultAuthorizerRequest')
ClearDefaultAuthorizerResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ClearDefaultAuthorizerResponse')
ClientId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ClientId')
CloudwatchAlarmAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CloudwatchAlarmAction')
CloudwatchMetricAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CloudwatchMetricAction')
Code =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Code')
CodeSigning =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CodeSigning')
CodeSigningCertificateChain =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CodeSigningCertificateChain')
CodeSigningSignature =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CodeSigningSignature')
CognitoIdentityPoolId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CognitoIdentityPoolId')
Comment =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Comment')
ComparisonOperator =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ComparisonOperator')
CompliantChecksCount =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'CompliantChecksCount')
Configuration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Configuration')
ConflictingResourceUpdateException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ConflictingResourceUpdateException')
ConnectivityTimestamp =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'ConnectivityTimestamp')
Count =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'Count')
CreateAuthorizerRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateAuthorizerRequest')
CreateAuthorizerResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateAuthorizerResponse')
CreateBillingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateBillingGroupRequest')
CreateBillingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateBillingGroupResponse')
CreateCertificateFromCsrRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateCertificateFromCsrRequest')
CreateCertificateFromCsrResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateCertificateFromCsrResponse')
CreateDynamicThingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateDynamicThingGroupRequest')
CreateDynamicThingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateDynamicThingGroupResponse')
CreateJobRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateJobRequest')
CreateJobResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateJobResponse')
CreateKeysAndCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateKeysAndCertificateRequest')
CreateKeysAndCertificateResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateKeysAndCertificateResponse')
CreateOTAUpdateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateOTAUpdateRequest')
CreateOTAUpdateResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateOTAUpdateResponse')
CreatePolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreatePolicyRequest')
CreatePolicyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreatePolicyResponse')
CreatePolicyVersionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreatePolicyVersionRequest')
CreatePolicyVersionResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreatePolicyVersionResponse')
CreateRoleAliasRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateRoleAliasRequest')
CreateRoleAliasResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateRoleAliasResponse')
CreateScheduledAuditRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateScheduledAuditRequest')
CreateScheduledAuditResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateScheduledAuditResponse')
CreateSecurityProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateSecurityProfileRequest')
CreateSecurityProfileResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateSecurityProfileResponse')
CreateStreamRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateStreamRequest')
CreateStreamResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateStreamResponse')
CreateThingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateThingGroupRequest')
CreateThingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateThingGroupResponse')
CreateThingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateThingRequest')
CreateThingResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateThingResponse')
CreateThingTypeRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateThingTypeRequest')
CreateThingTypeResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateThingTypeResponse')
CreateTopicRuleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateTopicRuleRequest')
CreatedAtDate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'CreatedAtDate')
CreationDate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'CreationDate')
CredentialDurationSeconds =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'CredentialDurationSeconds')
CustomCodeSigning =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CustomCodeSigning')
CustomerVersion =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'CustomerVersion')
DateType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'DateType')
DayOfMonth =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'DayOfMonth')
DayOfWeek =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'DayOfWeek')
DeleteAccountAuditConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteAccountAuditConfigurationRequest')
DeleteAccountAuditConfigurationResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteAccountAuditConfigurationResponse')
DeleteAuthorizerRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteAuthorizerRequest')
DeleteAuthorizerResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteAuthorizerResponse')
DeleteBillingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteBillingGroupRequest')
DeleteBillingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteBillingGroupResponse')
DeleteCACertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteCACertificateRequest')
DeleteCACertificateResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteCACertificateResponse')
DeleteCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteCertificateRequest')
DeleteConflictException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteConflictException')
DeleteDynamicThingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteDynamicThingGroupRequest')
DeleteDynamicThingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteDynamicThingGroupResponse')
DeleteJobExecutionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteJobExecutionRequest')
DeleteJobRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteJobRequest')
DeleteOTAUpdateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteOTAUpdateRequest')
DeleteOTAUpdateResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteOTAUpdateResponse')
DeletePolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeletePolicyRequest')
DeletePolicyVersionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeletePolicyVersionRequest')
DeleteRegistrationCodeRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteRegistrationCodeRequest')
DeleteRegistrationCodeResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteRegistrationCodeResponse')
DeleteRoleAliasRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteRoleAliasRequest')
DeleteRoleAliasResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteRoleAliasResponse')
DeleteScheduledAuditRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteScheduledAuditRequest')
DeleteScheduledAuditResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteScheduledAuditResponse')
DeleteScheduledAudits =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'DeleteScheduledAudits')
DeleteSecurityProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteSecurityProfileRequest')
DeleteSecurityProfileResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteSecurityProfileResponse')
DeleteStream =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'DeleteStream')
DeleteStreamRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteStreamRequest')
DeleteStreamResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteStreamResponse')
DeleteThingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteThingGroupRequest')
DeleteThingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteThingGroupResponse')
DeleteThingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteThingRequest')
DeleteThingResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteThingResponse')
DeleteThingTypeRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteThingTypeRequest')
DeleteThingTypeResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteThingTypeResponse')
DeleteTopicRuleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteTopicRuleRequest')
DeleteV2LoggingLevelRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteV2LoggingLevelRequest')
DeliveryStreamName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'DeliveryStreamName')
Denied =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Denied')
DeprecateThingTypeRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeprecateThingTypeRequest')
DeprecateThingTypeResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeprecateThingTypeResponse')
DeprecationDate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'DeprecationDate')
DescribeAccountAuditConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeAccountAuditConfigurationRequest')
DescribeAccountAuditConfigurationResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeAccountAuditConfigurationResponse')
DescribeAuditTaskRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeAuditTaskRequest')
DescribeAuditTaskResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeAuditTaskResponse')
DescribeAuthorizerRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeAuthorizerRequest')
DescribeAuthorizerResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeAuthorizerResponse')
DescribeBillingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeBillingGroupRequest')
DescribeBillingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeBillingGroupResponse')
DescribeCACertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeCACertificateRequest')
DescribeCACertificateResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeCACertificateResponse')
DescribeCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeCertificateRequest')
DescribeCertificateResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeCertificateResponse')
DescribeDefaultAuthorizerRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeDefaultAuthorizerRequest')
DescribeDefaultAuthorizerResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeDefaultAuthorizerResponse')
DescribeEndpointRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeEndpointRequest')
DescribeEndpointResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeEndpointResponse')
DescribeEventConfigurationsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeEventConfigurationsRequest')
DescribeEventConfigurationsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeEventConfigurationsResponse')
DescribeIndexRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeIndexRequest')
DescribeIndexResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeIndexResponse')
DescribeJobExecutionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeJobExecutionRequest')
DescribeJobExecutionResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeJobExecutionResponse')
DescribeJobRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeJobRequest')
DescribeJobResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeJobResponse')
DescribeRoleAliasRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeRoleAliasRequest')
DescribeRoleAliasResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeRoleAliasResponse')
DescribeScheduledAuditRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeScheduledAuditRequest')
DescribeScheduledAuditResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeScheduledAuditResponse')
DescribeSecurityProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeSecurityProfileRequest')
DescribeSecurityProfileResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeSecurityProfileResponse')
DescribeStreamRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeStreamRequest')
DescribeStreamResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeStreamResponse')
DescribeThingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeThingGroupRequest')
DescribeThingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeThingGroupResponse')
DescribeThingRegistrationTaskRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeThingRegistrationTaskRequest')
DescribeThingRegistrationTaskResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeThingRegistrationTaskResponse')
DescribeThingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeThingRequest')
DescribeThingResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeThingResponse')
DescribeThingTypeRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeThingTypeRequest')
DescribeThingTypeResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DescribeThingTypeResponse')
Description =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Description')
Destination =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Destination')
DetachPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DetachPolicyRequest')
DetachPrincipalPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DetachPrincipalPolicyRequest')
DetachSecurityProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DetachSecurityProfileRequest')
DetachSecurityProfileResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DetachSecurityProfileResponse')
DetachThingPrincipalRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DetachThingPrincipalRequest')
DetachThingPrincipalResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DetachThingPrincipalResponse')
DetailsKey =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'DetailsKey')
DetailsMap =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'DetailsMap')
DetailsValue =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'DetailsValue')
DisableAllLogs =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'DisableAllLogs')
DisableTopicRuleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DisableTopicRuleRequest')
DurationSeconds =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'DurationSeconds')
DynamicGroupStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'DynamicGroupStatus')
DynamoDBAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DynamoDBAction')
DynamoDBv2Action =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DynamoDBv2Action')
DynamoKeyType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'DynamoKeyType')
DynamoOperation =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'DynamoOperation')
EffectivePolicies =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'EffectivePolicies')
EffectivePolicy =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'EffectivePolicy')
ElasticsearchAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ElasticsearchAction')
ElasticsearchEndpoint =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ElasticsearchEndpoint')
ElasticsearchId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ElasticsearchId')
ElasticsearchIndex =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ElasticsearchIndex')
ElasticsearchType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ElasticsearchType')
EnableTopicRuleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'EnableTopicRuleRequest')
Enabled =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'Enabled')
EndpointAddress =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'EndpointAddress')
EndpointType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'EndpointType')
ErrorCode =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ErrorCode')
ErrorInfo =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ErrorInfo')
ErrorMessage =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ErrorMessage')
EventConfigurations =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'EventConfigurations')
EventType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'EventType')
ExecutionNamePrefix =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ExecutionNamePrefix')
ExecutionNumber =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'ExecutionNumber')
ExpectedVersion =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'ExpectedVersion')
ExpiresInSec =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'ExpiresInSec')
ExplicitDeny =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ExplicitDeny')
ExponentialRolloutRate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ExponentialRolloutRate')
FailedChecksCount =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'FailedChecksCount')
FailedThings =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'FailedThings')
FileId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'FileId')
FileLocation =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'FileLocation')
FileName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'FileName')
FirehoseAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'FirehoseAction')
FirehoseSeparator =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'FirehoseSeparator')
Flag =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'Flag')
ForceDelete =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'ForceDelete')
ForceDeleteAWSJob =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'ForceDeleteAWSJob')
ForceFlag =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'ForceFlag')
Forced =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'Forced')
FunctionArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'FunctionArn')
GEMaxResults =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'GEMaxResults')
GenerationId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'GenerationId')
GetEffectivePoliciesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetEffectivePoliciesRequest')
GetEffectivePoliciesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetEffectivePoliciesResponse')
GetIndexingConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetIndexingConfigurationRequest')
GetIndexingConfigurationResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetIndexingConfigurationResponse')
GetJobDocumentRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetJobDocumentRequest')
GetJobDocumentResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetJobDocumentResponse')
GetLoggingOptionsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetLoggingOptionsRequest')
GetLoggingOptionsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetLoggingOptionsResponse')
GetOTAUpdateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetOTAUpdateRequest')
GetOTAUpdateResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetOTAUpdateResponse')
GetPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetPolicyRequest')
GetPolicyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetPolicyResponse')
GetPolicyVersionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetPolicyVersionRequest')
GetPolicyVersionResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetPolicyVersionResponse')
GetRegistrationCodeRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetRegistrationCodeRequest')
GetRegistrationCodeResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetRegistrationCodeResponse')
GetTopicRuleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetTopicRuleRequest')
GetTopicRuleResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetTopicRuleResponse')
GetV2LoggingOptionsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetV2LoggingOptionsRequest')
GetV2LoggingOptionsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetV2LoggingOptionsResponse')
GroupNameAndArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GroupNameAndArn')
HashAlgorithm =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'HashAlgorithm')
HashKeyField =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'HashKeyField')
HashKeyValue =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'HashKeyValue')
ImplicitDeny =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ImplicitDeny')
InProgressChecksCount =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'InProgressChecksCount')
InProgressThings =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'InProgressThings')
InProgressTimeoutInMinutes =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'InProgressTimeoutInMinutes')
IncrementFactor =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::FloatShape.new(name: 'IncrementFactor')
IndexName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'IndexName')
IndexNamesList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'IndexNamesList')
IndexNotReadyException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'IndexNotReadyException')
IndexSchema =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'IndexSchema')
IndexStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'IndexStatus')
InlineDocument =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'InlineDocument')
InputName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'InputName')
InternalException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InternalException')
InternalFailureException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InternalFailureException')
InvalidQueryException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InvalidQueryException')
InvalidRequestException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InvalidRequestException')
InvalidResponseException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InvalidResponseException')
InvalidStateTransitionException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InvalidStateTransitionException')
IotAnalyticsAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'IotAnalyticsAction')
IotEventsAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'IotEventsAction')
IsAuthenticated =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'IsAuthenticated')
IsDefaultVersion =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'IsDefaultVersion')
IsDisabled =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'IsDisabled')
Job =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Job')
JobArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'JobArn')
JobDescription =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'JobDescription')
JobDocument =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'JobDocument')
JobDocumentSource =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'JobDocumentSource')
JobExecution =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'JobExecution')
JobExecutionFailureType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'JobExecutionFailureType')
JobExecutionStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'JobExecutionStatus')
JobExecutionStatusDetails =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'JobExecutionStatusDetails')
JobExecutionSummary =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'JobExecutionSummary')
JobExecutionSummaryForJob =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'JobExecutionSummaryForJob')
JobExecutionSummaryForJobList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'JobExecutionSummaryForJobList')
JobExecutionSummaryForThing =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'JobExecutionSummaryForThing')
JobExecutionSummaryForThingList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'JobExecutionSummaryForThingList')
JobExecutionsRolloutConfig =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'JobExecutionsRolloutConfig')
JobId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'JobId')
JobProcessDetails =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'JobProcessDetails')
JobStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'JobStatus')
JobSummary =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'JobSummary')
JobSummaryList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'JobSummaryList')
JobTargets =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'JobTargets')
JsonDocument =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'JsonDocument')
Key =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Key')
KeyName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'KeyName')
KeyPair =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'KeyPair')
KeyValue =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'KeyValue')
KinesisAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'KinesisAction')
LambdaAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LambdaAction')
LaserMaxResults =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'LaserMaxResults')
LastModifiedDate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'LastModifiedDate')
LimitExceededException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LimitExceededException')
ListActiveViolationsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListActiveViolationsRequest')
ListActiveViolationsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListActiveViolationsResponse')
ListAttachedPoliciesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAttachedPoliciesRequest')
ListAttachedPoliciesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAttachedPoliciesResponse')
ListAuditFindingsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAuditFindingsRequest')
ListAuditFindingsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAuditFindingsResponse')
ListAuditTasksRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAuditTasksRequest')
ListAuditTasksResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAuditTasksResponse')
ListAuthorizersRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAuthorizersRequest')
ListAuthorizersResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAuthorizersResponse')
ListBillingGroupsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListBillingGroupsRequest')
ListBillingGroupsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListBillingGroupsResponse')
ListCACertificatesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListCACertificatesRequest')
ListCACertificatesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListCACertificatesResponse')
ListCertificatesByCARequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListCertificatesByCARequest')
ListCertificatesByCAResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListCertificatesByCAResponse')
ListCertificatesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListCertificatesRequest')
ListCertificatesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListCertificatesResponse')
ListIndicesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListIndicesRequest')
ListIndicesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListIndicesResponse')
ListJobExecutionsForJobRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListJobExecutionsForJobRequest')
ListJobExecutionsForJobResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListJobExecutionsForJobResponse')
ListJobExecutionsForThingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListJobExecutionsForThingRequest')
ListJobExecutionsForThingResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListJobExecutionsForThingResponse')
ListJobsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListJobsRequest')
ListJobsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListJobsResponse')
ListOTAUpdatesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListOTAUpdatesRequest')
ListOTAUpdatesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListOTAUpdatesResponse')
ListOutgoingCertificatesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListOutgoingCertificatesRequest')
ListOutgoingCertificatesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListOutgoingCertificatesResponse')
ListPoliciesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPoliciesRequest')
ListPoliciesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPoliciesResponse')
ListPolicyPrincipalsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPolicyPrincipalsRequest')
ListPolicyPrincipalsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPolicyPrincipalsResponse')
ListPolicyVersionsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPolicyVersionsRequest')
ListPolicyVersionsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPolicyVersionsResponse')
ListPrincipalPoliciesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPrincipalPoliciesRequest')
ListPrincipalPoliciesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPrincipalPoliciesResponse')
ListPrincipalThingsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPrincipalThingsRequest')
ListPrincipalThingsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPrincipalThingsResponse')
ListRoleAliasesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListRoleAliasesRequest')
ListRoleAliasesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListRoleAliasesResponse')
ListScheduledAuditsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListScheduledAuditsRequest')
ListScheduledAuditsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListScheduledAuditsResponse')
ListSecurityProfilesForTargetRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListSecurityProfilesForTargetRequest')
ListSecurityProfilesForTargetResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListSecurityProfilesForTargetResponse')
ListSecurityProfilesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListSecurityProfilesRequest')
ListSecurityProfilesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListSecurityProfilesResponse')
ListStreamsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListStreamsRequest')
ListStreamsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListStreamsResponse')
ListTagsForResourceRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
ListTagsForResourceResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
ListTargetsForPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListTargetsForPolicyRequest')
ListTargetsForPolicyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListTargetsForPolicyResponse')
ListTargetsForSecurityProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListTargetsForSecurityProfileRequest')
ListTargetsForSecurityProfileResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListTargetsForSecurityProfileResponse')
ListThingGroupsForThingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingGroupsForThingRequest')
ListThingGroupsForThingResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingGroupsForThingResponse')
ListThingGroupsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingGroupsRequest')
ListThingGroupsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingGroupsResponse')
ListThingPrincipalsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingPrincipalsRequest')
ListThingPrincipalsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingPrincipalsResponse')
ListThingRegistrationTaskReportsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingRegistrationTaskReportsRequest')
ListThingRegistrationTaskReportsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingRegistrationTaskReportsResponse')
ListThingRegistrationTasksRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingRegistrationTasksRequest')
ListThingRegistrationTasksResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingRegistrationTasksResponse')
ListThingTypesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingTypesRequest')
ListThingTypesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingTypesResponse')
ListThingsInBillingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingsInBillingGroupRequest')
ListThingsInBillingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingsInBillingGroupResponse')
ListThingsInThingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingsInThingGroupRequest')
ListThingsInThingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingsInThingGroupResponse')
ListThingsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingsRequest')
ListThingsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListThingsResponse')
ListTopicRulesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListTopicRulesRequest')
ListTopicRulesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListTopicRulesResponse')
ListV2LoggingLevelsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListV2LoggingLevelsRequest')
ListV2LoggingLevelsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListV2LoggingLevelsResponse')
ListViolationEventsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListViolationEventsRequest')
ListViolationEventsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListViolationEventsResponse')
LogLevel =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'LogLevel')
LogTarget =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LogTarget')
LogTargetConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LogTargetConfiguration')
LogTargetConfigurations =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'LogTargetConfigurations')
LogTargetName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'LogTargetName')
LogTargetType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'LogTargetType')
LoggingOptionsPayload =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LoggingOptionsPayload')
MalformedPolicyException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'MalformedPolicyException')
Marker =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Marker')
MaxJobExecutionsPerMin =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'MaxJobExecutionsPerMin')
MaxResults =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'MaxResults')
MaximumPerMinute =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'MaximumPerMinute')
Message =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Message')
MessageFormat =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'MessageFormat')
MessageId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'MessageId')
MetricValue =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'MetricValue')
MinimumNumberOfExecutedThings =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'MinimumNumberOfExecutedThings')
MissingContextValue =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'MissingContextValue')
MissingContextValues =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'MissingContextValues')
NextToken =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'NextToken')
NonCompliantChecksCount =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'NonCompliantChecksCount')
NonCompliantResource =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'NonCompliantResource')
NonCompliantResourcesCount =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'NonCompliantResourcesCount')
NotConfiguredException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'NotConfiguredException')
NumberOfThings =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'NumberOfThings')
OTAUpdateArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'OTAUpdateArn')
OTAUpdateDescription =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'OTAUpdateDescription')
OTAUpdateErrorMessage =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'OTAUpdateErrorMessage')
OTAUpdateFile =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'OTAUpdateFile')
OTAUpdateFileVersion =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'OTAUpdateFileVersion')
OTAUpdateFiles =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'OTAUpdateFiles')
OTAUpdateId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'OTAUpdateId')
OTAUpdateInfo =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'OTAUpdateInfo')
OTAUpdateStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'OTAUpdateStatus')
OTAUpdateSummary =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'OTAUpdateSummary')
OTAUpdatesSummary =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'OTAUpdatesSummary')
OptionalVersion =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'OptionalVersion')
OutgoingCertificate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'OutgoingCertificate')
OutgoingCertificates =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'OutgoingCertificates')
OverrideDynamicGroups =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'OverrideDynamicGroups')
PageSize =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'PageSize')
Parameter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Parameter')
Parameters =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'Parameters')
PartitionKey =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PartitionKey')
PayloadField =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PayloadField')
Percentage =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'Percentage')
Platform =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Platform')
Policies =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Policies')
Policy =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Policy')
PolicyArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PolicyArn')
PolicyDocument =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PolicyDocument')
PolicyDocuments =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'PolicyDocuments')
PolicyName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PolicyName')
PolicyNames =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'PolicyNames')
PolicyTarget =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PolicyTarget')
PolicyTargets =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'PolicyTargets')
PolicyVersion =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PolicyVersion')
PolicyVersionId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PolicyVersionId')
PolicyVersionIdentifier =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PolicyVersionIdentifier')
PolicyVersions =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'PolicyVersions')
Port =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'Port')
Ports =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Ports')
Prefix =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Prefix')
PresignedUrlConfig =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PresignedUrlConfig')
Principal =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Principal')
PrincipalArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PrincipalArn')
PrincipalId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PrincipalId')
Principals =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Principals')
PrivateKey =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PrivateKey')
ProcessingTargetName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ProcessingTargetName')
ProcessingTargetNameList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ProcessingTargetNameList')
PublicKey =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PublicKey')
PublicKeyMap =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'PublicKeyMap')
PutItemInput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutItemInput')
QueryMaxResults =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'QueryMaxResults')
QueryString =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'QueryString')
QueryVersion =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'QueryVersion')
QueueUrl =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'QueueUrl')
QueuedThings =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'QueuedThings')
RangeKeyField =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RangeKeyField')
RangeKeyValue =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RangeKeyValue')
RateIncreaseCriteria =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RateIncreaseCriteria')
ReasonCode =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ReasonCode')
ReasonForNonCompliance =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ReasonForNonCompliance')
ReasonForNonComplianceCode =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ReasonForNonComplianceCode')
Recursive =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'Recursive')
RecursiveWithoutDefault =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'RecursiveWithoutDefault')
RegisterCACertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RegisterCACertificateRequest')
RegisterCACertificateResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RegisterCACertificateResponse')
RegisterCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RegisterCertificateRequest')
RegisterCertificateResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RegisterCertificateResponse')
RegisterThingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RegisterThingRequest')
RegisterThingResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RegisterThingResponse')
RegistrationCode =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RegistrationCode')
RegistrationCodeValidationException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RegistrationCodeValidationException')
RegistrationConfig =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RegistrationConfig')
RegistryMaxResults =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'RegistryMaxResults')
RegistryS3BucketName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RegistryS3BucketName')
RegistryS3KeyName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RegistryS3KeyName')
RejectCertificateTransferRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RejectCertificateTransferRequest')
RejectedThings =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'RejectedThings')
RelatedResource =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RelatedResource')
RelatedResources =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'RelatedResources')
RemoveAutoRegistration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'RemoveAutoRegistration')
RemoveThingFromBillingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RemoveThingFromBillingGroupRequest')
RemoveThingFromBillingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RemoveThingFromBillingGroupResponse')
RemoveThingFromThingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RemoveThingFromThingGroupRequest')
RemoveThingFromThingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RemoveThingFromThingGroupResponse')
RemoveThingType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'RemoveThingType')
RemovedThings =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'RemovedThings')
ReplaceTopicRuleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ReplaceTopicRuleRequest')
ReportType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ReportType')
RepublishAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RepublishAction')
Resource =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Resource')
ResourceAlreadyExistsException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ResourceAlreadyExistsException')
ResourceArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ResourceArn')
ResourceArns =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'ResourceArns')
ResourceIdentifier =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ResourceIdentifier')
ResourceLogicalId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ResourceLogicalId')
ResourceNotFoundException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ResourceNotFoundException')
ResourceRegistrationFailureException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ResourceRegistrationFailureException')
ResourceType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ResourceType')
Resources =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Resources')
RoleAlias =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RoleAlias')
RoleAliasArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RoleAliasArn')
RoleAliasDescription =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RoleAliasDescription')
RoleAliases =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'RoleAliases')
RoleArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RoleArn')
RolloutRatePerMinute =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'RolloutRatePerMinute')
RuleArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RuleArn')
RuleName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RuleName')
S3Action =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'S3Action')
S3Bucket =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'S3Bucket')
S3Destination =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'S3Destination')
S3FileUrl =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'S3FileUrl')
S3FileUrlList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'S3FileUrlList')
S3Key =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'S3Key')
S3Location =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'S3Location')
S3Version =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'S3Version')
SQL =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SQL')
SalesforceAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SalesforceAction')
SalesforceEndpoint =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SalesforceEndpoint')
SalesforceToken =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SalesforceToken')
ScheduledAuditArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ScheduledAuditArn')
ScheduledAuditMetadata =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ScheduledAuditMetadata')
ScheduledAuditMetadataList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ScheduledAuditMetadataList')
ScheduledAuditName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ScheduledAuditName')
SearchIndexRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SearchIndexRequest')
SearchIndexResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SearchIndexResponse')
SearchableAttributes =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'SearchableAttributes')
Seconds =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'Seconds')
SecurityProfileArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SecurityProfileArn')
SecurityProfileDescription =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SecurityProfileDescription')
SecurityProfileIdentifier =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SecurityProfileIdentifier')
SecurityProfileIdentifiers =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'SecurityProfileIdentifiers')
SecurityProfileName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SecurityProfileName')
SecurityProfileTarget =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SecurityProfileTarget')
SecurityProfileTargetArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SecurityProfileTargetArn')
SecurityProfileTargetMapping =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SecurityProfileTargetMapping')
SecurityProfileTargetMappings =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'SecurityProfileTargetMappings')
SecurityProfileTargets =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'SecurityProfileTargets')
ServiceUnavailableException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ServiceUnavailableException')
SetAsActive =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'SetAsActive')
SetAsActiveFlag =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'SetAsActiveFlag')
SetAsDefault =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'SetAsDefault')
SetDefaultAuthorizerRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SetDefaultAuthorizerRequest')
SetDefaultAuthorizerResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SetDefaultAuthorizerResponse')
SetDefaultPolicyVersionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SetDefaultPolicyVersionRequest')
SetLoggingOptionsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SetLoggingOptionsRequest')
SetV2LoggingLevelRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SetV2LoggingLevelRequest')
SetV2LoggingOptionsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SetV2LoggingOptionsRequest')
Signature =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BlobShape.new(name: 'Signature')
SignatureAlgorithm =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SignatureAlgorithm')
SigningJobId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SigningJobId')
SigningProfileName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SigningProfileName')
SigningProfileParameter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SigningProfileParameter')
SkyfallMaxResults =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'SkyfallMaxResults')
SnsAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SnsAction')
SqlParseException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SqlParseException')
SqsAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SqsAction')
StartOnDemandAuditTaskRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StartOnDemandAuditTaskRequest')
StartOnDemandAuditTaskResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StartOnDemandAuditTaskResponse')
StartSigningJobParameter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StartSigningJobParameter')
StartThingRegistrationTaskRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StartThingRegistrationTaskRequest')
StartThingRegistrationTaskResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StartThingRegistrationTaskResponse')
StateMachineName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'StateMachineName')
StateReason =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'StateReason')
StateValue =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'StateValue')
Status =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Status')
StepFunctionsAction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StepFunctionsAction')
StopThingRegistrationTaskRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StopThingRegistrationTaskRequest')
StopThingRegistrationTaskResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StopThingRegistrationTaskResponse')
Stream =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Stream')
StreamArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'StreamArn')
StreamDescription =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'StreamDescription')
StreamFile =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StreamFile')
StreamFiles =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'StreamFiles')
StreamId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'StreamId')
StreamInfo =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StreamInfo')
StreamName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'StreamName')
StreamSummary =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StreamSummary')
StreamVersion =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'StreamVersion')
StreamsSummary =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'StreamsSummary')
String =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'String')
StringMap =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'StringMap')
SucceededThings =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'SucceededThings')
TableName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TableName')
Tag =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Tag')
TagKey =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TagKey')
TagKeyList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'TagKeyList')
TagList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'TagList')
TagResourceRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TagResourceRequest')
TagResourceResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TagResourceResponse')
TagValue =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TagValue')
Target =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Target')
TargetArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TargetArn')
TargetAuditCheckNames =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'TargetAuditCheckNames')
TargetSelection =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TargetSelection')
Targets =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Targets')
TaskId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TaskId')
TaskIdList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'TaskIdList')
TaskStatistics =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TaskStatistics')
TemplateBody =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TemplateBody')
TestAuthorizationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TestAuthorizationRequest')
TestAuthorizationResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TestAuthorizationResponse')
TestInvokeAuthorizerRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TestInvokeAuthorizerRequest')
TestInvokeAuthorizerResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TestInvokeAuthorizerResponse')
ThingArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingArn')
ThingAttribute =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ThingAttribute')
ThingAttributeList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ThingAttributeList')
ThingConnectivity =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ThingConnectivity')
ThingConnectivityIndexingMode =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingConnectivityIndexingMode')
ThingDocument =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ThingDocument')
ThingDocumentList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ThingDocumentList')
ThingGroupArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingGroupArn')
ThingGroupDescription =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingGroupDescription')
ThingGroupDocument =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ThingGroupDocument')
ThingGroupDocumentList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ThingGroupDocumentList')
ThingGroupId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingGroupId')
ThingGroupIndexingConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ThingGroupIndexingConfiguration')
ThingGroupIndexingMode =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingGroupIndexingMode')
ThingGroupList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ThingGroupList')
ThingGroupMetadata =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ThingGroupMetadata')
ThingGroupName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingGroupName')
ThingGroupNameAndArnList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ThingGroupNameAndArnList')
ThingGroupNameList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ThingGroupNameList')
ThingGroupProperties =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ThingGroupProperties')
ThingId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingId')
ThingIndexingConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ThingIndexingConfiguration')
ThingIndexingMode =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingIndexingMode')
ThingName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingName')
ThingNameList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ThingNameList')
ThingTypeArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingTypeArn')
ThingTypeDefinition =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ThingTypeDefinition')
ThingTypeDescription =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingTypeDescription')
ThingTypeId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingTypeId')
ThingTypeList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ThingTypeList')
ThingTypeMetadata =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ThingTypeMetadata')
ThingTypeName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ThingTypeName')
ThingTypeProperties =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ThingTypeProperties')
ThrottlingException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ThrottlingException')
TimedOutThings =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'TimedOutThings')
TimeoutConfig =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TimeoutConfig')
Timestamp =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'Timestamp')
Token =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Token')
TokenKeyName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TokenKeyName')
TokenSignature =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TokenSignature')
Topic =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Topic')
TopicPattern =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TopicPattern')
TopicRule =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TopicRule')
TopicRuleList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'TopicRuleList')
TopicRuleListItem =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TopicRuleListItem')
TopicRulePayload =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TopicRulePayload')
TotalChecksCount =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'TotalChecksCount')
TotalResourcesCount =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'TotalResourcesCount')
TransferAlreadyCompletedException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TransferAlreadyCompletedException')
TransferCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TransferCertificateRequest')
TransferCertificateResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TransferCertificateResponse')
TransferConflictException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TransferConflictException')
TransferData =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TransferData')
UnauthorizedException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UnauthorizedException')
UndoDeprecate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'UndoDeprecate')
UnsignedLong =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'UnsignedLong')
UntagResourceRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UntagResourceRequest')
UntagResourceResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UntagResourceResponse')
UpdateAccountAuditConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateAccountAuditConfigurationRequest')
UpdateAccountAuditConfigurationResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateAccountAuditConfigurationResponse')
UpdateAuthorizerRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateAuthorizerRequest')
UpdateAuthorizerResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateAuthorizerResponse')
UpdateBillingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateBillingGroupRequest')
UpdateBillingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateBillingGroupResponse')
UpdateCACertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateCACertificateRequest')
UpdateCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateCertificateRequest')
UpdateDynamicThingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateDynamicThingGroupRequest')
UpdateDynamicThingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateDynamicThingGroupResponse')
UpdateEventConfigurationsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateEventConfigurationsRequest')
UpdateEventConfigurationsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateEventConfigurationsResponse')
UpdateIndexingConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateIndexingConfigurationRequest')
UpdateIndexingConfigurationResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateIndexingConfigurationResponse')
UpdateJobRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateJobRequest')
UpdateRoleAliasRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateRoleAliasRequest')
UpdateRoleAliasResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateRoleAliasResponse')
UpdateScheduledAuditRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateScheduledAuditRequest')
UpdateScheduledAuditResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateScheduledAuditResponse')
UpdateSecurityProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateSecurityProfileRequest')
UpdateSecurityProfileResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateSecurityProfileResponse')
UpdateStreamRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateStreamRequest')
UpdateStreamResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateStreamResponse')
UpdateThingGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateThingGroupRequest')
UpdateThingGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateThingGroupResponse')
UpdateThingGroupsForThingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateThingGroupsForThingRequest')
UpdateThingGroupsForThingResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateThingGroupsForThingResponse')
UpdateThingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateThingRequest')
UpdateThingResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateThingResponse')
UseBase64 =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'UseBase64')
Valid =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'Valid')
ValidateSecurityProfileBehaviorsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ValidateSecurityProfileBehaviorsRequest')
ValidateSecurityProfileBehaviorsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ValidateSecurityProfileBehaviorsResponse')
ValidationError =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ValidationError')
ValidationErrors =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ValidationErrors')
Value =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Value')
Version =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'Version')
VersionConflictException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'VersionConflictException')
VersionNumber =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'VersionNumber')
VersionsLimitExceededException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'VersionsLimitExceededException')
ViolationEvent =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ViolationEvent')
ViolationEventType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ViolationEventType')
ViolationEvents =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ViolationEvents')
ViolationId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ViolationId')
WaitingForDataCollectionChecksCount =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'WaitingForDataCollectionChecksCount')
API =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Seahorse::Model::Api.new.tap do |api|

  api.version = "2015-05-28"

  api. = {
    "apiVersion" => "2015-05-28",
    "endpointPrefix" => "iot",
    "protocol" => "rest-json",
    "serviceFullName" => "AWS IoT",
    "serviceId" => "IoT",
    "signatureVersion" => "v4",
    "signingName" => "execute-api",
    "uid" => "iot-2015-05-28",
  }

  api.add_operation(:accept_certificate_transfer, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AcceptCertificateTransfer"
    o.http_method = "PATCH"
    o.http_request_uri = "/accept-certificate-transfer/{certificateId}"
    o.input = Shapes::ShapeRef.new(shape: AcceptCertificateTransferRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: TransferAlreadyCompletedException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:add_thing_to_billing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AddThingToBillingGroup"
    o.http_method = "PUT"
    o.http_request_uri = "/billing-groups/addThingToBillingGroup"
    o.input = Shapes::ShapeRef.new(shape: AddThingToBillingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: AddThingToBillingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:add_thing_to_thing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AddThingToThingGroup"
    o.http_method = "PUT"
    o.http_request_uri = "/thing-groups/addThingToThingGroup"
    o.input = Shapes::ShapeRef.new(shape: AddThingToThingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: AddThingToThingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:associate_targets_with_job, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AssociateTargetsWithJob"
    o.http_method = "POST"
    o.http_request_uri = "/jobs/{jobId}/targets"
    o.input = Shapes::ShapeRef.new(shape: AssociateTargetsWithJobRequest)
    o.output = Shapes::ShapeRef.new(shape: AssociateTargetsWithJobResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:attach_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AttachPolicy"
    o.http_method = "PUT"
    o.http_request_uri = "/target-policies/{policyName}"
    o.input = Shapes::ShapeRef.new(shape: AttachPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  end)

  api.add_operation(:attach_principal_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AttachPrincipalPolicy"
    o.http_method = "PUT"
    o.http_request_uri = "/principal-policies/{policyName}"
    o.deprecated = true
    o.input = Shapes::ShapeRef.new(shape: AttachPrincipalPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  end)

  api.add_operation(:attach_security_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AttachSecurityProfile"
    o.http_method = "PUT"
    o.http_request_uri = "/security-profiles/{securityProfileName}/targets"
    o.input = Shapes::ShapeRef.new(shape: AttachSecurityProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: AttachSecurityProfileResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:attach_thing_principal, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AttachThingPrincipal"
    o.http_method = "PUT"
    o.http_request_uri = "/things/{thingName}/principals"
    o.input = Shapes::ShapeRef.new(shape: AttachThingPrincipalRequest)
    o.output = Shapes::ShapeRef.new(shape: AttachThingPrincipalResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:cancel_audit_task, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CancelAuditTask"
    o.http_method = "PUT"
    o.http_request_uri = "/audit/tasks/{taskId}/cancel"
    o.input = Shapes::ShapeRef.new(shape: CancelAuditTaskRequest)
    o.output = Shapes::ShapeRef.new(shape: CancelAuditTaskResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:cancel_certificate_transfer, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CancelCertificateTransfer"
    o.http_method = "PATCH"
    o.http_request_uri = "/cancel-certificate-transfer/{certificateId}"
    o.input = Shapes::ShapeRef.new(shape: CancelCertificateTransferRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: TransferAlreadyCompletedException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:cancel_job, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CancelJob"
    o.http_method = "PUT"
    o.http_request_uri = "/jobs/{jobId}/cancel"
    o.input = Shapes::ShapeRef.new(shape: CancelJobRequest)
    o.output = Shapes::ShapeRef.new(shape: CancelJobResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:cancel_job_execution, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CancelJobExecution"
    o.http_method = "PUT"
    o.http_request_uri = "/things/{thingName}/jobs/{jobId}/cancel"
    o.input = Shapes::ShapeRef.new(shape: CancelJobExecutionRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidStateTransitionException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
  end)

  api.add_operation(:clear_default_authorizer, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ClearDefaultAuthorizer"
    o.http_method = "DELETE"
    o.http_request_uri = "/default-authorizer"
    o.input = Shapes::ShapeRef.new(shape: ClearDefaultAuthorizerRequest)
    o.output = Shapes::ShapeRef.new(shape: ClearDefaultAuthorizerResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:create_authorizer, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateAuthorizer"
    o.http_method = "POST"
    o.http_request_uri = "/authorizer/{authorizerName}"
    o.input = Shapes::ShapeRef.new(shape: CreateAuthorizerRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateAuthorizerResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:create_billing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateBillingGroup"
    o.http_method = "POST"
    o.http_request_uri = "/billing-groups/{billingGroupName}"
    o.input = Shapes::ShapeRef.new(shape: CreateBillingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateBillingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:create_certificate_from_csr, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateCertificateFromCsr"
    o.http_method = "POST"
    o.http_request_uri = "/certificates"
    o.input = Shapes::ShapeRef.new(shape: CreateCertificateFromCsrRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateCertificateFromCsrResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:create_dynamic_thing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateDynamicThingGroup"
    o.http_method = "POST"
    o.http_request_uri = "/dynamic-thing-groups/{thingGroupName}"
    o.input = Shapes::ShapeRef.new(shape: CreateDynamicThingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateDynamicThingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidQueryException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  end)

  api.add_operation(:create_job, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateJob"
    o.http_method = "PUT"
    o.http_request_uri = "/jobs/{jobId}"
    o.input = Shapes::ShapeRef.new(shape: CreateJobRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateJobResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:create_keys_and_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateKeysAndCertificate"
    o.http_method = "POST"
    o.http_request_uri = "/keys-and-certificate"
    o.input = Shapes::ShapeRef.new(shape: CreateKeysAndCertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateKeysAndCertificateResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:create_ota_update, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateOTAUpdate"
    o.http_method = "POST"
    o.http_request_uri = "/otaUpdates/{otaUpdateId}"
    o.input = Shapes::ShapeRef.new(shape: CreateOTAUpdateRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateOTAUpdateResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:create_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreatePolicy"
    o.http_method = "POST"
    o.http_request_uri = "/policies/{policyName}"
    o.input = Shapes::ShapeRef.new(shape: CreatePolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: CreatePolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: MalformedPolicyException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:create_policy_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreatePolicyVersion"
    o.http_method = "POST"
    o.http_request_uri = "/policies/{policyName}/version"
    o.input = Shapes::ShapeRef.new(shape: CreatePolicyVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: CreatePolicyVersionResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: MalformedPolicyException)
    o.errors << Shapes::ShapeRef.new(shape: VersionsLimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:create_role_alias, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateRoleAlias"
    o.http_method = "POST"
    o.http_request_uri = "/role-aliases/{roleAlias}"
    o.input = Shapes::ShapeRef.new(shape: CreateRoleAliasRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateRoleAliasResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:create_scheduled_audit, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateScheduledAudit"
    o.http_method = "POST"
    o.http_request_uri = "/audit/scheduledaudits/{scheduledAuditName}"
    o.input = Shapes::ShapeRef.new(shape: CreateScheduledAuditRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateScheduledAuditResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  end)

  api.add_operation(:create_security_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateSecurityProfile"
    o.http_method = "POST"
    o.http_request_uri = "/security-profiles/{securityProfileName}"
    o.input = Shapes::ShapeRef.new(shape: CreateSecurityProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateSecurityProfileResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:create_stream, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateStream"
    o.http_method = "POST"
    o.http_request_uri = "/streams/{streamId}"
    o.input = Shapes::ShapeRef.new(shape: CreateStreamRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateStreamResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:create_thing, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateThing"
    o.http_method = "POST"
    o.http_request_uri = "/things/{thingName}"
    o.input = Shapes::ShapeRef.new(shape: CreateThingRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateThingResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:create_thing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateThingGroup"
    o.http_method = "POST"
    o.http_request_uri = "/thing-groups/{thingGroupName}"
    o.input = Shapes::ShapeRef.new(shape: CreateThingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateThingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:create_thing_type, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateThingType"
    o.http_method = "POST"
    o.http_request_uri = "/thing-types/{thingTypeName}"
    o.input = Shapes::ShapeRef.new(shape: CreateThingTypeRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateThingTypeResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
  end)

  api.add_operation(:create_topic_rule, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateTopicRule"
    o.http_method = "POST"
    o.http_request_uri = "/rules/{ruleName}"
    o.input = Shapes::ShapeRef.new(shape: CreateTopicRuleRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: SqlParseException)
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictingResourceUpdateException)
  end)

  api.add_operation(:delete_account_audit_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteAccountAuditConfiguration"
    o.http_method = "DELETE"
    o.http_request_uri = "/audit/configuration"
    o.input = Shapes::ShapeRef.new(shape: DeleteAccountAuditConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteAccountAuditConfigurationResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:delete_authorizer, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteAuthorizer"
    o.http_method = "DELETE"
    o.http_request_uri = "/authorizer/{authorizerName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteAuthorizerRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteAuthorizerResponse)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:delete_billing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteBillingGroup"
    o.http_method = "DELETE"
    o.http_request_uri = "/billing-groups/{billingGroupName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteBillingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteBillingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:delete_ca_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteCACertificate"
    o.http_method = "DELETE"
    o.http_request_uri = "/cacertificate/{caCertificateId}"
    o.input = Shapes::ShapeRef.new(shape: DeleteCACertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteCACertificateResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: CertificateStateException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:delete_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteCertificate"
    o.http_method = "DELETE"
    o.http_request_uri = "/certificates/{certificateId}"
    o.input = Shapes::ShapeRef.new(shape: DeleteCertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: CertificateStateException)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:delete_dynamic_thing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteDynamicThingGroup"
    o.http_method = "DELETE"
    o.http_request_uri = "/dynamic-thing-groups/{thingGroupName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteDynamicThingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteDynamicThingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:delete_job, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteJob"
    o.http_method = "DELETE"
    o.http_request_uri = "/jobs/{jobId}"
    o.input = Shapes::ShapeRef.new(shape: DeleteJobRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidStateTransitionException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:delete_job_execution, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteJobExecution"
    o.http_method = "DELETE"
    o.http_request_uri = "/things/{thingName}/jobs/{jobId}/executionNumber/{executionNumber}"
    o.input = Shapes::ShapeRef.new(shape: DeleteJobExecutionRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidStateTransitionException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:delete_ota_update, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteOTAUpdate"
    o.http_method = "DELETE"
    o.http_request_uri = "/otaUpdates/{otaUpdateId}"
    o.input = Shapes::ShapeRef.new(shape: DeleteOTAUpdateRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteOTAUpdateResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
  end)

  api.add_operation(:delete_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeletePolicy"
    o.http_method = "DELETE"
    o.http_request_uri = "/policies/{policyName}"
    o.input = Shapes::ShapeRef.new(shape: DeletePolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:delete_policy_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeletePolicyVersion"
    o.http_method = "DELETE"
    o.http_request_uri = "/policies/{policyName}/version/{policyVersionId}"
    o.input = Shapes::ShapeRef.new(shape: DeletePolicyVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:delete_registration_code, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteRegistrationCode"
    o.http_method = "DELETE"
    o.http_request_uri = "/registrationcode"
    o.input = Shapes::ShapeRef.new(shape: DeleteRegistrationCodeRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteRegistrationCodeResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:delete_role_alias, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteRoleAlias"
    o.http_method = "DELETE"
    o.http_request_uri = "/role-aliases/{roleAlias}"
    o.input = Shapes::ShapeRef.new(shape: DeleteRoleAliasRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteRoleAliasResponse)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:delete_scheduled_audit, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteScheduledAudit"
    o.http_method = "DELETE"
    o.http_request_uri = "/audit/scheduledaudits/{scheduledAuditName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteScheduledAuditRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteScheduledAuditResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:delete_security_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteSecurityProfile"
    o.http_method = "DELETE"
    o.http_request_uri = "/security-profiles/{securityProfileName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteSecurityProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteSecurityProfileResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
  end)

  api.add_operation(:delete_stream, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteStream"
    o.http_method = "DELETE"
    o.http_request_uri = "/streams/{streamId}"
    o.input = Shapes::ShapeRef.new(shape: DeleteStreamRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteStreamResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:delete_thing, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteThing"
    o.http_method = "DELETE"
    o.http_request_uri = "/things/{thingName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteThingRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteThingResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:delete_thing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteThingGroup"
    o.http_method = "DELETE"
    o.http_request_uri = "/thing-groups/{thingGroupName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteThingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteThingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:delete_thing_type, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteThingType"
    o.http_method = "DELETE"
    o.http_request_uri = "/thing-types/{thingTypeName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteThingTypeRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteThingTypeResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:delete_topic_rule, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteTopicRule"
    o.http_method = "DELETE"
    o.http_request_uri = "/rules/{ruleName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteTopicRuleRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictingResourceUpdateException)
  end)

  api.add_operation(:delete_v2_logging_level, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteV2LoggingLevel"
    o.http_method = "DELETE"
    o.http_request_uri = "/v2LoggingLevel"
    o.input = Shapes::ShapeRef.new(shape: DeleteV2LoggingLevelRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:deprecate_thing_type, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeprecateThingType"
    o.http_method = "POST"
    o.http_request_uri = "/thing-types/{thingTypeName}/deprecate"
    o.input = Shapes::ShapeRef.new(shape: DeprecateThingTypeRequest)
    o.output = Shapes::ShapeRef.new(shape: DeprecateThingTypeResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:describe_account_audit_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeAccountAuditConfiguration"
    o.http_method = "GET"
    o.http_request_uri = "/audit/configuration"
    o.input = Shapes::ShapeRef.new(shape: DescribeAccountAuditConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeAccountAuditConfigurationResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:describe_audit_task, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeAuditTask"
    o.http_method = "GET"
    o.http_request_uri = "/audit/tasks/{taskId}"
    o.input = Shapes::ShapeRef.new(shape: DescribeAuditTaskRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeAuditTaskResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:describe_authorizer, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeAuthorizer"
    o.http_method = "GET"
    o.http_request_uri = "/authorizer/{authorizerName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeAuthorizerRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeAuthorizerResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:describe_billing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeBillingGroup"
    o.http_method = "GET"
    o.http_request_uri = "/billing-groups/{billingGroupName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeBillingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeBillingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:describe_ca_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeCACertificate"
    o.http_method = "GET"
    o.http_request_uri = "/cacertificate/{caCertificateId}"
    o.input = Shapes::ShapeRef.new(shape: DescribeCACertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeCACertificateResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:describe_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeCertificate"
    o.http_method = "GET"
    o.http_request_uri = "/certificates/{certificateId}"
    o.input = Shapes::ShapeRef.new(shape: DescribeCertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeCertificateResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:describe_default_authorizer, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeDefaultAuthorizer"
    o.http_method = "GET"
    o.http_request_uri = "/default-authorizer"
    o.input = Shapes::ShapeRef.new(shape: DescribeDefaultAuthorizerRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeDefaultAuthorizerResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:describe_endpoint, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeEndpoint"
    o.http_method = "GET"
    o.http_request_uri = "/endpoint"
    o.input = Shapes::ShapeRef.new(shape: DescribeEndpointRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeEndpointResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
  end)

  api.add_operation(:describe_event_configurations, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeEventConfigurations"
    o.http_method = "GET"
    o.http_request_uri = "/event-configurations"
    o.input = Shapes::ShapeRef.new(shape: DescribeEventConfigurationsRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeEventConfigurationsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
  end)

  api.add_operation(:describe_index, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeIndex"
    o.http_method = "GET"
    o.http_request_uri = "/indices/{indexName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeIndexRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeIndexResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:describe_job, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeJob"
    o.http_method = "GET"
    o.http_request_uri = "/jobs/{jobId}"
    o.input = Shapes::ShapeRef.new(shape: DescribeJobRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeJobResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:describe_job_execution, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeJobExecution"
    o.http_method = "GET"
    o.http_request_uri = "/things/{thingName}/jobs/{jobId}"
    o.input = Shapes::ShapeRef.new(shape: DescribeJobExecutionRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeJobExecutionResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:describe_role_alias, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeRoleAlias"
    o.http_method = "GET"
    o.http_request_uri = "/role-aliases/{roleAlias}"
    o.input = Shapes::ShapeRef.new(shape: DescribeRoleAliasRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeRoleAliasResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:describe_scheduled_audit, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeScheduledAudit"
    o.http_method = "GET"
    o.http_request_uri = "/audit/scheduledaudits/{scheduledAuditName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeScheduledAuditRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeScheduledAuditResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:describe_security_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeSecurityProfile"
    o.http_method = "GET"
    o.http_request_uri = "/security-profiles/{securityProfileName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeSecurityProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeSecurityProfileResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:describe_stream, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeStream"
    o.http_method = "GET"
    o.http_request_uri = "/streams/{streamId}"
    o.input = Shapes::ShapeRef.new(shape: DescribeStreamRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeStreamResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:describe_thing, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeThing"
    o.http_method = "GET"
    o.http_request_uri = "/things/{thingName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeThingRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeThingResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:describe_thing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeThingGroup"
    o.http_method = "GET"
    o.http_request_uri = "/thing-groups/{thingGroupName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeThingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeThingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:describe_thing_registration_task, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeThingRegistrationTask"
    o.http_method = "GET"
    o.http_request_uri = "/thing-registration-tasks/{taskId}"
    o.input = Shapes::ShapeRef.new(shape: DescribeThingRegistrationTaskRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeThingRegistrationTaskResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:describe_thing_type, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeThingType"
    o.http_method = "GET"
    o.http_request_uri = "/thing-types/{thingTypeName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeThingTypeRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeThingTypeResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:detach_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DetachPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/target-policies/{policyName}"
    o.input = Shapes::ShapeRef.new(shape: DetachPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  end)

  api.add_operation(:detach_principal_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DetachPrincipalPolicy"
    o.http_method = "DELETE"
    o.http_request_uri = "/principal-policies/{policyName}"
    o.deprecated = true
    o.input = Shapes::ShapeRef.new(shape: DetachPrincipalPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:detach_security_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DetachSecurityProfile"
    o.http_method = "DELETE"
    o.http_request_uri = "/security-profiles/{securityProfileName}/targets"
    o.input = Shapes::ShapeRef.new(shape: DetachSecurityProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: DetachSecurityProfileResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:detach_thing_principal, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DetachThingPrincipal"
    o.http_method = "DELETE"
    o.http_request_uri = "/things/{thingName}/principals"
    o.input = Shapes::ShapeRef.new(shape: DetachThingPrincipalRequest)
    o.output = Shapes::ShapeRef.new(shape: DetachThingPrincipalResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:disable_topic_rule, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DisableTopicRule"
    o.http_method = "POST"
    o.http_request_uri = "/rules/{ruleName}/disable"
    o.input = Shapes::ShapeRef.new(shape: DisableTopicRuleRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictingResourceUpdateException)
  end)

  api.add_operation(:enable_topic_rule, Seahorse::Model::Operation.new.tap do |o|
    o.name = "EnableTopicRule"
    o.http_method = "POST"
    o.http_request_uri = "/rules/{ruleName}/enable"
    o.input = Shapes::ShapeRef.new(shape: EnableTopicRuleRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictingResourceUpdateException)
  end)

  api.add_operation(:get_effective_policies, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetEffectivePolicies"
    o.http_method = "POST"
    o.http_request_uri = "/effective-policies"
    o.input = Shapes::ShapeRef.new(shape: GetEffectivePoliciesRequest)
    o.output = Shapes::ShapeRef.new(shape: GetEffectivePoliciesResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  end)

  api.add_operation(:get_indexing_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetIndexingConfiguration"
    o.http_method = "GET"
    o.http_request_uri = "/indexing/config"
    o.input = Shapes::ShapeRef.new(shape: GetIndexingConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: GetIndexingConfigurationResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:get_job_document, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetJobDocument"
    o.http_method = "GET"
    o.http_request_uri = "/jobs/{jobId}/job-document"
    o.input = Shapes::ShapeRef.new(shape: GetJobDocumentRequest)
    o.output = Shapes::ShapeRef.new(shape: GetJobDocumentResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:get_logging_options, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetLoggingOptions"
    o.http_method = "GET"
    o.http_request_uri = "/loggingOptions"
    o.input = Shapes::ShapeRef.new(shape: GetLoggingOptionsRequest)
    o.output = Shapes::ShapeRef.new(shape: GetLoggingOptionsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:get_ota_update, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetOTAUpdate"
    o.http_method = "GET"
    o.http_request_uri = "/otaUpdates/{otaUpdateId}"
    o.input = Shapes::ShapeRef.new(shape: GetOTAUpdateRequest)
    o.output = Shapes::ShapeRef.new(shape: GetOTAUpdateResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:get_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetPolicy"
    o.http_method = "GET"
    o.http_request_uri = "/policies/{policyName}"
    o.input = Shapes::ShapeRef.new(shape: GetPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: GetPolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:get_policy_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetPolicyVersion"
    o.http_method = "GET"
    o.http_request_uri = "/policies/{policyName}/version/{policyVersionId}"
    o.input = Shapes::ShapeRef.new(shape: GetPolicyVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: GetPolicyVersionResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:get_registration_code, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetRegistrationCode"
    o.http_method = "GET"
    o.http_request_uri = "/registrationcode"
    o.input = Shapes::ShapeRef.new(shape: GetRegistrationCodeRequest)
    o.output = Shapes::ShapeRef.new(shape: GetRegistrationCodeResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
  end)

  api.add_operation(:get_topic_rule, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetTopicRule"
    o.http_method = "GET"
    o.http_request_uri = "/rules/{ruleName}"
    o.input = Shapes::ShapeRef.new(shape: GetTopicRuleRequest)
    o.output = Shapes::ShapeRef.new(shape: GetTopicRuleResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
  end)

  api.add_operation(:get_v2_logging_options, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetV2LoggingOptions"
    o.http_method = "GET"
    o.http_request_uri = "/v2LoggingOptions"
    o.input = Shapes::ShapeRef.new(shape: GetV2LoggingOptionsRequest)
    o.output = Shapes::ShapeRef.new(shape: GetV2LoggingOptionsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: NotConfiguredException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:list_active_violations, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListActiveViolations"
    o.http_method = "GET"
    o.http_request_uri = "/active-violations"
    o.input = Shapes::ShapeRef.new(shape: ListActiveViolationsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListActiveViolationsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_attached_policies, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListAttachedPolicies"
    o.http_method = "POST"
    o.http_request_uri = "/attached-policies/{target}"
    o.input = Shapes::ShapeRef.new(shape: ListAttachedPoliciesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListAttachedPoliciesResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  end)

  api.add_operation(:list_audit_findings, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListAuditFindings"
    o.http_method = "POST"
    o.http_request_uri = "/audit/findings"
    o.input = Shapes::ShapeRef.new(shape: ListAuditFindingsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListAuditFindingsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_audit_tasks, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListAuditTasks"
    o.http_method = "GET"
    o.http_request_uri = "/audit/tasks"
    o.input = Shapes::ShapeRef.new(shape: ListAuditTasksRequest)
    o.output = Shapes::ShapeRef.new(shape: ListAuditTasksResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_authorizers, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListAuthorizers"
    o.http_method = "GET"
    o.http_request_uri = "/authorizers/"
    o.input = Shapes::ShapeRef.new(shape: ListAuthorizersRequest)
    o.output = Shapes::ShapeRef.new(shape: ListAuthorizersResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_billing_groups, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListBillingGroups"
    o.http_method = "GET"
    o.http_request_uri = "/billing-groups"
    o.input = Shapes::ShapeRef.new(shape: ListBillingGroupsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListBillingGroupsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
  end)

  api.add_operation(:list_ca_certificates, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListCACertificates"
    o.http_method = "GET"
    o.http_request_uri = "/cacertificates"
    o.input = Shapes::ShapeRef.new(shape: ListCACertificatesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListCACertificatesResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_certificates, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListCertificates"
    o.http_method = "GET"
    o.http_request_uri = "/certificates"
    o.input = Shapes::ShapeRef.new(shape: ListCertificatesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListCertificatesResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_certificates_by_ca, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListCertificatesByCA"
    o.http_method = "GET"
    o.http_request_uri = "/certificates-by-ca/{caCertificateId}"
    o.input = Shapes::ShapeRef.new(shape: ListCertificatesByCARequest)
    o.output = Shapes::ShapeRef.new(shape: ListCertificatesByCAResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_indices, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListIndices"
    o.http_method = "GET"
    o.http_request_uri = "/indices"
    o.input = Shapes::ShapeRef.new(shape: ListIndicesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListIndicesResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_job_executions_for_job, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListJobExecutionsForJob"
    o.http_method = "GET"
    o.http_request_uri = "/jobs/{jobId}/things"
    o.input = Shapes::ShapeRef.new(shape: ListJobExecutionsForJobRequest)
    o.output = Shapes::ShapeRef.new(shape: ListJobExecutionsForJobResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:list_job_executions_for_thing, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListJobExecutionsForThing"
    o.http_method = "GET"
    o.http_request_uri = "/things/{thingName}/jobs"
    o.input = Shapes::ShapeRef.new(shape: ListJobExecutionsForThingRequest)
    o.output = Shapes::ShapeRef.new(shape: ListJobExecutionsForThingResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:list_jobs, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListJobs"
    o.http_method = "GET"
    o.http_request_uri = "/jobs"
    o.input = Shapes::ShapeRef.new(shape: ListJobsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListJobsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:list_ota_updates, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListOTAUpdates"
    o.http_method = "GET"
    o.http_request_uri = "/otaUpdates"
    o.input = Shapes::ShapeRef.new(shape: ListOTAUpdatesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListOTAUpdatesResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:list_outgoing_certificates, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListOutgoingCertificates"
    o.http_method = "GET"
    o.http_request_uri = "/certificates-out-going"
    o.input = Shapes::ShapeRef.new(shape: ListOutgoingCertificatesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListOutgoingCertificatesResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_policies, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListPolicies"
    o.http_method = "GET"
    o.http_request_uri = "/policies"
    o.input = Shapes::ShapeRef.new(shape: ListPoliciesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListPoliciesResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_policy_principals, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListPolicyPrincipals"
    o.http_method = "GET"
    o.http_request_uri = "/policy-principals"
    o.deprecated = true
    o.input = Shapes::ShapeRef.new(shape: ListPolicyPrincipalsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListPolicyPrincipalsResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_policy_versions, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListPolicyVersions"
    o.http_method = "GET"
    o.http_request_uri = "/policies/{policyName}/version"
    o.input = Shapes::ShapeRef.new(shape: ListPolicyVersionsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListPolicyVersionsResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_principal_policies, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListPrincipalPolicies"
    o.http_method = "GET"
    o.http_request_uri = "/principal-policies"
    o.deprecated = true
    o.input = Shapes::ShapeRef.new(shape: ListPrincipalPoliciesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListPrincipalPoliciesResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_principal_things, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListPrincipalThings"
    o.http_method = "GET"
    o.http_request_uri = "/principals/things"
    o.input = Shapes::ShapeRef.new(shape: ListPrincipalThingsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListPrincipalThingsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:list_role_aliases, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListRoleAliases"
    o.http_method = "GET"
    o.http_request_uri = "/role-aliases"
    o.input = Shapes::ShapeRef.new(shape: ListRoleAliasesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListRoleAliasesResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_scheduled_audits, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListScheduledAudits"
    o.http_method = "GET"
    o.http_request_uri = "/audit/scheduledaudits"
    o.input = Shapes::ShapeRef.new(shape: ListScheduledAuditsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListScheduledAuditsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_security_profiles, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListSecurityProfiles"
    o.http_method = "GET"
    o.http_request_uri = "/security-profiles"
    o.input = Shapes::ShapeRef.new(shape: ListSecurityProfilesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListSecurityProfilesResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_security_profiles_for_target, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListSecurityProfilesForTarget"
    o.http_method = "GET"
    o.http_request_uri = "/security-profiles-for-target"
    o.input = Shapes::ShapeRef.new(shape: ListSecurityProfilesForTargetRequest)
    o.output = Shapes::ShapeRef.new(shape: ListSecurityProfilesForTargetResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:list_streams, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListStreams"
    o.http_method = "GET"
    o.http_request_uri = "/streams"
    o.input = Shapes::ShapeRef.new(shape: ListStreamsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListStreamsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListTagsForResource"
    o.http_method = "GET"
    o.http_request_uri = "/tags"
    o.input = Shapes::ShapeRef.new(shape: ListTagsForResourceRequest)
    o.output = Shapes::ShapeRef.new(shape: ListTagsForResourceResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
  end)

  api.add_operation(:list_targets_for_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListTargetsForPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/policy-targets/{policyName}"
    o.input = Shapes::ShapeRef.new(shape: ListTargetsForPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: ListTargetsForPolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  end)

  api.add_operation(:list_targets_for_security_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListTargetsForSecurityProfile"
    o.http_method = "GET"
    o.http_request_uri = "/security-profiles/{securityProfileName}/targets"
    o.input = Shapes::ShapeRef.new(shape: ListTargetsForSecurityProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: ListTargetsForSecurityProfileResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_thing_groups, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListThingGroups"
    o.http_method = "GET"
    o.http_request_uri = "/thing-groups"
    o.input = Shapes::ShapeRef.new(shape: ListThingGroupsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListThingGroupsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:list_thing_groups_for_thing, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListThingGroupsForThing"
    o.http_method = "GET"
    o.http_request_uri = "/things/{thingName}/thing-groups"
    o.input = Shapes::ShapeRef.new(shape: ListThingGroupsForThingRequest)
    o.output = Shapes::ShapeRef.new(shape: ListThingGroupsForThingResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:list_thing_principals, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListThingPrincipals"
    o.http_method = "GET"
    o.http_request_uri = "/things/{thingName}/principals"
    o.input = Shapes::ShapeRef.new(shape: ListThingPrincipalsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListThingPrincipalsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:list_thing_registration_task_reports, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListThingRegistrationTaskReports"
    o.http_method = "GET"
    o.http_request_uri = "/thing-registration-tasks/{taskId}/reports"
    o.input = Shapes::ShapeRef.new(shape: ListThingRegistrationTaskReportsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListThingRegistrationTaskReportsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_thing_registration_tasks, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListThingRegistrationTasks"
    o.http_method = "GET"
    o.http_request_uri = "/thing-registration-tasks"
    o.input = Shapes::ShapeRef.new(shape: ListThingRegistrationTasksRequest)
    o.output = Shapes::ShapeRef.new(shape: ListThingRegistrationTasksResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_thing_types, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListThingTypes"
    o.http_method = "GET"
    o.http_request_uri = "/thing-types"
    o.input = Shapes::ShapeRef.new(shape: ListThingTypesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListThingTypesResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_things, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListThings"
    o.http_method = "GET"
    o.http_request_uri = "/things"
    o.input = Shapes::ShapeRef.new(shape: ListThingsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListThingsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:list_things_in_billing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListThingsInBillingGroup"
    o.http_method = "GET"
    o.http_request_uri = "/billing-groups/{billingGroupName}/things"
    o.input = Shapes::ShapeRef.new(shape: ListThingsInBillingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: ListThingsInBillingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
  end)

  api.add_operation(:list_things_in_thing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListThingsInThingGroup"
    o.http_method = "GET"
    o.http_request_uri = "/thing-groups/{thingGroupName}/things"
    o.input = Shapes::ShapeRef.new(shape: ListThingsInThingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: ListThingsInThingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:list_topic_rules, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListTopicRules"
    o.http_method = "GET"
    o.http_request_uri = "/rules"
    o.input = Shapes::ShapeRef.new(shape: ListTopicRulesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListTopicRulesResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:list_v2_logging_levels, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListV2LoggingLevels"
    o.http_method = "GET"
    o.http_request_uri = "/v2LoggingLevel"
    o.input = Shapes::ShapeRef.new(shape: ListV2LoggingLevelsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListV2LoggingLevelsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: NotConfiguredException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:list_violation_events, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListViolationEvents"
    o.http_method = "GET"
    o.http_request_uri = "/violation-events"
    o.input = Shapes::ShapeRef.new(shape: ListViolationEventsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListViolationEventsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:register_ca_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "RegisterCACertificate"
    o.http_method = "POST"
    o.http_request_uri = "/cacertificate"
    o.input = Shapes::ShapeRef.new(shape: RegisterCACertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: RegisterCACertificateResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: RegistrationCodeValidationException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: CertificateValidationException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:register_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "RegisterCertificate"
    o.http_method = "POST"
    o.http_request_uri = "/certificate/register"
    o.input = Shapes::ShapeRef.new(shape: RegisterCertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: RegisterCertificateResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: CertificateValidationException)
    o.errors << Shapes::ShapeRef.new(shape: CertificateStateException)
    o.errors << Shapes::ShapeRef.new(shape: CertificateConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:register_thing, Seahorse::Model::Operation.new.tap do |o|
    o.name = "RegisterThing"
    o.http_method = "POST"
    o.http_request_uri = "/things"
    o.input = Shapes::ShapeRef.new(shape: RegisterThingRequest)
    o.output = Shapes::ShapeRef.new(shape: RegisterThingResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictingResourceUpdateException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceRegistrationFailureException)
  end)

  api.add_operation(:reject_certificate_transfer, Seahorse::Model::Operation.new.tap do |o|
    o.name = "RejectCertificateTransfer"
    o.http_method = "PATCH"
    o.http_request_uri = "/reject-certificate-transfer/{certificateId}"
    o.input = Shapes::ShapeRef.new(shape: RejectCertificateTransferRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: TransferAlreadyCompletedException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:remove_thing_from_billing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "RemoveThingFromBillingGroup"
    o.http_method = "PUT"
    o.http_request_uri = "/billing-groups/removeThingFromBillingGroup"
    o.input = Shapes::ShapeRef.new(shape: RemoveThingFromBillingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: RemoveThingFromBillingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:remove_thing_from_thing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "RemoveThingFromThingGroup"
    o.http_method = "PUT"
    o.http_request_uri = "/thing-groups/removeThingFromThingGroup"
    o.input = Shapes::ShapeRef.new(shape: RemoveThingFromThingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: RemoveThingFromThingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:replace_topic_rule, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ReplaceTopicRule"
    o.http_method = "PATCH"
    o.http_request_uri = "/rules/{ruleName}"
    o.input = Shapes::ShapeRef.new(shape: ReplaceTopicRuleRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: SqlParseException)
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictingResourceUpdateException)
  end)

  api.add_operation(:search_index, Seahorse::Model::Operation.new.tap do |o|
    o.name = "SearchIndex"
    o.http_method = "POST"
    o.http_request_uri = "/indices/search"
    o.input = Shapes::ShapeRef.new(shape: SearchIndexRequest)
    o.output = Shapes::ShapeRef.new(shape: SearchIndexResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidQueryException)
    o.errors << Shapes::ShapeRef.new(shape: IndexNotReadyException)
  end)

  api.add_operation(:set_default_authorizer, Seahorse::Model::Operation.new.tap do |o|
    o.name = "SetDefaultAuthorizer"
    o.http_method = "POST"
    o.http_request_uri = "/default-authorizer"
    o.input = Shapes::ShapeRef.new(shape: SetDefaultAuthorizerRequest)
    o.output = Shapes::ShapeRef.new(shape: SetDefaultAuthorizerResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
  end)

  api.add_operation(:set_default_policy_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "SetDefaultPolicyVersion"
    o.http_method = "PATCH"
    o.http_request_uri = "/policies/{policyName}/version/{policyVersionId}"
    o.input = Shapes::ShapeRef.new(shape: SetDefaultPolicyVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:set_logging_options, Seahorse::Model::Operation.new.tap do |o|
    o.name = "SetLoggingOptions"
    o.http_method = "POST"
    o.http_request_uri = "/loggingOptions"
    o.input = Shapes::ShapeRef.new(shape: SetLoggingOptionsRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:set_v2_logging_level, Seahorse::Model::Operation.new.tap do |o|
    o.name = "SetV2LoggingLevel"
    o.http_method = "POST"
    o.http_request_uri = "/v2LoggingLevel"
    o.input = Shapes::ShapeRef.new(shape: SetV2LoggingLevelRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: NotConfiguredException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:set_v2_logging_options, Seahorse::Model::Operation.new.tap do |o|
    o.name = "SetV2LoggingOptions"
    o.http_method = "POST"
    o.http_request_uri = "/v2LoggingOptions"
    o.input = Shapes::ShapeRef.new(shape: SetV2LoggingOptionsRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InternalException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:start_on_demand_audit_task, Seahorse::Model::Operation.new.tap do |o|
    o.name = "StartOnDemandAuditTask"
    o.http_method = "POST"
    o.http_request_uri = "/audit/tasks"
    o.input = Shapes::ShapeRef.new(shape: StartOnDemandAuditTaskRequest)
    o.output = Shapes::ShapeRef.new(shape: StartOnDemandAuditTaskResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  end)

  api.add_operation(:start_thing_registration_task, Seahorse::Model::Operation.new.tap do |o|
    o.name = "StartThingRegistrationTask"
    o.http_method = "POST"
    o.http_request_uri = "/thing-registration-tasks"
    o.input = Shapes::ShapeRef.new(shape: StartThingRegistrationTaskRequest)
    o.output = Shapes::ShapeRef.new(shape: StartThingRegistrationTaskResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:stop_thing_registration_task, Seahorse::Model::Operation.new.tap do |o|
    o.name = "StopThingRegistrationTask"
    o.http_method = "PUT"
    o.http_request_uri = "/thing-registration-tasks/{taskId}/cancel"
    o.input = Shapes::ShapeRef.new(shape: StopThingRegistrationTaskRequest)
    o.output = Shapes::ShapeRef.new(shape: StopThingRegistrationTaskResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
    o.name = "TagResource"
    o.http_method = "POST"
    o.http_request_uri = "/tags"
    o.input = Shapes::ShapeRef.new(shape: TagResourceRequest)
    o.output = Shapes::ShapeRef.new(shape: TagResourceResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  end)

  api.add_operation(:test_authorization, Seahorse::Model::Operation.new.tap do |o|
    o.name = "TestAuthorization"
    o.http_method = "POST"
    o.http_request_uri = "/test-authorization"
    o.input = Shapes::ShapeRef.new(shape: TestAuthorizationRequest)
    o.output = Shapes::ShapeRef.new(shape: TestAuthorizationResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  end)

  api.add_operation(:test_invoke_authorizer, Seahorse::Model::Operation.new.tap do |o|
    o.name = "TestInvokeAuthorizer"
    o.http_method = "POST"
    o.http_request_uri = "/authorizer/{authorizerName}/test"
    o.input = Shapes::ShapeRef.new(shape: TestInvokeAuthorizerRequest)
    o.output = Shapes::ShapeRef.new(shape: TestInvokeAuthorizerResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidResponseException)
  end)

  api.add_operation(:transfer_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "TransferCertificate"
    o.http_method = "PATCH"
    o.http_request_uri = "/transfer-certificate/{certificateId}"
    o.input = Shapes::ShapeRef.new(shape: TransferCertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: TransferCertificateResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: CertificateStateException)
    o.errors << Shapes::ShapeRef.new(shape: TransferConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UntagResource"
    o.http_method = "POST"
    o.http_request_uri = "/untag"
    o.input = Shapes::ShapeRef.new(shape: UntagResourceRequest)
    o.output = Shapes::ShapeRef.new(shape: UntagResourceResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
  end)

  api.add_operation(:update_account_audit_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateAccountAuditConfiguration"
    o.http_method = "PATCH"
    o.http_request_uri = "/audit/configuration"
    o.input = Shapes::ShapeRef.new(shape: UpdateAccountAuditConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateAccountAuditConfigurationResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:update_authorizer, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateAuthorizer"
    o.http_method = "PUT"
    o.http_request_uri = "/authorizer/{authorizerName}"
    o.input = Shapes::ShapeRef.new(shape: UpdateAuthorizerRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateAuthorizerResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:update_billing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateBillingGroup"
    o.http_method = "PATCH"
    o.http_request_uri = "/billing-groups/{billingGroupName}"
    o.input = Shapes::ShapeRef.new(shape: UpdateBillingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateBillingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:update_ca_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateCACertificate"
    o.http_method = "PUT"
    o.http_request_uri = "/cacertificate/{caCertificateId}"
    o.input = Shapes::ShapeRef.new(shape: UpdateCACertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:update_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateCertificate"
    o.http_method = "PUT"
    o.http_request_uri = "/certificates/{certificateId}"
    o.input = Shapes::ShapeRef.new(shape: UpdateCertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: CertificateStateException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:update_dynamic_thing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateDynamicThingGroup"
    o.http_method = "PATCH"
    o.http_request_uri = "/dynamic-thing-groups/{thingGroupName}"
    o.input = Shapes::ShapeRef.new(shape: UpdateDynamicThingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateDynamicThingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidQueryException)
  end)

  api.add_operation(:update_event_configurations, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateEventConfigurations"
    o.http_method = "PATCH"
    o.http_request_uri = "/event-configurations"
    o.input = Shapes::ShapeRef.new(shape: UpdateEventConfigurationsRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateEventConfigurationsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
  end)

  api.add_operation(:update_indexing_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateIndexingConfiguration"
    o.http_method = "POST"
    o.http_request_uri = "/indexing/config"
    o.input = Shapes::ShapeRef.new(shape: UpdateIndexingConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateIndexingConfigurationResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:update_job, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateJob"
    o.http_method = "PATCH"
    o.http_request_uri = "/jobs/{jobId}"
    o.input = Shapes::ShapeRef.new(shape: UpdateJobRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
  end)

  api.add_operation(:update_role_alias, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateRoleAlias"
    o.http_method = "PUT"
    o.http_request_uri = "/role-aliases/{roleAlias}"
    o.input = Shapes::ShapeRef.new(shape: UpdateRoleAliasRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateRoleAliasResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:update_scheduled_audit, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateScheduledAudit"
    o.http_method = "PATCH"
    o.http_request_uri = "/audit/scheduledaudits/{scheduledAuditName}"
    o.input = Shapes::ShapeRef.new(shape: UpdateScheduledAuditRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateScheduledAuditResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:update_security_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateSecurityProfile"
    o.http_method = "PATCH"
    o.http_request_uri = "/security-profiles/{securityProfileName}"
    o.input = Shapes::ShapeRef.new(shape: UpdateSecurityProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateSecurityProfileResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:update_stream, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateStream"
    o.http_method = "PUT"
    o.http_request_uri = "/streams/{streamId}"
    o.input = Shapes::ShapeRef.new(shape: UpdateStreamRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateStreamResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:update_thing, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateThing"
    o.http_method = "PATCH"
    o.http_request_uri = "/things/{thingName}"
    o.input = Shapes::ShapeRef.new(shape: UpdateThingRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateThingResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:update_thing_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateThingGroup"
    o.http_method = "PATCH"
    o.http_request_uri = "/thing-groups/{thingGroupName}"
    o.input = Shapes::ShapeRef.new(shape: UpdateThingGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateThingGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:update_thing_groups_for_thing, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateThingGroupsForThing"
    o.http_method = "PUT"
    o.http_request_uri = "/thing-groups/updateThingGroupsForThing"
    o.input = Shapes::ShapeRef.new(shape: UpdateThingGroupsForThingRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateThingGroupsForThingResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:validate_security_profile_behaviors, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ValidateSecurityProfileBehaviors"
    o.http_method = "POST"
    o.http_request_uri = "/security-profile-behaviors/validate"
    o.input = Shapes::ShapeRef.new(shape: ValidateSecurityProfileBehaviorsRequest)
    o.output = Shapes::ShapeRef.new(shape: ValidateSecurityProfileBehaviorsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)
end