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')
AcmCertificateArn =

This constant is part 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: 'AcmCertificateArn')
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')
AddThingsToThingGroupParams =

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

Shapes::StructureShape.new(name: 'AddThingsToThingGroupParams')
AdditionalMetricsToRetainList =

This constant is part 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: 'AdditionalMetricsToRetainList')
AdditionalMetricsToRetainV2List =

This constant is part 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: 'AdditionalMetricsToRetainV2List')
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')
AggregationField =

This constant is part 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: 'AggregationField')
AggregationType =

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

Shapes::StructureShape.new(name: 'AggregationType')
AggregationTypeName =

This constant is part 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: 'AggregationTypeName')
AggregationTypeValue =

This constant is part 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: 'AggregationTypeValue')
AggregationTypeValues =

This constant is part 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: 'AggregationTypeValues')
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')
AllowAuthorizerOverride =

This constant is part 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: 'AllowAuthorizerOverride')
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')
AssetId =

This constant is part 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: 'AssetId')
AssetPropertyAlias =

This constant is part 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: 'AssetPropertyAlias')
AssetPropertyBooleanValue =

This constant is part 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: 'AssetPropertyBooleanValue')
AssetPropertyDoubleValue =

This constant is part 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: 'AssetPropertyDoubleValue')
AssetPropertyEntryId =

This constant is part 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: 'AssetPropertyEntryId')
AssetPropertyId =

This constant is part 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: 'AssetPropertyId')
AssetPropertyIntegerValue =

This constant is part 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: 'AssetPropertyIntegerValue')
AssetPropertyOffsetInNanos =

This constant is part 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: 'AssetPropertyOffsetInNanos')
AssetPropertyQuality =

This constant is part 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: 'AssetPropertyQuality')
AssetPropertyStringValue =

This constant is part 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: 'AssetPropertyStringValue')
AssetPropertyTimeInSeconds =

This constant is part 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: 'AssetPropertyTimeInSeconds')
AssetPropertyTimestamp =

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

Shapes::StructureShape.new(name: 'AssetPropertyTimestamp')
AssetPropertyValue =

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

Shapes::StructureShape.new(name: 'AssetPropertyValue')
AssetPropertyValueList =

This constant is part 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: 'AssetPropertyValueList')
AssetPropertyVariant =

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

Shapes::StructureShape.new(name: 'AssetPropertyVariant')
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')
AuditCheckToActionsMapping =

This constant is part 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: 'AuditCheckToActionsMapping')
AuditCheckToReasonCodeFilter =

This constant is part 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: 'AuditCheckToReasonCodeFilter')
AuditDescription =

This constant is part 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: 'AuditDescription')
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')
AuditMitigationActionExecutionMetadata =

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

Shapes::StructureShape.new(name: 'AuditMitigationActionExecutionMetadata')
AuditMitigationActionExecutionMetadataList =

This constant is part 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: 'AuditMitigationActionExecutionMetadataList')
AuditMitigationActionsExecutionStatus =

This constant is part 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: 'AuditMitigationActionsExecutionStatus')
AuditMitigationActionsTaskMetadata =

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

Shapes::StructureShape.new(name: 'AuditMitigationActionsTaskMetadata')
AuditMitigationActionsTaskMetadataList =

This constant is part 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: 'AuditMitigationActionsTaskMetadataList')
AuditMitigationActionsTaskStatistics =

This constant is part 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: 'AuditMitigationActionsTaskStatistics')
AuditMitigationActionsTaskStatus =

This constant is part 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: 'AuditMitigationActionsTaskStatus')
AuditMitigationActionsTaskTarget =

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

Shapes::StructureShape.new(name: 'AuditMitigationActionsTaskTarget')
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')
AuditSuppression =

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

Shapes::StructureShape.new(name: 'AuditSuppression')
AuditSuppressionList =

This constant is part 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: 'AuditSuppressionList')
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')
AuthorizerConfig =

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

Shapes::StructureShape.new(name: 'AuthorizerConfig')
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')
Average =

This constant is part 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: 'Average')
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')
AwsJobAbortConfig =

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

Shapes::StructureShape.new(name: 'AwsJobAbortConfig')
AwsJobAbortCriteria =

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

Shapes::StructureShape.new(name: 'AwsJobAbortCriteria')
AwsJobAbortCriteriaAbortAction =

This constant is part 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: 'AwsJobAbortCriteriaAbortAction')
AwsJobAbortCriteriaAbortThresholdPercentage =

This constant is part 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: 'AwsJobAbortCriteriaAbortThresholdPercentage')
AwsJobAbortCriteriaFailureType =

This constant is part 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: 'AwsJobAbortCriteriaFailureType')
AwsJobAbortCriteriaList =

This constant is part 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: 'AwsJobAbortCriteriaList')
AwsJobAbortCriteriaMinimumNumberOfExecutedThings =

This constant is part 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: 'AwsJobAbortCriteriaMinimumNumberOfExecutedThings')
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')
AwsJobExponentialRolloutRate =

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

Shapes::StructureShape.new(name: 'AwsJobExponentialRolloutRate')
AwsJobPresignedUrlConfig =

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

Shapes::StructureShape.new(name: 'AwsJobPresignedUrlConfig')
AwsJobRateIncreaseCriteria =

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

Shapes::StructureShape.new(name: 'AwsJobRateIncreaseCriteria')
AwsJobRateIncreaseCriteriaNumberOfThings =

This constant is part 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: 'AwsJobRateIncreaseCriteriaNumberOfThings')
AwsJobRolloutIncrementFactor =

This constant is part 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: 'AwsJobRolloutIncrementFactor')
AwsJobRolloutRatePerMinute =

This constant is part 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: 'AwsJobRolloutRatePerMinute')
AwsJobTimeoutConfig =

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

Shapes::StructureShape.new(name: 'AwsJobTimeoutConfig')
AwsJobTimeoutInProgressTimeoutInMinutes =

This constant is part 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: 'AwsJobTimeoutInProgressTimeoutInMinutes')
BatchMode =

This constant is part 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: 'BatchMode')
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')
BehaviorCriteriaType =

This constant is part 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: 'BehaviorCriteriaType')
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')
BehaviorModelTrainingSummaries =

This constant is part 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: 'BehaviorModelTrainingSummaries')
BehaviorModelTrainingSummary =

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

Shapes::StructureShape.new(name: 'BehaviorModelTrainingSummary')
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')
BooleanKey =

This constant is part 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: 'BooleanKey')
BooleanWrapperObject =

This constant is part 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: 'BooleanWrapperObject')
Bucket =

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

Shapes::StructureShape.new(name: 'Bucket')
BucketKeyValue =

This constant is part 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: 'BucketKeyValue')
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')
Buckets =

This constant is part 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: 'Buckets')
BucketsAggregationType =

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

Shapes::StructureShape.new(name: 'BucketsAggregationType')
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')
CACertificateUpdateAction =

This constant is part 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: 'CACertificateUpdateAction')
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')
CancelAuditMitigationActionsTaskRequest =

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

Shapes::StructureShape.new(name: 'CancelAuditMitigationActionsTaskRequest')
CancelAuditMitigationActionsTaskResponse =

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

Shapes::StructureShape.new(name: 'CancelAuditMitigationActionsTaskResponse')
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')
CancelDetectMitigationActionsTaskRequest =

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

Shapes::StructureShape.new(name: 'CancelDetectMitigationActionsTaskRequest')
CancelDetectMitigationActionsTaskResponse =

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

Shapes::StructureShape.new(name: 'CancelDetectMitigationActionsTaskResponse')
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')
CanceledFindingsCount =

This constant is part 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: 'CanceledFindingsCount')
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')
CertificateMode =

This constant is part 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: 'CertificateMode')
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')
CertificateProviderAccountDefaultForOperations =

This constant is part 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: 'CertificateProviderAccountDefaultForOperations')
CertificateProviderArn =

This constant is part 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: 'CertificateProviderArn')
CertificateProviderFunctionArn =

This constant is part 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: 'CertificateProviderFunctionArn')
CertificateProviderName =

This constant is part 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: 'CertificateProviderName')
CertificateProviderOperation =

This constant is part 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: 'CertificateProviderOperation')
CertificateProviderSummary =

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

Shapes::StructureShape.new(name: 'CertificateProviderSummary')
CertificateProviders =

This constant is part 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: 'CertificateProviders')
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')
ClientProperties =

This constant is part 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: 'ClientProperties')
ClientRequestToken =

This constant is part 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: 'ClientRequestToken')
ClientToken =

This constant is part 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: 'ClientToken')
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')
CloudwatchLogsAction =

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

Shapes::StructureShape.new(name: 'CloudwatchLogsAction')
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')
ConfidenceLevel =

This constant is part 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: 'ConfidenceLevel')
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')
ConfirmTopicRuleDestinationRequest =

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

Shapes::StructureShape.new(name: 'ConfirmTopicRuleDestinationRequest')
ConfirmTopicRuleDestinationResponse =

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

Shapes::StructureShape.new(name: 'ConfirmTopicRuleDestinationResponse')
ConfirmationToken =

This constant is part 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: 'ConfirmationToken')
ConflictException =

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

Shapes::StructureShape.new(name: 'ConflictException')
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')
ConsecutiveDatapointsToAlarm =

This constant is part 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: 'ConsecutiveDatapointsToAlarm')
ConsecutiveDatapointsToClear =

This constant is part 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: 'ConsecutiveDatapointsToClear')
ContentType =

This constant is part 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: 'ContentType')
CorrelationData =

This constant is part 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: 'CorrelationData')
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')
CreateAuditSuppressionRequest =

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

Shapes::StructureShape.new(name: 'CreateAuditSuppressionRequest')
CreateAuditSuppressionResponse =

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

Shapes::StructureShape.new(name: 'CreateAuditSuppressionResponse')
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')
CreateCertificateProviderRequest =

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

Shapes::StructureShape.new(name: 'CreateCertificateProviderRequest')
CreateCertificateProviderResponse =

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

Shapes::StructureShape.new(name: 'CreateCertificateProviderResponse')
CreateCustomMetricRequest =

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

Shapes::StructureShape.new(name: 'CreateCustomMetricRequest')
CreateCustomMetricResponse =

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

Shapes::StructureShape.new(name: 'CreateCustomMetricResponse')
CreateDimensionRequest =

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

Shapes::StructureShape.new(name: 'CreateDimensionRequest')
CreateDimensionResponse =

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

Shapes::StructureShape.new(name: 'CreateDimensionResponse')
CreateDomainConfigurationRequest =

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

Shapes::StructureShape.new(name: 'CreateDomainConfigurationRequest')
CreateDomainConfigurationResponse =

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

Shapes::StructureShape.new(name: 'CreateDomainConfigurationResponse')
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')
CreateFleetMetricRequest =

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

Shapes::StructureShape.new(name: 'CreateFleetMetricRequest')
CreateFleetMetricResponse =

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

Shapes::StructureShape.new(name: 'CreateFleetMetricResponse')
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')
CreateJobTemplateRequest =

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

Shapes::StructureShape.new(name: 'CreateJobTemplateRequest')
CreateJobTemplateResponse =

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

Shapes::StructureShape.new(name: 'CreateJobTemplateResponse')
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')
CreateMitigationActionRequest =

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

Shapes::StructureShape.new(name: 'CreateMitigationActionRequest')
CreateMitigationActionResponse =

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

Shapes::StructureShape.new(name: 'CreateMitigationActionResponse')
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')
CreatePackageRequest =

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

Shapes::StructureShape.new(name: 'CreatePackageRequest')
CreatePackageResponse =

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

Shapes::StructureShape.new(name: 'CreatePackageResponse')
CreatePackageVersionRequest =

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

Shapes::StructureShape.new(name: 'CreatePackageVersionRequest')
CreatePackageVersionResponse =

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

Shapes::StructureShape.new(name: 'CreatePackageVersionResponse')
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')
CreateProvisioningClaimRequest =

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

Shapes::StructureShape.new(name: 'CreateProvisioningClaimRequest')
CreateProvisioningClaimResponse =

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

Shapes::StructureShape.new(name: 'CreateProvisioningClaimResponse')
CreateProvisioningTemplateRequest =

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

Shapes::StructureShape.new(name: 'CreateProvisioningTemplateRequest')
CreateProvisioningTemplateResponse =

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

Shapes::StructureShape.new(name: 'CreateProvisioningTemplateResponse')
CreateProvisioningTemplateVersionRequest =

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

Shapes::StructureShape.new(name: 'CreateProvisioningTemplateVersionRequest')
CreateProvisioningTemplateVersionResponse =

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

Shapes::StructureShape.new(name: 'CreateProvisioningTemplateVersionResponse')
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')
CreateTopicRuleDestinationRequest =

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

Shapes::StructureShape.new(name: 'CreateTopicRuleDestinationRequest')
CreateTopicRuleDestinationResponse =

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

Shapes::StructureShape.new(name: 'CreateTopicRuleDestinationResponse')
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')
CronExpression =

This constant is part 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: 'CronExpression')
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')
CustomMetricArn =

This constant is part 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: 'CustomMetricArn')
CustomMetricDisplayName =

This constant is part 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: 'CustomMetricDisplayName')
CustomMetricType =

This constant is part 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: 'CustomMetricType')
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')
DataCollectionPercentage =

This constant is part 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: 'DataCollectionPercentage')
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')
DeleteAdditionalMetricsToRetain =

This constant is part 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: 'DeleteAdditionalMetricsToRetain')
DeleteAlertTargets =

This constant is part 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: 'DeleteAlertTargets')
DeleteAuditSuppressionRequest =

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

Shapes::StructureShape.new(name: 'DeleteAuditSuppressionRequest')
DeleteAuditSuppressionResponse =

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

Shapes::StructureShape.new(name: 'DeleteAuditSuppressionResponse')
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')
DeleteBehaviors =

This constant is part 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: 'DeleteBehaviors')
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')
DeleteCertificateProviderRequest =

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

Shapes::StructureShape.new(name: 'DeleteCertificateProviderRequest')
DeleteCertificateProviderResponse =

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

Shapes::StructureShape.new(name: 'DeleteCertificateProviderResponse')
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')
DeleteCustomMetricRequest =

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

Shapes::StructureShape.new(name: 'DeleteCustomMetricRequest')
DeleteCustomMetricResponse =

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

Shapes::StructureShape.new(name: 'DeleteCustomMetricResponse')
DeleteDimensionRequest =

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

Shapes::StructureShape.new(name: 'DeleteDimensionRequest')
DeleteDimensionResponse =

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

Shapes::StructureShape.new(name: 'DeleteDimensionResponse')
DeleteDomainConfigurationRequest =

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

Shapes::StructureShape.new(name: 'DeleteDomainConfigurationRequest')
DeleteDomainConfigurationResponse =

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

Shapes::StructureShape.new(name: 'DeleteDomainConfigurationResponse')
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')
DeleteFleetMetricRequest =

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

Shapes::StructureShape.new(name: 'DeleteFleetMetricRequest')
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')
DeleteJobTemplateRequest =

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

Shapes::StructureShape.new(name: 'DeleteJobTemplateRequest')
DeleteMetricsExportConfig =

This constant is part 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: 'DeleteMetricsExportConfig')
DeleteMitigationActionRequest =

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

Shapes::StructureShape.new(name: 'DeleteMitigationActionRequest')
DeleteMitigationActionResponse =

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

Shapes::StructureShape.new(name: 'DeleteMitigationActionResponse')
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')
DeletePackageRequest =

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

Shapes::StructureShape.new(name: 'DeletePackageRequest')
DeletePackageResponse =

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

Shapes::StructureShape.new(name: 'DeletePackageResponse')
DeletePackageVersionRequest =

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

Shapes::StructureShape.new(name: 'DeletePackageVersionRequest')
DeletePackageVersionResponse =

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

Shapes::StructureShape.new(name: 'DeletePackageVersionResponse')
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')
DeleteProvisioningTemplateRequest =

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

Shapes::StructureShape.new(name: 'DeleteProvisioningTemplateRequest')
DeleteProvisioningTemplateResponse =

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

Shapes::StructureShape.new(name: 'DeleteProvisioningTemplateResponse')
DeleteProvisioningTemplateVersionRequest =

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

Shapes::StructureShape.new(name: 'DeleteProvisioningTemplateVersionRequest')
DeleteProvisioningTemplateVersionResponse =

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

Shapes::StructureShape.new(name: 'DeleteProvisioningTemplateVersionResponse')
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')
DeleteTopicRuleDestinationRequest =

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

Shapes::StructureShape.new(name: 'DeleteTopicRuleDestinationRequest')
DeleteTopicRuleDestinationResponse =

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

Shapes::StructureShape.new(name: 'DeleteTopicRuleDestinationResponse')
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')
DescribeAuditFindingRequest =

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

Shapes::StructureShape.new(name: 'DescribeAuditFindingRequest')
DescribeAuditFindingResponse =

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

Shapes::StructureShape.new(name: 'DescribeAuditFindingResponse')
DescribeAuditMitigationActionsTaskRequest =

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

Shapes::StructureShape.new(name: 'DescribeAuditMitigationActionsTaskRequest')
DescribeAuditMitigationActionsTaskResponse =

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

Shapes::StructureShape.new(name: 'DescribeAuditMitigationActionsTaskResponse')
DescribeAuditSuppressionRequest =

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

Shapes::StructureShape.new(name: 'DescribeAuditSuppressionRequest')
DescribeAuditSuppressionResponse =

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

Shapes::StructureShape.new(name: 'DescribeAuditSuppressionResponse')
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')
DescribeCertificateProviderRequest =

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

Shapes::StructureShape.new(name: 'DescribeCertificateProviderRequest')
DescribeCertificateProviderResponse =

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

Shapes::StructureShape.new(name: 'DescribeCertificateProviderResponse')
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')
DescribeCustomMetricRequest =

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

Shapes::StructureShape.new(name: 'DescribeCustomMetricRequest')
DescribeCustomMetricResponse =

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

Shapes::StructureShape.new(name: 'DescribeCustomMetricResponse')
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')
DescribeDetectMitigationActionsTaskRequest =

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

Shapes::StructureShape.new(name: 'DescribeDetectMitigationActionsTaskRequest')
DescribeDetectMitigationActionsTaskResponse =

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

Shapes::StructureShape.new(name: 'DescribeDetectMitigationActionsTaskResponse')
DescribeDimensionRequest =

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

Shapes::StructureShape.new(name: 'DescribeDimensionRequest')
DescribeDimensionResponse =

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

Shapes::StructureShape.new(name: 'DescribeDimensionResponse')
DescribeDomainConfigurationRequest =

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

Shapes::StructureShape.new(name: 'DescribeDomainConfigurationRequest')
DescribeDomainConfigurationResponse =

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

Shapes::StructureShape.new(name: 'DescribeDomainConfigurationResponse')
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')
DescribeFleetMetricRequest =

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

Shapes::StructureShape.new(name: 'DescribeFleetMetricRequest')
DescribeFleetMetricResponse =

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

Shapes::StructureShape.new(name: 'DescribeFleetMetricResponse')
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')
DescribeJobTemplateRequest =

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

Shapes::StructureShape.new(name: 'DescribeJobTemplateRequest')
DescribeJobTemplateResponse =

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

Shapes::StructureShape.new(name: 'DescribeJobTemplateResponse')
DescribeManagedJobTemplateRequest =

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

Shapes::StructureShape.new(name: 'DescribeManagedJobTemplateRequest')
DescribeManagedJobTemplateResponse =

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

Shapes::StructureShape.new(name: 'DescribeManagedJobTemplateResponse')
DescribeMitigationActionRequest =

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

Shapes::StructureShape.new(name: 'DescribeMitigationActionRequest')
DescribeMitigationActionResponse =

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

Shapes::StructureShape.new(name: 'DescribeMitigationActionResponse')
DescribeProvisioningTemplateRequest =

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

Shapes::StructureShape.new(name: 'DescribeProvisioningTemplateRequest')
DescribeProvisioningTemplateResponse =

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

Shapes::StructureShape.new(name: 'DescribeProvisioningTemplateResponse')
DescribeProvisioningTemplateVersionRequest =

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

Shapes::StructureShape.new(name: 'DescribeProvisioningTemplateVersionRequest')
DescribeProvisioningTemplateVersionResponse =

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

Shapes::StructureShape.new(name: 'DescribeProvisioningTemplateVersionResponse')
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')
DestinationPackageVersions =

This constant is part 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: 'DestinationPackageVersions')
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')
DetectMitigationActionExecution =

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

Shapes::StructureShape.new(name: 'DetectMitigationActionExecution')
DetectMitigationActionExecutionErrorCode =

This constant is part 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: 'DetectMitigationActionExecutionErrorCode')
DetectMitigationActionExecutionList =

This constant is part 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: 'DetectMitigationActionExecutionList')
DetectMitigationActionExecutionStatus =

This constant is part 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: 'DetectMitigationActionExecutionStatus')
DetectMitigationActionsTaskStatistics =

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

Shapes::StructureShape.new(name: 'DetectMitigationActionsTaskStatistics')
DetectMitigationActionsTaskStatus =

This constant is part 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: 'DetectMitigationActionsTaskStatus')
DetectMitigationActionsTaskSummary =

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

Shapes::StructureShape.new(name: 'DetectMitigationActionsTaskSummary')
DetectMitigationActionsTaskSummaryList =

This constant is part 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: 'DetectMitigationActionsTaskSummaryList')
DetectMitigationActionsTaskTarget =

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

Shapes::StructureShape.new(name: 'DetectMitigationActionsTaskTarget')
DetectMitigationActionsToExecuteList =

This constant is part 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: 'DetectMitigationActionsToExecuteList')
DeviceCertificateUpdateAction =

This constant is part 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: 'DeviceCertificateUpdateAction')
DeviceDefenderIndexingMode =

This constant is part 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: 'DeviceDefenderIndexingMode')
DeviceDefenderThingName =

This constant is part 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: 'DeviceDefenderThingName')
DimensionArn =

This constant is part 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: 'DimensionArn')
DimensionName =

This constant is part 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: 'DimensionName')
DimensionNames =

This constant is part 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: 'DimensionNames')
DimensionStringValue =

This constant is part 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: 'DimensionStringValue')
DimensionStringValues =

This constant is part 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: 'DimensionStringValues')
DimensionType =

This constant is part 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: 'DimensionType')
DimensionValueOperator =

This constant is part 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: 'DimensionValueOperator')
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')
DisconnectReason =

This constant is part 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: 'DisconnectReason')
DocumentParameter =

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

Shapes::StructureShape.new(name: 'DocumentParameter')
DocumentParameters =

This constant is part 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: 'DocumentParameters')
DomainConfigurationArn =

This constant is part 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: 'DomainConfigurationArn')
DomainConfigurationName =

This constant is part 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: 'DomainConfigurationName')
DomainConfigurationStatus =

This constant is part 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: 'DomainConfigurationStatus')
DomainConfigurationSummary =

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

Shapes::StructureShape.new(name: 'DomainConfigurationSummary')
DomainConfigurations =

This constant is part 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: 'DomainConfigurations')
DomainName =

This constant is part 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: 'DomainName')
DomainType =

This constant is part 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: 'DomainType')
DurationInMinutes =

This constant is part 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: 'DurationInMinutes')
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')
EnableCachingForHttp =

This constant is part 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: 'EnableCachingForHttp')
EnableIoTLoggingParams =

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

Shapes::StructureShape.new(name: 'EnableIoTLoggingParams')
EnableOCSPCheck =

This constant is part 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: 'EnableOCSPCheck')
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')
EnabledBoolean =

This constant is part 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: 'EnabledBoolean')
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')
Environment =

This constant is part 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: 'Environment')
Environments =

This constant is part 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: 'Environments')
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')
EvaluationStatistic =

This constant is part 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: 'EvaluationStatistic')
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')
Example =

This constant is part 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: 'Example')
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')
ExpiresInSeconds =

This constant is part 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: 'ExpiresInSeconds')
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')
ExportMetric =

This constant is part 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: 'ExportMetric')
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')
FailedFindingsCount =

This constant is part 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: 'FailedFindingsCount')
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')
Field =

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

Shapes::StructureShape.new(name: 'Field')
FieldName =

This constant is part 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: 'FieldName')
FieldType =

This constant is part 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: 'FieldType')
Fields =

This constant is part 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: 'Fields')
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')
FileType =

This constant is part 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: 'FileType')
FindingId =

This constant is part 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: 'FindingId')
FindingIds =

This constant is part 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: 'FindingIds')
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')
FleetMetricArn =

This constant is part 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: 'FleetMetricArn')
FleetMetricDescription =

This constant is part 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: 'FleetMetricDescription')
FleetMetricName =

This constant is part 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: 'FleetMetricName')
FleetMetricNameAndArn =

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

Shapes::StructureShape.new(name: 'FleetMetricNameAndArn')
FleetMetricNameAndArnList =

This constant is part 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: 'FleetMetricNameAndArnList')
FleetMetricPeriod =

This constant is part 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: 'FleetMetricPeriod')
FleetMetricUnit =

This constant is part 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: 'FleetMetricUnit')
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')
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')
GenericLongValue =

This constant is part 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: 'GenericLongValue')
GeoLocationTarget =

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

Shapes::StructureShape.new(name: 'GeoLocationTarget')
GeoLocationsFilter =

This constant is part 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: 'GeoLocationsFilter')
GetBehaviorModelTrainingSummariesRequest =

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

Shapes::StructureShape.new(name: 'GetBehaviorModelTrainingSummariesRequest')
GetBehaviorModelTrainingSummariesResponse =

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

Shapes::StructureShape.new(name: 'GetBehaviorModelTrainingSummariesResponse')
GetBucketsAggregationRequest =

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

Shapes::StructureShape.new(name: 'GetBucketsAggregationRequest')
GetBucketsAggregationResponse =

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

Shapes::StructureShape.new(name: 'GetBucketsAggregationResponse')
GetCardinalityRequest =

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

Shapes::StructureShape.new(name: 'GetCardinalityRequest')
GetCardinalityResponse =

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

Shapes::StructureShape.new(name: 'GetCardinalityResponse')
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')
GetPackageConfigurationRequest =

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

Shapes::StructureShape.new(name: 'GetPackageConfigurationRequest')
GetPackageConfigurationResponse =

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

Shapes::StructureShape.new(name: 'GetPackageConfigurationResponse')
GetPackageRequest =

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

Shapes::StructureShape.new(name: 'GetPackageRequest')
GetPackageResponse =

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

Shapes::StructureShape.new(name: 'GetPackageResponse')
GetPackageVersionRequest =

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

Shapes::StructureShape.new(name: 'GetPackageVersionRequest')
GetPackageVersionResponse =

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

Shapes::StructureShape.new(name: 'GetPackageVersionResponse')
GetPercentilesRequest =

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

Shapes::StructureShape.new(name: 'GetPercentilesRequest')
GetPercentilesResponse =

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

Shapes::StructureShape.new(name: 'GetPercentilesResponse')
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')
GetStatisticsRequest =

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

Shapes::StructureShape.new(name: 'GetStatisticsRequest')
GetStatisticsResponse =

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

Shapes::StructureShape.new(name: 'GetStatisticsResponse')
GetTopicRuleDestinationRequest =

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

Shapes::StructureShape.new(name: 'GetTopicRuleDestinationRequest')
GetTopicRuleDestinationResponse =

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

Shapes::StructureShape.new(name: 'GetTopicRuleDestinationResponse')
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')
HeaderKey =

This constant is part 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: 'HeaderKey')
HeaderList =

This constant is part 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: 'HeaderList')
HeaderValue =

This constant is part 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: 'HeaderValue')
HttpAction =

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

Shapes::StructureShape.new(name: 'HttpAction')
HttpActionHeader =

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

Shapes::StructureShape.new(name: 'HttpActionHeader')
HttpAuthorization =

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

Shapes::StructureShape.new(name: 'HttpAuthorization')
HttpContext =

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

Shapes::StructureShape.new(name: 'HttpContext')
HttpHeaderName =

This constant is part 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: 'HttpHeaderName')
HttpHeaderValue =

This constant is part 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: 'HttpHeaderValue')
HttpHeaders =

This constant is part 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: 'HttpHeaders')
HttpQueryString =

This constant is part 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: 'HttpQueryString')
HttpUrlDestinationConfiguration =

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

Shapes::StructureShape.new(name: 'HttpUrlDestinationConfiguration')
HttpUrlDestinationProperties =

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

Shapes::StructureShape.new(name: 'HttpUrlDestinationProperties')
HttpUrlDestinationSummary =

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

Shapes::StructureShape.new(name: 'HttpUrlDestinationSummary')
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')
IndexingFilter =

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

Shapes::StructureShape.new(name: 'IndexingFilter')
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')
InternalServerException =

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

Shapes::StructureShape.new(name: 'InternalServerException')
InvalidAggregationException =

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

Shapes::StructureShape.new(name: 'InvalidAggregationException')
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')
IotSiteWiseAction =

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

Shapes::StructureShape.new(name: 'IotSiteWiseAction')
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')
IsSuppressed =

This constant is part 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: 'IsSuppressed')
IssuerCertificateIdentifier =

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

Shapes::StructureShape.new(name: 'IssuerCertificateIdentifier')
IssuerCertificateSerialNumber =

This constant is part 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: 'IssuerCertificateSerialNumber')
IssuerCertificateSubject =

This constant is part 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: 'IssuerCertificateSubject')
IssuerId =

This constant is part 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: 'IssuerId')
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')
JobEndBehavior =

This constant is part 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: 'JobEndBehavior')
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')
JobExecutionsRetryConfig =

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

Shapes::StructureShape.new(name: 'JobExecutionsRetryConfig')
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')
JobTemplateArn =

This constant is part 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: 'JobTemplateArn')
JobTemplateId =

This constant is part 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: 'JobTemplateId')
JobTemplateSummary =

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

Shapes::StructureShape.new(name: 'JobTemplateSummary')
JobTemplateSummaryList =

This constant is part 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: 'JobTemplateSummaryList')
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')
KafkaAction =

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

Shapes::StructureShape.new(name: 'KafkaAction')
KafkaActionHeader =

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

Shapes::StructureShape.new(name: 'KafkaActionHeader')
KafkaHeaderKey =

This constant is part 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: 'KafkaHeaderKey')
KafkaHeaderValue =

This constant is part 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: 'KafkaHeaderValue')
KafkaHeaders =

This constant is part 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: 'KafkaHeaders')
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')
LastUpdatedAtDate =

This constant is part 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: 'LastUpdatedAtDate')
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')
ListAuditMitigationActionsExecutionsRequest =

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

Shapes::StructureShape.new(name: 'ListAuditMitigationActionsExecutionsRequest')
ListAuditMitigationActionsExecutionsResponse =

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

Shapes::StructureShape.new(name: 'ListAuditMitigationActionsExecutionsResponse')
ListAuditMitigationActionsTasksRequest =

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

Shapes::StructureShape.new(name: 'ListAuditMitigationActionsTasksRequest')
ListAuditMitigationActionsTasksResponse =

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

Shapes::StructureShape.new(name: 'ListAuditMitigationActionsTasksResponse')
ListAuditSuppressionsRequest =

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

Shapes::StructureShape.new(name: 'ListAuditSuppressionsRequest')
ListAuditSuppressionsResponse =

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

Shapes::StructureShape.new(name: 'ListAuditSuppressionsResponse')
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')
ListCertificateProvidersRequest =

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

Shapes::StructureShape.new(name: 'ListCertificateProvidersRequest')
ListCertificateProvidersResponse =

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

Shapes::StructureShape.new(name: 'ListCertificateProvidersResponse')
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')
ListCustomMetricsRequest =

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

Shapes::StructureShape.new(name: 'ListCustomMetricsRequest')
ListCustomMetricsResponse =

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

Shapes::StructureShape.new(name: 'ListCustomMetricsResponse')
ListDetectMitigationActionsExecutionsRequest =

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

Shapes::StructureShape.new(name: 'ListDetectMitigationActionsExecutionsRequest')
ListDetectMitigationActionsExecutionsResponse =

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

Shapes::StructureShape.new(name: 'ListDetectMitigationActionsExecutionsResponse')
ListDetectMitigationActionsTasksRequest =

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

Shapes::StructureShape.new(name: 'ListDetectMitigationActionsTasksRequest')
ListDetectMitigationActionsTasksResponse =

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

Shapes::StructureShape.new(name: 'ListDetectMitigationActionsTasksResponse')
ListDimensionsRequest =

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

Shapes::StructureShape.new(name: 'ListDimensionsRequest')
ListDimensionsResponse =

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

Shapes::StructureShape.new(name: 'ListDimensionsResponse')
ListDomainConfigurationsRequest =

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

Shapes::StructureShape.new(name: 'ListDomainConfigurationsRequest')
ListDomainConfigurationsResponse =

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

Shapes::StructureShape.new(name: 'ListDomainConfigurationsResponse')
ListFleetMetricsRequest =

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

Shapes::StructureShape.new(name: 'ListFleetMetricsRequest')
ListFleetMetricsResponse =

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

Shapes::StructureShape.new(name: 'ListFleetMetricsResponse')
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')
ListJobTemplatesRequest =

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

Shapes::StructureShape.new(name: 'ListJobTemplatesRequest')
ListJobTemplatesResponse =

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

Shapes::StructureShape.new(name: 'ListJobTemplatesResponse')
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')
ListManagedJobTemplatesRequest =

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

Shapes::StructureShape.new(name: 'ListManagedJobTemplatesRequest')
ListManagedJobTemplatesResponse =

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

Shapes::StructureShape.new(name: 'ListManagedJobTemplatesResponse')
ListMetricValuesRequest =

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

Shapes::StructureShape.new(name: 'ListMetricValuesRequest')
ListMetricValuesResponse =

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

Shapes::StructureShape.new(name: 'ListMetricValuesResponse')
ListMitigationActionsRequest =

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

Shapes::StructureShape.new(name: 'ListMitigationActionsRequest')
ListMitigationActionsResponse =

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

Shapes::StructureShape.new(name: 'ListMitigationActionsResponse')
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')
ListPackageVersionsRequest =

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

Shapes::StructureShape.new(name: 'ListPackageVersionsRequest')
ListPackageVersionsResponse =

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

Shapes::StructureShape.new(name: 'ListPackageVersionsResponse')
ListPackagesRequest =

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

Shapes::StructureShape.new(name: 'ListPackagesRequest')
ListPackagesResponse =

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

Shapes::StructureShape.new(name: 'ListPackagesResponse')
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')
ListProvisioningTemplateVersionsRequest =

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

Shapes::StructureShape.new(name: 'ListProvisioningTemplateVersionsRequest')
ListProvisioningTemplateVersionsResponse =

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

Shapes::StructureShape.new(name: 'ListProvisioningTemplateVersionsResponse')
ListProvisioningTemplatesRequest =

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

Shapes::StructureShape.new(name: 'ListProvisioningTemplatesRequest')
ListProvisioningTemplatesResponse =

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

Shapes::StructureShape.new(name: 'ListProvisioningTemplatesResponse')
ListRelatedResourcesForAuditFindingRequest =

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

Shapes::StructureShape.new(name: 'ListRelatedResourcesForAuditFindingRequest')
ListRelatedResourcesForAuditFindingResponse =

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

Shapes::StructureShape.new(name: 'ListRelatedResourcesForAuditFindingResponse')
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')
ListSuppressedAlerts =

This constant is part 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: 'ListSuppressedAlerts')
ListSuppressedFindings =

This constant is part 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: 'ListSuppressedFindings')
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')
ListTopicRuleDestinationsRequest =

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

Shapes::StructureShape.new(name: 'ListTopicRuleDestinationsRequest')
ListTopicRuleDestinationsResponse =

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

Shapes::StructureShape.new(name: 'ListTopicRuleDestinationsResponse')
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')
LocationAction =

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

Shapes::StructureShape.new(name: 'LocationAction')
LocationTimestamp =

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

Shapes::StructureShape.new(name: 'LocationTimestamp')
LogGroupName =

This constant is part 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: 'LogGroupName')
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')
MachineLearningDetectionConfig =

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

Shapes::StructureShape.new(name: 'MachineLearningDetectionConfig')
MaintenanceWindow =

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

Shapes::StructureShape.new(name: 'MaintenanceWindow')
MaintenanceWindows =

This constant is part 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: 'MaintenanceWindows')
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')
ManagedJobTemplateName =

This constant is part 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: 'ManagedJobTemplateName')
ManagedJobTemplateSummary =

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

Shapes::StructureShape.new(name: 'ManagedJobTemplateSummary')
ManagedJobTemplatesSummaryList =

This constant is part 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: 'ManagedJobTemplatesSummaryList')
ManagedTemplateVersion =

This constant is part 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: 'ManagedTemplateVersion')
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')
MaxBuckets =

This constant is part 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: 'MaxBuckets')
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')
Maximum =

This constant is part 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: 'Maximum')
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')
MessageExpiry =

This constant is part 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: 'MessageExpiry')
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')
MetricDatum =

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

Shapes::StructureShape.new(name: 'MetricDatum')
MetricDatumList =

This constant is part 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: 'MetricDatumList')
MetricDimension =

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

Shapes::StructureShape.new(name: 'MetricDimension')
MetricName =

This constant is part 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: 'MetricName')
MetricNames =

This constant is part 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: 'MetricNames')
MetricToRetain =

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

Shapes::StructureShape.new(name: 'MetricToRetain')
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')
MetricsExportConfig =

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

Shapes::StructureShape.new(name: 'MetricsExportConfig')
Minimum =

This constant is part 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: 'Minimum')
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')
MitigationAction =

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

Shapes::StructureShape.new(name: 'MitigationAction')
MitigationActionArn =

This constant is part 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: 'MitigationActionArn')
MitigationActionId =

This constant is part 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: 'MitigationActionId')
MitigationActionIdentifier =

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

Shapes::StructureShape.new(name: 'MitigationActionIdentifier')
MitigationActionIdentifierList =

This constant is part 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: 'MitigationActionIdentifierList')
MitigationActionList =

This constant is part 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: 'MitigationActionList')
MitigationActionName =

This constant is part 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: 'MitigationActionName')
MitigationActionNameList =

This constant is part 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: 'MitigationActionNameList')
MitigationActionParams =

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

Shapes::StructureShape.new(name: 'MitigationActionParams')
MitigationActionType =

This constant is part 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: 'MitigationActionType')
MitigationActionsTaskId =

This constant is part 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: 'MitigationActionsTaskId')
ModelStatus =

This constant is part 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: 'ModelStatus')
MqttClientId =

This constant is part 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: 'MqttClientId')
MqttContext =

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

Shapes::StructureShape.new(name: 'MqttContext')
MqttHeaders =

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

Shapes::StructureShape.new(name: 'MqttHeaders')
MqttPassword =

This constant is part 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: 'MqttPassword')
MqttTopic =

This constant is part 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: 'MqttTopic')
MqttUsername =

This constant is part 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: 'MqttUsername')
NamedShadowIndexingMode =

This constant is part 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: 'NamedShadowIndexingMode')
NamedShadowNamesFilter =

This constant is part 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: 'NamedShadowNamesFilter')
NamespaceId =

This constant is part 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: 'NamespaceId')
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')
NullableBoolean =

This constant is part 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: 'NullableBoolean')
Number =

This constant is part 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: 'Number')
NumberList =

This constant is part 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: 'NumberList')
NumberOfRetries =

This constant is part 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: 'NumberOfRetries')
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')
OpenSearchAction =

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

Shapes::StructureShape.new(name: 'OpenSearchAction')
Optional =

This constant is part 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: 'Optional')
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')
PackageArn =

This constant is part 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: 'PackageArn')
PackageCatalogMaxResults =

This constant is part 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: 'PackageCatalogMaxResults')
PackageName =

This constant is part 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: 'PackageName')
PackageSummary =

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

Shapes::StructureShape.new(name: 'PackageSummary')
PackageSummaryList =

This constant is part 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: 'PackageSummaryList')
PackageVersionAction =

This constant is part 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: 'PackageVersionAction')
PackageVersionArn =

This constant is part 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: 'PackageVersionArn')
PackageVersionErrorReason =

This constant is part 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: 'PackageVersionErrorReason')
PackageVersionStatus =

This constant is part 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: 'PackageVersionStatus')
PackageVersionSummary =

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

Shapes::StructureShape.new(name: 'PackageVersionSummary')
PackageVersionSummaryList =

This constant is part 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: 'PackageVersionSummaryList')
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')
ParameterKey =

This constant is part 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: 'ParameterKey')
ParameterMap =

This constant is part 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: 'ParameterMap')
ParameterValue =

This constant is part 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: 'ParameterValue')
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')
PayloadFormatIndicator =

This constant is part 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: 'PayloadFormatIndicator')
PayloadVersion =

This constant is part 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: 'PayloadVersion')
Percent =

This constant is part 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: 'Percent')
PercentList =

This constant is part 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: 'PercentList')
PercentPair =

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

Shapes::StructureShape.new(name: 'PercentPair')
PercentValue =

This constant is part 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: 'PercentValue')
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')
Percentiles =

This constant is part 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: 'Percentiles')
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')
PolicyTemplateName =

This constant is part 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: 'PolicyTemplateName')
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')
PrimitiveBoolean =

This constant is part 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: 'PrimitiveBoolean')
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')
Protocol =

This constant is part 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: 'Protocol')
Protocols =

This constant is part 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: 'Protocols')
ProvisioningHook =

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

Shapes::StructureShape.new(name: 'ProvisioningHook')
ProvisioningTemplateListing =

This constant is part 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: 'ProvisioningTemplateListing')
ProvisioningTemplateSummary =

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

Shapes::StructureShape.new(name: 'ProvisioningTemplateSummary')
ProvisioningTemplateVersionListing =

This constant is part 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: 'ProvisioningTemplateVersionListing')
ProvisioningTemplateVersionSummary =

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

Shapes::StructureShape.new(name: 'ProvisioningTemplateVersionSummary')
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')
PublishFindingToSnsParams =

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

Shapes::StructureShape.new(name: 'PublishFindingToSnsParams')
PutAssetPropertyValueEntry =

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

Shapes::StructureShape.new(name: 'PutAssetPropertyValueEntry')
PutAssetPropertyValueEntryList =

This constant is part 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: 'PutAssetPropertyValueEntryList')
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')
PutVerificationStateOnViolationRequest =

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

Shapes::StructureShape.new(name: 'PutVerificationStateOnViolationRequest')
PutVerificationStateOnViolationResponse =

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

Shapes::StructureShape.new(name: 'PutVerificationStateOnViolationResponse')
Qos =

This constant is part 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: 'Qos')
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')
ReasonForNonComplianceCodes =

This constant is part 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: 'ReasonForNonComplianceCodes')
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')
Regex =

This constant is part 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: 'Regex')
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')
RegisterCertificateWithoutCARequest =

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

Shapes::StructureShape.new(name: 'RegisterCertificateWithoutCARequest')
RegisterCertificateWithoutCAResponse =

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

Shapes::StructureShape.new(name: 'RegisterCertificateWithoutCAResponse')
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')
RemoveAuthorizerConfig =

This constant is part 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: 'RemoveAuthorizerConfig')
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')
RemoveHook =

This constant is part 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: 'RemoveHook')
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')
ReplaceDefaultPolicyVersionParams =

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

Shapes::StructureShape.new(name: 'ReplaceDefaultPolicyVersionParams')
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')
ReservedDomainConfigurationName =

This constant is part 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: 'ReservedDomainConfigurationName')
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')
ResourceAttributeKey =

This constant is part 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: 'ResourceAttributeKey')
ResourceAttributeValue =

This constant is part 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: 'ResourceAttributeValue')
ResourceAttributes =

This constant is part 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: 'ResourceAttributes')
ResourceDescription =

This constant is part 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: 'ResourceDescription')
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')
ResponseTopic =

This constant is part 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: 'ResponseTopic')
RetryAttempt =

This constant is part 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: 'RetryAttempt')
RetryCriteria =

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

Shapes::StructureShape.new(name: 'RetryCriteria')
RetryCriteriaList =

This constant is part 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: 'RetryCriteriaList')
RetryableFailureType =

This constant is part 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: 'RetryableFailureType')
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')
ScheduledJobRollout =

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

Shapes::StructureShape.new(name: 'ScheduledJobRollout')
ScheduledJobRolloutList =

This constant is part 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: 'ScheduledJobRolloutList')
SchedulingConfig =

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

Shapes::StructureShape.new(name: 'SchedulingConfig')
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')
SearchQueryMaxResults =

This constant is part 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: 'SearchQueryMaxResults')
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')
SecurityGroupId =

This constant is part 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: 'SecurityGroupId')
SecurityGroupList =

This constant is part 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: 'SecurityGroupList')
SecurityPolicy =

This constant is part 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: 'SecurityPolicy')
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')
ServerCertificateArns =

This constant is part 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: 'ServerCertificateArns')
ServerCertificateConfig =

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

Shapes::StructureShape.new(name: 'ServerCertificateConfig')
ServerCertificateStatus =

This constant is part 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: 'ServerCertificateStatus')
ServerCertificateStatusDetail =

This constant is part 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: 'ServerCertificateStatusDetail')
ServerCertificateSummary =

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

Shapes::StructureShape.new(name: 'ServerCertificateSummary')
ServerCertificates =

This constant is part 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: 'ServerCertificates')
ServerName =

This constant is part 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: 'ServerName')
ServiceName =

This constant is part 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: 'ServiceName')
ServiceQuotaExceededException =

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

Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
ServiceType =

This constant is part 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: 'ServiceType')
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')
ShadowName =

This constant is part 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: 'ShadowName')
SigV4Authorization =

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

Shapes::StructureShape.new(name: 'SigV4Authorization')
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')
SigningRegion =

This constant is part 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: 'SigningRegion')
SkippedFindingsCount =

This constant is part 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: 'SkippedFindingsCount')
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')
SnsTopicArn =

This constant is part 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: 'SnsTopicArn')
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')
StartAuditMitigationActionsTaskRequest =

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

Shapes::StructureShape.new(name: 'StartAuditMitigationActionsTaskRequest')
StartAuditMitigationActionsTaskResponse =

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

Shapes::StructureShape.new(name: 'StartAuditMitigationActionsTaskResponse')
StartDetectMitigationActionsTaskRequest =

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

Shapes::StructureShape.new(name: 'StartDetectMitigationActionsTaskRequest')
StartDetectMitigationActionsTaskResponse =

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

Shapes::StructureShape.new(name: 'StartDetectMitigationActionsTaskResponse')
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')
StatisticalThreshold =

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

Shapes::StructureShape.new(name: 'StatisticalThreshold')
Statistics =

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

Shapes::StructureShape.new(name: 'Statistics')
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')
StdDeviation =

This constant is part 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: 'StdDeviation')
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')
StringDateTime =

This constant is part 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: 'StringDateTime')
StringList =

This constant is part 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: 'StringList')
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')
SubnetId =

This constant is part 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: 'SubnetId')
SubnetIdList =

This constant is part 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: 'SubnetIdList')
SucceededFindingsCount =

This constant is part 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: 'SucceededFindingsCount')
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')
Sum =

This constant is part 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: 'Sum')
SumOfSquares =

This constant is part 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: 'SumOfSquares')
SuppressAlerts =

This constant is part 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: 'SuppressAlerts')
SuppressIndefinitely =

This constant is part 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: 'SuppressIndefinitely')
SuppressedNonCompliantResourcesCount =

This constant is part 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: 'SuppressedNonCompliantResourcesCount')
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')
TagMap =

This constant is part 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: 'TagMap')
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')
TargetFieldName =

This constant is part 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: 'TargetFieldName')
TargetFieldOrder =

This constant is part 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: 'TargetFieldOrder')
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')
TargetViolationIdsForDetectMitigationActions =

This constant is part 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: 'TargetViolationIdsForDetectMitigationActions')
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')
TaskAlreadyExistsException =

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

Shapes::StructureShape.new(name: 'TaskAlreadyExistsException')
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')
TaskStatisticsForAuditCheck =

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

Shapes::StructureShape.new(name: 'TaskStatisticsForAuditCheck')
TemplateArn =

This constant is part 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: 'TemplateArn')
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')
TemplateDescription =

This constant is part 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: 'TemplateDescription')
TemplateName =

This constant is part 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: 'TemplateName')
TemplateType =

This constant is part 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: 'TemplateType')
TemplateVersionId =

This constant is part 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: 'TemplateVersionId')
TermsAggregation =

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

Shapes::StructureShape.new(name: 'TermsAggregation')
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')
ThingGroupNames =

This constant is part 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: 'ThingGroupNames')
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')
TimestreamAction =

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

Shapes::StructureShape.new(name: 'TimestreamAction')
TimestreamDatabaseName =

This constant is part 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: 'TimestreamDatabaseName')
TimestreamDimension =

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

Shapes::StructureShape.new(name: 'TimestreamDimension')
TimestreamDimensionList =

This constant is part 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: 'TimestreamDimensionList')
TimestreamDimensionName =

This constant is part 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: 'TimestreamDimensionName')
TimestreamDimensionValue =

This constant is part 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: 'TimestreamDimensionValue')
TimestreamTableName =

This constant is part 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: 'TimestreamTableName')
TimestreamTimestamp =

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

Shapes::StructureShape.new(name: 'TimestreamTimestamp')
TimestreamTimestampUnit =

This constant is part 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: 'TimestreamTimestampUnit')
TimestreamTimestampValue =

This constant is part 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: 'TimestreamTimestampValue')
TinyMaxResults =

This constant is part 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: 'TinyMaxResults')
TlsConfig =

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

Shapes::StructureShape.new(name: 'TlsConfig')
TlsContext =

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

Shapes::StructureShape.new(name: 'TlsContext')
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')
TopicRuleDestination =

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

Shapes::StructureShape.new(name: 'TopicRuleDestination')
TopicRuleDestinationConfiguration =

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

Shapes::StructureShape.new(name: 'TopicRuleDestinationConfiguration')
TopicRuleDestinationMaxResults =

This constant is part 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: 'TopicRuleDestinationMaxResults')
TopicRuleDestinationStatus =

This constant is part 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: 'TopicRuleDestinationStatus')
TopicRuleDestinationSummaries =

This constant is part 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: 'TopicRuleDestinationSummaries')
TopicRuleDestinationSummary =

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

Shapes::StructureShape.new(name: 'TopicRuleDestinationSummary')
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')
TopicRuleMaxResults =

This constant is part 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: 'TopicRuleMaxResults')
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')
TotalFindingsCount =

This constant is part 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: 'TotalFindingsCount')
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')
UnsetDefaultVersion =

This constant is part 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: 'UnsetDefaultVersion')
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')
UpdateAuditSuppressionRequest =

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

Shapes::StructureShape.new(name: 'UpdateAuditSuppressionRequest')
UpdateAuditSuppressionResponse =

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

Shapes::StructureShape.new(name: 'UpdateAuditSuppressionResponse')
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')
UpdateCACertificateParams =

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

Shapes::StructureShape.new(name: 'UpdateCACertificateParams')
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')
UpdateCertificateProviderRequest =

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

Shapes::StructureShape.new(name: 'UpdateCertificateProviderRequest')
UpdateCertificateProviderResponse =

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

Shapes::StructureShape.new(name: 'UpdateCertificateProviderResponse')
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')
UpdateCustomMetricRequest =

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

Shapes::StructureShape.new(name: 'UpdateCustomMetricRequest')
UpdateCustomMetricResponse =

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

Shapes::StructureShape.new(name: 'UpdateCustomMetricResponse')
UpdateDeviceCertificateParams =

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

Shapes::StructureShape.new(name: 'UpdateDeviceCertificateParams')
UpdateDimensionRequest =

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

Shapes::StructureShape.new(name: 'UpdateDimensionRequest')
UpdateDimensionResponse =

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

Shapes::StructureShape.new(name: 'UpdateDimensionResponse')
UpdateDomainConfigurationRequest =

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

Shapes::StructureShape.new(name: 'UpdateDomainConfigurationRequest')
UpdateDomainConfigurationResponse =

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

Shapes::StructureShape.new(name: 'UpdateDomainConfigurationResponse')
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')
UpdateFleetMetricRequest =

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

Shapes::StructureShape.new(name: 'UpdateFleetMetricRequest')
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')
UpdateMitigationActionRequest =

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

Shapes::StructureShape.new(name: 'UpdateMitigationActionRequest')
UpdateMitigationActionResponse =

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

Shapes::StructureShape.new(name: 'UpdateMitigationActionResponse')
UpdatePackageConfigurationRequest =

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

Shapes::StructureShape.new(name: 'UpdatePackageConfigurationRequest')
UpdatePackageConfigurationResponse =

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

Shapes::StructureShape.new(name: 'UpdatePackageConfigurationResponse')
UpdatePackageRequest =

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

Shapes::StructureShape.new(name: 'UpdatePackageRequest')
UpdatePackageResponse =

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

Shapes::StructureShape.new(name: 'UpdatePackageResponse')
UpdatePackageVersionRequest =

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

Shapes::StructureShape.new(name: 'UpdatePackageVersionRequest')
UpdatePackageVersionResponse =

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

Shapes::StructureShape.new(name: 'UpdatePackageVersionResponse')
UpdateProvisioningTemplateRequest =

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

Shapes::StructureShape.new(name: 'UpdateProvisioningTemplateRequest')
UpdateProvisioningTemplateResponse =

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

Shapes::StructureShape.new(name: 'UpdateProvisioningTemplateResponse')
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')
UpdateTopicRuleDestinationRequest =

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

Shapes::StructureShape.new(name: 'UpdateTopicRuleDestinationRequest')
UpdateTopicRuleDestinationResponse =

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

Shapes::StructureShape.new(name: 'UpdateTopicRuleDestinationResponse')
Url =

This constant is part 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: 'Url')
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')
UserProperties =

This constant is part 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: 'UserProperties')
UserProperty =

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

Shapes::StructureShape.new(name: 'UserProperty')
UserPropertyKey =

This constant is part 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: 'UserPropertyKey')
UserPropertyValue =

This constant is part 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: 'UserPropertyValue')
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')
ValidationException =

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

Shapes::StructureShape.new(name: 'ValidationException')
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')
Variance =

This constant is part 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: 'Variance')
VerificationState =

This constant is part 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: 'VerificationState')
VerificationStateDescription =

This constant is part 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: 'VerificationStateDescription')
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')
VersionName =

This constant is part 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: 'VersionName')
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')
VersionUpdateByJobsConfig =

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

Shapes::StructureShape.new(name: 'VersionUpdateByJobsConfig')
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')
ViolationEventAdditionalInfo =

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

Shapes::StructureShape.new(name: 'ViolationEventAdditionalInfo')
ViolationEventOccurrenceRange =

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

Shapes::StructureShape.new(name: 'ViolationEventOccurrenceRange')
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')
VpcDestinationConfiguration =

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

Shapes::StructureShape.new(name: 'VpcDestinationConfiguration')
VpcDestinationProperties =

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

Shapes::StructureShape.new(name: 'VpcDestinationProperties')
VpcDestinationSummary =

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

Shapes::StructureShape.new(name: 'VpcDestinationSummary')
VpcId =

This constant is part 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: 'VpcId')
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" => "iot",
    "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_mitigation_actions_task, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CancelAuditMitigationActionsTask"
    o.http_method = "PUT"
    o.http_request_uri = "/audit/mitigationactions/tasks/{taskId}/cancel"
    o.input = Shapes::ShapeRef.new(shape: CancelAuditMitigationActionsTaskRequest)
    o.output = Shapes::ShapeRef.new(shape: CancelAuditMitigationActionsTaskResponse)
    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_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_detect_mitigation_actions_task, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CancelDetectMitigationActionsTask"
    o.http_method = "PUT"
    o.http_request_uri = "/detect/mitigationactions/tasks/{taskId}/cancel"
    o.input = Shapes::ShapeRef.new(shape: CancelDetectMitigationActionsTaskRequest)
    o.output = Shapes::ShapeRef.new(shape: CancelDetectMitigationActionsTaskResponse)
    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_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)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  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(:confirm_topic_rule_destination, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ConfirmTopicRuleDestination"
    o.http_method = "GET"
    o.http_request_uri = "/confirmdestination/{confirmationToken+}"
    o.input = Shapes::ShapeRef.new(shape: ConfirmTopicRuleDestinationRequest)
    o.output = Shapes::ShapeRef.new(shape: ConfirmTopicRuleDestinationResponse)
    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(:create_audit_suppression, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateAuditSuppression"
    o.http_method = "POST"
    o.http_request_uri = "/audit/suppressions/create"
    o.input = Shapes::ShapeRef.new(shape: CreateAuditSuppressionRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateAuditSuppressionResponse)
    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)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  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_certificate_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateCertificateProvider"
    o.http_method = "POST"
    o.http_request_uri = "/certificate-providers/{certificateProviderName}"
    o.input = Shapes::ShapeRef.new(shape: CreateCertificateProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateCertificateProviderResponse)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    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_custom_metric, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateCustomMetric"
    o.http_method = "POST"
    o.http_request_uri = "/custom-metric/{metricName}"
    o.input = Shapes::ShapeRef.new(shape: CreateCustomMetricRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateCustomMetricResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    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_dimension, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateDimension"
    o.http_method = "POST"
    o.http_request_uri = "/dimensions/{name}"
    o.input = Shapes::ShapeRef.new(shape: CreateDimensionRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateDimensionResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
  end)

  api.add_operation(:create_domain_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateDomainConfiguration"
    o.http_method = "POST"
    o.http_request_uri = "/domainConfigurations/{domainConfigurationName}"
    o.input = Shapes::ShapeRef.new(shape: CreateDomainConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateDomainConfigurationResponse)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: CertificateValidationException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
    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(: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_fleet_metric, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateFleetMetric"
    o.http_method = "PUT"
    o.http_request_uri = "/fleet-metric/{metricName}"
    o.input = Shapes::ShapeRef.new(shape: CreateFleetMetricRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateFleetMetricResponse)
    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)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidQueryException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidAggregationException)
    o.errors << Shapes::ShapeRef.new(shape: IndexNotReadyException)
  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_job_template, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateJobTemplate"
    o.http_method = "PUT"
    o.http_request_uri = "/job-templates/{jobTemplateId}"
    o.input = Shapes::ShapeRef.new(shape: CreateJobTemplateRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateJobTemplateResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  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_mitigation_action, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateMitigationAction"
    o.http_method = "POST"
    o.http_request_uri = "/mitigationactions/actions/{actionName}"
    o.input = Shapes::ShapeRef.new(shape: CreateMitigationActionRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateMitigationActionResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    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: 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_package, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreatePackage"
    o.http_method = "PUT"
    o.http_request_uri = "/packages/{packageName}"
    o.input = Shapes::ShapeRef.new(shape: CreatePackageRequest)
    o.output = Shapes::ShapeRef.new(shape: CreatePackageResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictException)
    o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
    o.errors << Shapes::ShapeRef.new(shape: ValidationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
  end)

  api.add_operation(:create_package_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreatePackageVersion"
    o.http_method = "PUT"
    o.http_request_uri = "/packages/{packageName}/versions/{versionName}"
    o.input = Shapes::ShapeRef.new(shape: CreatePackageVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: CreatePackageVersionResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictException)
    o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
    o.errors << Shapes::ShapeRef.new(shape: ValidationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
  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_provisioning_claim, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateProvisioningClaim"
    o.http_method = "POST"
    o.http_request_uri = "/provisioning-templates/{templateName}/provisioning-claim"
    o.input = Shapes::ShapeRef.new(shape: CreateProvisioningClaimRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateProvisioningClaimResponse)
    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(:create_provisioning_template, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateProvisioningTemplate"
    o.http_method = "POST"
    o.http_request_uri = "/provisioning-templates"
    o.input = Shapes::ShapeRef.new(shape: CreateProvisioningTemplateRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateProvisioningTemplateResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    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: ResourceAlreadyExistsException)
  end)

  api.add_operation(:create_provisioning_template_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateProvisioningTemplateVersion"
    o.http_method = "POST"
    o.http_request_uri = "/provisioning-templates/{templateName}/versions"
    o.input = Shapes::ShapeRef.new(shape: CreateProvisioningTemplateVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateProvisioningTemplateVersionResponse)
    o.errors << Shapes::ShapeRef.new(shape: VersionsLimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    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: ConflictingResourceUpdateException)
  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: ResourceAlreadyExistsException)
    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(:create_topic_rule_destination, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateTopicRuleDestination"
    o.http_method = "POST"
    o.http_request_uri = "/destinations"
    o.input = Shapes::ShapeRef.new(shape: CreateTopicRuleDestinationRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateTopicRuleDestinationResponse)
    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_audit_suppression, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteAuditSuppression"
    o.http_method = "POST"
    o.http_request_uri = "/audit/suppressions/delete"
    o.input = Shapes::ShapeRef.new(shape: DeleteAuditSuppressionRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteAuditSuppressionResponse)
    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(: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_certificate_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteCertificateProvider"
    o.http_method = "DELETE"
    o.http_request_uri = "/certificate-providers/{certificateProviderName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteCertificateProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteCertificateProviderResponse)
    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_custom_metric, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteCustomMetric"
    o.http_method = "DELETE"
    o.http_request_uri = "/custom-metric/{metricName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteCustomMetricRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteCustomMetricResponse)
    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(:delete_dimension, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteDimension"
    o.http_method = "DELETE"
    o.http_request_uri = "/dimensions/{name}"
    o.input = Shapes::ShapeRef.new(shape: DeleteDimensionRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteDimensionResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
  end)

  api.add_operation(:delete_domain_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteDomainConfiguration"
    o.http_method = "DELETE"
    o.http_request_uri = "/domainConfigurations/{domainConfigurationName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteDomainConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteDomainConfigurationResponse)
    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)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
  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_fleet_metric, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteFleetMetric"
    o.http_method = "DELETE"
    o.http_request_uri = "/fleet-metric/{metricName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteFleetMetricRequest)
    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: VersionConflictException)
  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_job_template, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteJobTemplate"
    o.http_method = "DELETE"
    o.http_request_uri = "/job-templates/{jobTemplateId}"
    o.input = Shapes::ShapeRef.new(shape: DeleteJobTemplateRequest)
    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: InternalFailureException)
  end)

  api.add_operation(:delete_mitigation_action, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteMitigationAction"
    o.http_method = "DELETE"
    o.http_request_uri = "/mitigationactions/actions/{actionName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteMitigationActionRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteMitigationActionResponse)
    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(: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_package, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeletePackage"
    o.http_method = "DELETE"
    o.http_request_uri = "/packages/{packageName}"
    o.input = Shapes::ShapeRef.new(shape: DeletePackageRequest)
    o.output = Shapes::ShapeRef.new(shape: DeletePackageResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
    o.errors << Shapes::ShapeRef.new(shape: ValidationException)
  end)

  api.add_operation(:delete_package_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeletePackageVersion"
    o.http_method = "DELETE"
    o.http_request_uri = "/packages/{packageName}/versions/{versionName}"
    o.input = Shapes::ShapeRef.new(shape: DeletePackageVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: DeletePackageVersionResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
    o.errors << Shapes::ShapeRef.new(shape: ValidationException)
  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_provisioning_template, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteProvisioningTemplate"
    o.http_method = "DELETE"
    o.http_request_uri = "/provisioning-templates/{templateName}"
    o.input = Shapes::ShapeRef.new(shape: DeleteProvisioningTemplateRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteProvisioningTemplateResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictingResourceUpdateException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
  end)

  api.add_operation(:delete_provisioning_template_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteProvisioningTemplateVersion"
    o.http_method = "DELETE"
    o.http_request_uri = "/provisioning-templates/{templateName}/versions/{versionId}"
    o.input = Shapes::ShapeRef.new(shape: DeleteProvisioningTemplateVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteProvisioningTemplateVersionResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    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: ConflictingResourceUpdateException)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
  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_topic_rule_destination, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteTopicRuleDestination"
    o.http_method = "DELETE"
    o.http_request_uri = "/destinations/{arn+}"
    o.input = Shapes::ShapeRef.new(shape: DeleteTopicRuleDestinationRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteTopicRuleDestinationResponse)
    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_finding, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeAuditFinding"
    o.http_method = "GET"
    o.http_request_uri = "/audit/findings/{findingId}"
    o.input = Shapes::ShapeRef.new(shape: DescribeAuditFindingRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeAuditFindingResponse)
    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(:describe_audit_mitigation_actions_task, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeAuditMitigationActionsTask"
    o.http_method = "GET"
    o.http_request_uri = "/audit/mitigationactions/tasks/{taskId}"
    o.input = Shapes::ShapeRef.new(shape: DescribeAuditMitigationActionsTaskRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeAuditMitigationActionsTaskResponse)
    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_audit_suppression, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeAuditSuppression"
    o.http_method = "POST"
    o.http_request_uri = "/audit/suppressions/describe"
    o.input = Shapes::ShapeRef.new(shape: DescribeAuditSuppressionRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeAuditSuppressionResponse)
    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_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_certificate_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeCertificateProvider"
    o.http_method = "GET"
    o.http_request_uri = "/certificate-providers/{certificateProviderName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeCertificateProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeCertificateProviderResponse)
    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_custom_metric, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeCustomMetric"
    o.http_method = "GET"
    o.http_request_uri = "/custom-metric/{metricName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeCustomMetricRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeCustomMetricResponse)
    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_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_detect_mitigation_actions_task, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeDetectMitigationActionsTask"
    o.http_method = "GET"
    o.http_request_uri = "/detect/mitigationactions/tasks/{taskId}"
    o.input = Shapes::ShapeRef.new(shape: DescribeDetectMitigationActionsTaskRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeDetectMitigationActionsTaskResponse)
    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(:describe_dimension, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeDimension"
    o.http_method = "GET"
    o.http_request_uri = "/dimensions/{name}"
    o.input = Shapes::ShapeRef.new(shape: DescribeDimensionRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeDimensionResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
  end)

  api.add_operation(:describe_domain_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeDomainConfiguration"
    o.http_method = "GET"
    o.http_request_uri = "/domainConfigurations/{domainConfigurationName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeDomainConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeDomainConfigurationResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    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_fleet_metric, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeFleetMetric"
    o.http_method = "GET"
    o.http_request_uri = "/fleet-metric/{metricName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeFleetMetricRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeFleetMetricResponse)
    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_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_job_template, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeJobTemplate"
    o.http_method = "GET"
    o.http_request_uri = "/job-templates/{jobTemplateId}"
    o.input = Shapes::ShapeRef.new(shape: DescribeJobTemplateRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeJobTemplateResponse)
    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_managed_job_template, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeManagedJobTemplate"
    o.http_method = "GET"
    o.http_request_uri = "/managed-job-templates/{templateName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeManagedJobTemplateRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeManagedJobTemplateResponse)
    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: InternalServerException)
  end)

  api.add_operation(:describe_mitigation_action, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeMitigationAction"
    o.http_method = "GET"
    o.http_request_uri = "/mitigationactions/actions/{actionName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeMitigationActionRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeMitigationActionResponse)
    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_provisioning_template, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeProvisioningTemplate"
    o.http_method = "GET"
    o.http_request_uri = "/provisioning-templates/{templateName}"
    o.input = Shapes::ShapeRef.new(shape: DescribeProvisioningTemplateRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeProvisioningTemplateResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    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)
  end)

  api.add_operation(:describe_provisioning_template_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DescribeProvisioningTemplateVersion"
    o.http_method = "GET"
    o.http_request_uri = "/provisioning-templates/{templateName}/versions/{versionId}"
    o.input = Shapes::ShapeRef.new(shape: DescribeProvisioningTemplateVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: DescribeProvisioningTemplateVersionResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
  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_behavior_model_training_summaries, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBehaviorModelTrainingSummaries"
    o.http_method = "GET"
    o.http_request_uri = "/behavior-model-training/summaries"
    o.input = Shapes::ShapeRef.new(shape: GetBehaviorModelTrainingSummariesRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBehaviorModelTrainingSummariesResponse)
    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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:get_buckets_aggregation, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketsAggregation"
    o.http_method = "POST"
    o.http_request_uri = "/indices/buckets"
    o.input = Shapes::ShapeRef.new(shape: GetBucketsAggregationRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketsAggregationResponse)
    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: InvalidAggregationException)
    o.errors << Shapes::ShapeRef.new(shape: IndexNotReadyException)
  end)

  api.add_operation(:get_cardinality, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetCardinality"
    o.http_method = "POST"
    o.http_request_uri = "/indices/cardinality"
    o.input = Shapes::ShapeRef.new(shape: GetCardinalityRequest)
    o.output = Shapes::ShapeRef.new(shape: GetCardinalityResponse)
    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: InvalidAggregationException)
    o.errors << Shapes::ShapeRef.new(shape: IndexNotReadyException)
  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_package, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetPackage"
    o.http_method = "GET"
    o.http_request_uri = "/packages/{packageName}"
    o.input = Shapes::ShapeRef.new(shape: GetPackageRequest)
    o.output = Shapes::ShapeRef.new(shape: GetPackageResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
    o.errors << Shapes::ShapeRef.new(shape: ValidationException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:get_package_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetPackageConfiguration"
    o.http_method = "GET"
    o.http_request_uri = "/package-configuration"
    o.input = Shapes::ShapeRef.new(shape: GetPackageConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: GetPackageConfigurationResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
  end)

  api.add_operation(:get_package_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetPackageVersion"
    o.http_method = "GET"
    o.http_request_uri = "/packages/{packageName}/versions/{versionName}"
    o.input = Shapes::ShapeRef.new(shape: GetPackageVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: GetPackageVersionResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
    o.errors << Shapes::ShapeRef.new(shape: ValidationException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:get_percentiles, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetPercentiles"
    o.http_method = "POST"
    o.http_request_uri = "/indices/percentiles"
    o.input = Shapes::ShapeRef.new(shape: GetPercentilesRequest)
    o.output = Shapes::ShapeRef.new(shape: GetPercentilesResponse)
    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: InvalidAggregationException)
    o.errors << Shapes::ShapeRef.new(shape: IndexNotReadyException)
  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_statistics, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetStatistics"
    o.http_method = "POST"
    o.http_request_uri = "/indices/statistics"
    o.input = Shapes::ShapeRef.new(shape: GetStatisticsRequest)
    o.output = Shapes::ShapeRef.new(shape: GetStatisticsResponse)
    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: InvalidAggregationException)
    o.errors << Shapes::ShapeRef.new(shape: IndexNotReadyException)
  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_topic_rule_destination, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetTopicRuleDestination"
    o.http_method = "GET"
    o.http_request_uri = "/destinations/{arn+}"
    o.input = Shapes::ShapeRef.new(shape: GetTopicRuleDestinationRequest)
    o.output = Shapes::ShapeRef.new(shape: GetTopicRuleDestinationResponse)
    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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "page_size",
      tokens: {
        "next_marker" => "marker"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_audit_mitigation_actions_executions, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListAuditMitigationActionsExecutions"
    o.http_method = "GET"
    o.http_request_uri = "/audit/mitigationactions/executions"
    o.input = Shapes::ShapeRef.new(shape: ListAuditMitigationActionsExecutionsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListAuditMitigationActionsExecutionsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_audit_mitigation_actions_tasks, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListAuditMitigationActionsTasks"
    o.http_method = "GET"
    o.http_request_uri = "/audit/mitigationactions/tasks"
    o.input = Shapes::ShapeRef.new(shape: ListAuditMitigationActionsTasksRequest)
    o.output = Shapes::ShapeRef.new(shape: ListAuditMitigationActionsTasksResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_audit_suppressions, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListAuditSuppressions"
    o.http_method = "POST"
    o.http_request_uri = "/audit/suppressions/list"
    o.input = Shapes::ShapeRef.new(shape: ListAuditSuppressionsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListAuditSuppressionsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "page_size",
      tokens: {
        "next_marker" => "marker"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "page_size",
      tokens: {
        "next_marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_certificate_providers, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListCertificateProviders"
    o.http_method = "GET"
    o.http_request_uri = "/certificate-providers/"
    o.input = Shapes::ShapeRef.new(shape: ListCertificateProvidersRequest)
    o.output = Shapes::ShapeRef.new(shape: ListCertificateProvidersResponse)
    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)
    o[:pager] = Aws::Pager.new(
      limit_key: "page_size",
      tokens: {
        "next_marker" => "marker"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "page_size",
      tokens: {
        "next_marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_custom_metrics, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListCustomMetrics"
    o.http_method = "GET"
    o.http_request_uri = "/custom-metrics"
    o.input = Shapes::ShapeRef.new(shape: ListCustomMetricsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListCustomMetricsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_detect_mitigation_actions_executions, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListDetectMitigationActionsExecutions"
    o.http_method = "GET"
    o.http_request_uri = "/detect/mitigationactions/executions"
    o.input = Shapes::ShapeRef.new(shape: ListDetectMitigationActionsExecutionsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListDetectMitigationActionsExecutionsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_detect_mitigation_actions_tasks, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListDetectMitigationActionsTasks"
    o.http_method = "GET"
    o.http_request_uri = "/detect/mitigationactions/tasks"
    o.input = Shapes::ShapeRef.new(shape: ListDetectMitigationActionsTasksRequest)
    o.output = Shapes::ShapeRef.new(shape: ListDetectMitigationActionsTasksResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_dimensions, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListDimensions"
    o.http_method = "GET"
    o.http_request_uri = "/dimensions"
    o.input = Shapes::ShapeRef.new(shape: ListDimensionsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListDimensionsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_domain_configurations, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListDomainConfigurations"
    o.http_method = "GET"
    o.http_request_uri = "/domainConfigurations"
    o.input = Shapes::ShapeRef.new(shape: ListDomainConfigurationsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListDomainConfigurationsResponse)
    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[:pager] = Aws::Pager.new(
      limit_key: "page_size",
      tokens: {
        "next_marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_fleet_metrics, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListFleetMetrics"
    o.http_method = "GET"
    o.http_request_uri = "/fleet-metrics"
    o.input = Shapes::ShapeRef.new(shape: ListFleetMetricsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListFleetMetricsResponse)
    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[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_job_templates, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListJobTemplates"
    o.http_method = "GET"
    o.http_request_uri = "/job-templates"
    o.input = Shapes::ShapeRef.new(shape: ListJobTemplatesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListJobTemplatesResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_managed_job_templates, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListManagedJobTemplates"
    o.http_method = "GET"
    o.http_request_uri = "/managed-job-templates"
    o.input = Shapes::ShapeRef.new(shape: ListManagedJobTemplatesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListManagedJobTemplatesResponse)
    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: InternalServerException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_metric_values, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListMetricValues"
    o.http_method = "GET"
    o.http_request_uri = "/metric-values"
    o.input = Shapes::ShapeRef.new(shape: ListMetricValuesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListMetricValuesResponse)
    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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_mitigation_actions, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListMitigationActions"
    o.http_method = "GET"
    o.http_request_uri = "/mitigationactions/actions"
    o.input = Shapes::ShapeRef.new(shape: ListMitigationActionsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListMitigationActionsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "page_size",
      tokens: {
        "next_marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_package_versions, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListPackageVersions"
    o.http_method = "GET"
    o.http_request_uri = "/packages/{packageName}/versions"
    o.input = Shapes::ShapeRef.new(shape: ListPackageVersionsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListPackageVersionsResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
    o.errors << Shapes::ShapeRef.new(shape: ValidationException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_packages, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListPackages"
    o.http_method = "GET"
    o.http_request_uri = "/packages"
    o.input = Shapes::ShapeRef.new(shape: ListPackagesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListPackagesResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
    o.errors << Shapes::ShapeRef.new(shape: ValidationException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "page_size",
      tokens: {
        "next_marker" => "marker"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "page_size",
      tokens: {
        "next_marker" => "marker"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "page_size",
      tokens: {
        "next_marker" => "marker"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_provisioning_template_versions, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListProvisioningTemplateVersions"
    o.http_method = "GET"
    o.http_request_uri = "/provisioning-templates/{templateName}/versions"
    o.input = Shapes::ShapeRef.new(shape: ListProvisioningTemplateVersionsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListProvisioningTemplateVersionsResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_provisioning_templates, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListProvisioningTemplates"
    o.http_method = "GET"
    o.http_request_uri = "/provisioning-templates"
    o.input = Shapes::ShapeRef.new(shape: ListProvisioningTemplatesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListProvisioningTemplatesResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_related_resources_for_audit_finding, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListRelatedResourcesForAuditFinding"
    o.http_method = "GET"
    o.http_request_uri = "/audit/relatedResources"
    o.input = Shapes::ShapeRef.new(shape: ListRelatedResourcesForAuditFindingRequest)
    o.output = Shapes::ShapeRef.new(shape: ListRelatedResourcesForAuditFindingResponse)
    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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "page_size",
      tokens: {
        "next_marker" => "marker"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListTagsForResource"
    o.http_method = "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)
    o[:pager] = Aws::Pager.new(
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "page_size",
      tokens: {
        "next_marker" => "marker"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:list_topic_rule_destinations, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListTopicRuleDestinations"
    o.http_method = "GET"
    o.http_request_uri = "/destinations"
    o.input = Shapes::ShapeRef.new(shape: ListTopicRuleDestinationsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListTopicRuleDestinationsResponse)
    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[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  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)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_results",
      tokens: {
        "next_token" => "next_token"
      }
    )
  end)

  api.add_operation(:put_verification_state_on_violation, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutVerificationStateOnViolation"
    o.http_method = "POST"
    o.http_request_uri = "/violations/verification-state/{violationId}"
    o.input = Shapes::ShapeRef.new(shape: PutVerificationStateOnViolationRequest)
    o.output = Shapes::ShapeRef.new(shape: PutVerificationStateOnViolationResponse)
    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: ResourceNotFoundException)
    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_certificate_without_ca, Seahorse::Model::Operation.new.tap do |o|
    o.name = "RegisterCertificateWithoutCA"
    o.http_method = "POST"
    o.http_request_uri = "/certificate/register-no-ca"
    o.input = Shapes::ShapeRef.new(shape: RegisterCertificateWithoutCARequest)
    o.output = Shapes::ShapeRef.new(shape: RegisterCertificateWithoutCAResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: CertificateStateException)
    o.errors << Shapes::ShapeRef.new(shape: CertificateValidationException)
    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)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
  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_audit_mitigation_actions_task, Seahorse::Model::Operation.new.tap do |o|
    o.name = "StartAuditMitigationActionsTask"
    o.http_method = "POST"
    o.http_request_uri = "/audit/mitigationactions/tasks/{taskId}"
    o.input = Shapes::ShapeRef.new(shape: StartAuditMitigationActionsTaskRequest)
    o.output = Shapes::ShapeRef.new(shape: StartAuditMitigationActionsTaskResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: TaskAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  end)

  api.add_operation(:start_detect_mitigation_actions_task, Seahorse::Model::Operation.new.tap do |o|
    o.name = "StartDetectMitigationActionsTask"
    o.http_method = "PUT"
    o.http_request_uri = "/detect/mitigationactions/tasks/{taskId}"
    o.input = Shapes::ShapeRef.new(shape: StartDetectMitigationActionsTaskRequest)
    o.output = Shapes::ShapeRef.new(shape: StartDetectMitigationActionsTaskResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: TaskAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
  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_audit_suppression, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateAuditSuppression"
    o.http_method = "PATCH"
    o.http_request_uri = "/audit/suppressions/update"
    o.input = Shapes::ShapeRef.new(shape: UpdateAuditSuppressionRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateAuditSuppressionResponse)
    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_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_certificate_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateCertificateProvider"
    o.http_method = "PUT"
    o.http_request_uri = "/certificate-providers/{certificateProviderName}"
    o.input = Shapes::ShapeRef.new(shape: UpdateCertificateProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateCertificateProviderResponse)
    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_custom_metric, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateCustomMetric"
    o.http_method = "PATCH"
    o.http_request_uri = "/custom-metric/{metricName}"
    o.input = Shapes::ShapeRef.new(shape: UpdateCustomMetricRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateCustomMetricResponse)
    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_dimension, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateDimension"
    o.http_method = "PATCH"
    o.http_request_uri = "/dimensions/{name}"
    o.input = Shapes::ShapeRef.new(shape: UpdateDimensionRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateDimensionResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
  end)

  api.add_operation(:update_domain_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateDomainConfiguration"
    o.http_method = "PUT"
    o.http_request_uri = "/domainConfigurations/{domainConfigurationName}"
    o.input = Shapes::ShapeRef.new(shape: UpdateDomainConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateDomainConfigurationResponse)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: CertificateValidationException)
    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_fleet_metric, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateFleetMetric"
    o.http_method = "PATCH"
    o.http_request_uri = "/fleet-metric/{metricName}"
    o.input = Shapes::ShapeRef.new(shape: UpdateFleetMetricRequest)
    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: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidQueryException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidAggregationException)
    o.errors << Shapes::ShapeRef.new(shape: VersionConflictException)
    o.errors << Shapes::ShapeRef.new(shape: IndexNotReadyException)
  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_mitigation_action, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateMitigationAction"
    o.http_method = "PATCH"
    o.http_request_uri = "/mitigationactions/actions/{actionName}"
    o.input = Shapes::ShapeRef.new(shape: UpdateMitigationActionRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateMitigationActionResponse)
    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_package, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdatePackage"
    o.http_method = "PATCH"
    o.http_request_uri = "/packages/{packageName}"
    o.input = Shapes::ShapeRef.new(shape: UpdatePackageRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdatePackageResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictException)
    o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
    o.errors << Shapes::ShapeRef.new(shape: ValidationException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:update_package_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdatePackageConfiguration"
    o.http_method = "PATCH"
    o.http_request_uri = "/package-configuration"
    o.input = Shapes::ShapeRef.new(shape: UpdatePackageConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdatePackageConfigurationResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictException)
    o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
    o.errors << Shapes::ShapeRef.new(shape: ValidationException)
  end)

  api.add_operation(:update_package_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdatePackageVersion"
    o.http_method = "PATCH"
    o.http_request_uri = "/packages/{packageName}/versions/{versionName}"
    o.input = Shapes::ShapeRef.new(shape: UpdatePackageVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdatePackageVersionResponse)
    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictException)
    o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
    o.errors << Shapes::ShapeRef.new(shape: ValidationException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
  end)

  api.add_operation(:update_provisioning_template, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateProvisioningTemplate"
    o.http_method = "PATCH"
    o.http_request_uri = "/provisioning-templates/{templateName}"
    o.input = Shapes::ShapeRef.new(shape: UpdateProvisioningTemplateRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateProvisioningTemplateResponse)
    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
    o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
    o.errors << Shapes::ShapeRef.new(shape: ConflictingResourceUpdateException)
  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(:update_topic_rule_destination, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UpdateTopicRuleDestination"
    o.http_method = "PATCH"
    o.http_request_uri = "/destinations"
    o.input = Shapes::ShapeRef.new(shape: UpdateTopicRuleDestinationRequest)
    o.output = Shapes::ShapeRef.new(shape: UpdateTopicRuleDestinationResponse)
    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(: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