aws-sdk-iot 1.63.0 → 1.68.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +408 -0
- data/LICENSE.txt +202 -0
- data/VERSION +1 -0
- data/lib/aws-sdk-iot.rb +2 -2
- data/lib/aws-sdk-iot/client.rb +772 -62
- data/lib/aws-sdk-iot/client_api.rb +454 -9
- data/lib/aws-sdk-iot/customizations.rb +1 -1
- data/lib/aws-sdk-iot/errors.rb +1 -1
- data/lib/aws-sdk-iot/resource.rb +1 -1
- data/lib/aws-sdk-iot/types.rb +1310 -108
- metadata +10 -7
| @@ -3,7 +3,7 @@ | |
| 3 3 | 
             
            # WARNING ABOUT GENERATED CODE
         | 
| 4 4 | 
             
            #
         | 
| 5 5 | 
             
            # This file is generated. See the contributing guide for more information:
         | 
| 6 | 
            -
            # https://github.com/aws/aws-sdk-ruby/blob/ | 
| 6 | 
            +
            # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
         | 
| 7 7 | 
             
            #
         | 
| 8 8 | 
             
            # WARNING ABOUT GENERATED CODE
         | 
| 9 9 |  | 
| @@ -89,7 +89,6 @@ module Aws::IoT | |
| 89 89 | 
             
                AuditMitigationActionExecutionMetadata = Shapes::StructureShape.new(name: 'AuditMitigationActionExecutionMetadata')
         | 
| 90 90 | 
             
                AuditMitigationActionExecutionMetadataList = Shapes::ListShape.new(name: 'AuditMitigationActionExecutionMetadataList')
         | 
| 91 91 | 
             
                AuditMitigationActionsExecutionStatus = Shapes::StringShape.new(name: 'AuditMitigationActionsExecutionStatus')
         | 
| 92 | 
            -
                AuditMitigationActionsTaskId = Shapes::StringShape.new(name: 'AuditMitigationActionsTaskId')
         | 
| 93 92 | 
             
                AuditMitigationActionsTaskMetadata = Shapes::StructureShape.new(name: 'AuditMitigationActionsTaskMetadata')
         | 
| 94 93 | 
             
                AuditMitigationActionsTaskMetadataList = Shapes::ListShape.new(name: 'AuditMitigationActionsTaskMetadataList')
         | 
| 95 94 | 
             
                AuditMitigationActionsTaskStatistics = Shapes::MapShape.new(name: 'AuditMitigationActionsTaskStatistics')
         | 
| @@ -144,7 +143,10 @@ module Aws::IoT | |
| 144 143 | 
             
                BatchMode = Shapes::BooleanShape.new(name: 'BatchMode')
         | 
| 145 144 | 
             
                Behavior = Shapes::StructureShape.new(name: 'Behavior')
         | 
| 146 145 | 
             
                BehaviorCriteria = Shapes::StructureShape.new(name: 'BehaviorCriteria')
         | 
| 146 | 
            +
                BehaviorCriteriaType = Shapes::StringShape.new(name: 'BehaviorCriteriaType')
         | 
| 147 147 | 
             
                BehaviorMetric = Shapes::StringShape.new(name: 'BehaviorMetric')
         | 
| 148 | 
            +
                BehaviorModelTrainingSummaries = Shapes::ListShape.new(name: 'BehaviorModelTrainingSummaries')
         | 
| 149 | 
            +
                BehaviorModelTrainingSummary = Shapes::StructureShape.new(name: 'BehaviorModelTrainingSummary')
         | 
| 148 150 | 
             
                BehaviorName = Shapes::StringShape.new(name: 'BehaviorName')
         | 
| 149 151 | 
             
                Behaviors = Shapes::ListShape.new(name: 'Behaviors')
         | 
| 150 152 | 
             
                BillingGroupArn = Shapes::StringShape.new(name: 'BillingGroupArn')
         | 
| @@ -167,6 +169,8 @@ module Aws::IoT | |
| 167 169 | 
             
                CancelAuditTaskRequest = Shapes::StructureShape.new(name: 'CancelAuditTaskRequest')
         | 
| 168 170 | 
             
                CancelAuditTaskResponse = Shapes::StructureShape.new(name: 'CancelAuditTaskResponse')
         | 
| 169 171 | 
             
                CancelCertificateTransferRequest = Shapes::StructureShape.new(name: 'CancelCertificateTransferRequest')
         | 
| 172 | 
            +
                CancelDetectMitigationActionsTaskRequest = Shapes::StructureShape.new(name: 'CancelDetectMitigationActionsTaskRequest')
         | 
| 173 | 
            +
                CancelDetectMitigationActionsTaskResponse = Shapes::StructureShape.new(name: 'CancelDetectMitigationActionsTaskResponse')
         | 
| 170 174 | 
             
                CancelJobExecutionRequest = Shapes::StructureShape.new(name: 'CancelJobExecutionRequest')
         | 
| 171 175 | 
             
                CancelJobRequest = Shapes::StructureShape.new(name: 'CancelJobRequest')
         | 
| 172 176 | 
             
                CancelJobResponse = Shapes::StructureShape.new(name: 'CancelJobResponse')
         | 
| @@ -196,6 +200,7 @@ module Aws::IoT | |
| 196 200 | 
             
                ClearDefaultAuthorizerRequest = Shapes::StructureShape.new(name: 'ClearDefaultAuthorizerRequest')
         | 
| 197 201 | 
             
                ClearDefaultAuthorizerResponse = Shapes::StructureShape.new(name: 'ClearDefaultAuthorizerResponse')
         | 
| 198 202 | 
             
                ClientId = Shapes::StringShape.new(name: 'ClientId')
         | 
| 203 | 
            +
                ClientProperties = Shapes::MapShape.new(name: 'ClientProperties')
         | 
| 199 204 | 
             
                ClientRequestToken = Shapes::StringShape.new(name: 'ClientRequestToken')
         | 
| 200 205 | 
             
                CloudwatchAlarmAction = Shapes::StructureShape.new(name: 'CloudwatchAlarmAction')
         | 
| 201 206 | 
             
                CloudwatchLogsAction = Shapes::StructureShape.new(name: 'CloudwatchLogsAction')
         | 
| @@ -208,6 +213,7 @@ module Aws::IoT | |
| 208 213 | 
             
                Comment = Shapes::StringShape.new(name: 'Comment')
         | 
| 209 214 | 
             
                ComparisonOperator = Shapes::StringShape.new(name: 'ComparisonOperator')
         | 
| 210 215 | 
             
                CompliantChecksCount = Shapes::IntegerShape.new(name: 'CompliantChecksCount')
         | 
| 216 | 
            +
                ConfidenceLevel = Shapes::StringShape.new(name: 'ConfidenceLevel')
         | 
| 211 217 | 
             
                Configuration = Shapes::StructureShape.new(name: 'Configuration')
         | 
| 212 218 | 
             
                ConfirmTopicRuleDestinationRequest = Shapes::StructureShape.new(name: 'ConfirmTopicRuleDestinationRequest')
         | 
| 213 219 | 
             
                ConfirmTopicRuleDestinationResponse = Shapes::StructureShape.new(name: 'ConfirmTopicRuleDestinationResponse')
         | 
| @@ -225,6 +231,8 @@ module Aws::IoT | |
| 225 231 | 
             
                CreateBillingGroupResponse = Shapes::StructureShape.new(name: 'CreateBillingGroupResponse')
         | 
| 226 232 | 
             
                CreateCertificateFromCsrRequest = Shapes::StructureShape.new(name: 'CreateCertificateFromCsrRequest')
         | 
| 227 233 | 
             
                CreateCertificateFromCsrResponse = Shapes::StructureShape.new(name: 'CreateCertificateFromCsrResponse')
         | 
| 234 | 
            +
                CreateCustomMetricRequest = Shapes::StructureShape.new(name: 'CreateCustomMetricRequest')
         | 
| 235 | 
            +
                CreateCustomMetricResponse = Shapes::StructureShape.new(name: 'CreateCustomMetricResponse')
         | 
| 228 236 | 
             
                CreateDimensionRequest = Shapes::StructureShape.new(name: 'CreateDimensionRequest')
         | 
| 229 237 | 
             
                CreateDimensionResponse = Shapes::StructureShape.new(name: 'CreateDimensionResponse')
         | 
| 230 238 | 
             
                CreateDomainConfigurationRequest = Shapes::StructureShape.new(name: 'CreateDomainConfigurationRequest')
         | 
| @@ -270,7 +278,11 @@ module Aws::IoT | |
| 270 278 | 
             
                CreationDate = Shapes::TimestampShape.new(name: 'CreationDate')
         | 
| 271 279 | 
             
                CredentialDurationSeconds = Shapes::IntegerShape.new(name: 'CredentialDurationSeconds')
         | 
| 272 280 | 
             
                CustomCodeSigning = Shapes::StructureShape.new(name: 'CustomCodeSigning')
         | 
| 281 | 
            +
                CustomMetricArn = Shapes::StringShape.new(name: 'CustomMetricArn')
         | 
| 282 | 
            +
                CustomMetricDisplayName = Shapes::StringShape.new(name: 'CustomMetricDisplayName')
         | 
| 283 | 
            +
                CustomMetricType = Shapes::StringShape.new(name: 'CustomMetricType')
         | 
| 273 284 | 
             
                CustomerVersion = Shapes::IntegerShape.new(name: 'CustomerVersion')
         | 
| 285 | 
            +
                DataCollectionPercentage = Shapes::FloatShape.new(name: 'DataCollectionPercentage')
         | 
| 274 286 | 
             
                DateType = Shapes::TimestampShape.new(name: 'DateType')
         | 
| 275 287 | 
             
                DayOfMonth = Shapes::StringShape.new(name: 'DayOfMonth')
         | 
| 276 288 | 
             
                DayOfWeek = Shapes::StringShape.new(name: 'DayOfWeek')
         | 
| @@ -289,6 +301,8 @@ module Aws::IoT | |
| 289 301 | 
             
                DeleteCACertificateResponse = Shapes::StructureShape.new(name: 'DeleteCACertificateResponse')
         | 
| 290 302 | 
             
                DeleteCertificateRequest = Shapes::StructureShape.new(name: 'DeleteCertificateRequest')
         | 
| 291 303 | 
             
                DeleteConflictException = Shapes::StructureShape.new(name: 'DeleteConflictException')
         | 
| 304 | 
            +
                DeleteCustomMetricRequest = Shapes::StructureShape.new(name: 'DeleteCustomMetricRequest')
         | 
| 305 | 
            +
                DeleteCustomMetricResponse = Shapes::StructureShape.new(name: 'DeleteCustomMetricResponse')
         | 
| 292 306 | 
             
                DeleteDimensionRequest = Shapes::StructureShape.new(name: 'DeleteDimensionRequest')
         | 
| 293 307 | 
             
                DeleteDimensionResponse = Shapes::StructureShape.new(name: 'DeleteDimensionResponse')
         | 
| 294 308 | 
             
                DeleteDomainConfigurationRequest = Shapes::StructureShape.new(name: 'DeleteDomainConfigurationRequest')
         | 
| @@ -352,8 +366,12 @@ module Aws::IoT | |
| 352 366 | 
             
                DescribeCACertificateResponse = Shapes::StructureShape.new(name: 'DescribeCACertificateResponse')
         | 
| 353 367 | 
             
                DescribeCertificateRequest = Shapes::StructureShape.new(name: 'DescribeCertificateRequest')
         | 
| 354 368 | 
             
                DescribeCertificateResponse = Shapes::StructureShape.new(name: 'DescribeCertificateResponse')
         | 
| 369 | 
            +
                DescribeCustomMetricRequest = Shapes::StructureShape.new(name: 'DescribeCustomMetricRequest')
         | 
| 370 | 
            +
                DescribeCustomMetricResponse = Shapes::StructureShape.new(name: 'DescribeCustomMetricResponse')
         | 
| 355 371 | 
             
                DescribeDefaultAuthorizerRequest = Shapes::StructureShape.new(name: 'DescribeDefaultAuthorizerRequest')
         | 
| 356 372 | 
             
                DescribeDefaultAuthorizerResponse = Shapes::StructureShape.new(name: 'DescribeDefaultAuthorizerResponse')
         | 
| 373 | 
            +
                DescribeDetectMitigationActionsTaskRequest = Shapes::StructureShape.new(name: 'DescribeDetectMitigationActionsTaskRequest')
         | 
| 374 | 
            +
                DescribeDetectMitigationActionsTaskResponse = Shapes::StructureShape.new(name: 'DescribeDetectMitigationActionsTaskResponse')
         | 
| 357 375 | 
             
                DescribeDimensionRequest = Shapes::StructureShape.new(name: 'DescribeDimensionRequest')
         | 
| 358 376 | 
             
                DescribeDimensionResponse = Shapes::StructureShape.new(name: 'DescribeDimensionResponse')
         | 
| 359 377 | 
             
                DescribeDomainConfigurationRequest = Shapes::StructureShape.new(name: 'DescribeDomainConfigurationRequest')
         | 
| @@ -401,6 +419,16 @@ module Aws::IoT | |
| 401 419 | 
             
                DetailsKey = Shapes::StringShape.new(name: 'DetailsKey')
         | 
| 402 420 | 
             
                DetailsMap = Shapes::MapShape.new(name: 'DetailsMap')
         | 
| 403 421 | 
             
                DetailsValue = Shapes::StringShape.new(name: 'DetailsValue')
         | 
| 422 | 
            +
                DetectMitigationActionExecution = Shapes::StructureShape.new(name: 'DetectMitigationActionExecution')
         | 
| 423 | 
            +
                DetectMitigationActionExecutionErrorCode = Shapes::StringShape.new(name: 'DetectMitigationActionExecutionErrorCode')
         | 
| 424 | 
            +
                DetectMitigationActionExecutionList = Shapes::ListShape.new(name: 'DetectMitigationActionExecutionList')
         | 
| 425 | 
            +
                DetectMitigationActionExecutionStatus = Shapes::StringShape.new(name: 'DetectMitigationActionExecutionStatus')
         | 
| 426 | 
            +
                DetectMitigationActionsTaskStatistics = Shapes::StructureShape.new(name: 'DetectMitigationActionsTaskStatistics')
         | 
| 427 | 
            +
                DetectMitigationActionsTaskStatus = Shapes::StringShape.new(name: 'DetectMitigationActionsTaskStatus')
         | 
| 428 | 
            +
                DetectMitigationActionsTaskSummary = Shapes::StructureShape.new(name: 'DetectMitigationActionsTaskSummary')
         | 
| 429 | 
            +
                DetectMitigationActionsTaskSummaryList = Shapes::ListShape.new(name: 'DetectMitigationActionsTaskSummaryList')
         | 
| 430 | 
            +
                DetectMitigationActionsTaskTarget = Shapes::StructureShape.new(name: 'DetectMitigationActionsTaskTarget')
         | 
| 431 | 
            +
                DetectMitigationActionsToExecuteList = Shapes::ListShape.new(name: 'DetectMitigationActionsToExecuteList')
         | 
| 404 432 | 
             
                DeviceCertificateUpdateAction = Shapes::StringShape.new(name: 'DeviceCertificateUpdateAction')
         | 
| 405 433 | 
             
                DeviceDefenderThingName = Shapes::StringShape.new(name: 'DeviceDefenderThingName')
         | 
| 406 434 | 
             
                DimensionArn = Shapes::StringShape.new(name: 'DimensionArn')
         | 
| @@ -472,6 +500,9 @@ module Aws::IoT | |
| 472 500 | 
             
                Forced = Shapes::BooleanShape.new(name: 'Forced')
         | 
| 473 501 | 
             
                FunctionArn = Shapes::StringShape.new(name: 'FunctionArn')
         | 
| 474 502 | 
             
                GenerationId = Shapes::StringShape.new(name: 'GenerationId')
         | 
| 503 | 
            +
                GenericLongValue = Shapes::IntegerShape.new(name: 'GenericLongValue')
         | 
| 504 | 
            +
                GetBehaviorModelTrainingSummariesRequest = Shapes::StructureShape.new(name: 'GetBehaviorModelTrainingSummariesRequest')
         | 
| 505 | 
            +
                GetBehaviorModelTrainingSummariesResponse = Shapes::StructureShape.new(name: 'GetBehaviorModelTrainingSummariesResponse')
         | 
| 475 506 | 
             
                GetCardinalityRequest = Shapes::StructureShape.new(name: 'GetCardinalityRequest')
         | 
| 476 507 | 
             
                GetCardinalityResponse = Shapes::StructureShape.new(name: 'GetCardinalityResponse')
         | 
| 477 508 | 
             
                GetEffectivePoliciesRequest = Shapes::StructureShape.new(name: 'GetEffectivePoliciesRequest')
         | 
| @@ -566,6 +597,7 @@ module Aws::IoT | |
| 566 597 | 
             
                JobSummaryList = Shapes::ListShape.new(name: 'JobSummaryList')
         | 
| 567 598 | 
             
                JobTargets = Shapes::ListShape.new(name: 'JobTargets')
         | 
| 568 599 | 
             
                JsonDocument = Shapes::StringShape.new(name: 'JsonDocument')
         | 
| 600 | 
            +
                KafkaAction = Shapes::StructureShape.new(name: 'KafkaAction')
         | 
| 569 601 | 
             
                Key = Shapes::StringShape.new(name: 'Key')
         | 
| 570 602 | 
             
                KeyName = Shapes::StringShape.new(name: 'KeyName')
         | 
| 571 603 | 
             
                KeyPair = Shapes::StructureShape.new(name: 'KeyPair')
         | 
| @@ -574,6 +606,7 @@ module Aws::IoT | |
| 574 606 | 
             
                LambdaAction = Shapes::StructureShape.new(name: 'LambdaAction')
         | 
| 575 607 | 
             
                LaserMaxResults = Shapes::IntegerShape.new(name: 'LaserMaxResults')
         | 
| 576 608 | 
             
                LastModifiedDate = Shapes::TimestampShape.new(name: 'LastModifiedDate')
         | 
| 609 | 
            +
                LastUpdatedAtDate = Shapes::TimestampShape.new(name: 'LastUpdatedAtDate')
         | 
| 577 610 | 
             
                LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
         | 
| 578 611 | 
             
                ListActiveViolationsRequest = Shapes::StructureShape.new(name: 'ListActiveViolationsRequest')
         | 
| 579 612 | 
             
                ListActiveViolationsResponse = Shapes::StructureShape.new(name: 'ListActiveViolationsResponse')
         | 
| @@ -599,6 +632,12 @@ module Aws::IoT | |
| 599 632 | 
             
                ListCertificatesByCAResponse = Shapes::StructureShape.new(name: 'ListCertificatesByCAResponse')
         | 
| 600 633 | 
             
                ListCertificatesRequest = Shapes::StructureShape.new(name: 'ListCertificatesRequest')
         | 
| 601 634 | 
             
                ListCertificatesResponse = Shapes::StructureShape.new(name: 'ListCertificatesResponse')
         | 
| 635 | 
            +
                ListCustomMetricsRequest = Shapes::StructureShape.new(name: 'ListCustomMetricsRequest')
         | 
| 636 | 
            +
                ListCustomMetricsResponse = Shapes::StructureShape.new(name: 'ListCustomMetricsResponse')
         | 
| 637 | 
            +
                ListDetectMitigationActionsExecutionsRequest = Shapes::StructureShape.new(name: 'ListDetectMitigationActionsExecutionsRequest')
         | 
| 638 | 
            +
                ListDetectMitigationActionsExecutionsResponse = Shapes::StructureShape.new(name: 'ListDetectMitigationActionsExecutionsResponse')
         | 
| 639 | 
            +
                ListDetectMitigationActionsTasksRequest = Shapes::StructureShape.new(name: 'ListDetectMitigationActionsTasksRequest')
         | 
| 640 | 
            +
                ListDetectMitigationActionsTasksResponse = Shapes::StructureShape.new(name: 'ListDetectMitigationActionsTasksResponse')
         | 
| 602 641 | 
             
                ListDimensionsRequest = Shapes::StructureShape.new(name: 'ListDimensionsRequest')
         | 
| 603 642 | 
             
                ListDimensionsResponse = Shapes::StructureShape.new(name: 'ListDimensionsResponse')
         | 
| 604 643 | 
             
                ListDomainConfigurationsRequest = Shapes::StructureShape.new(name: 'ListDomainConfigurationsRequest')
         | 
| @@ -641,6 +680,7 @@ module Aws::IoT | |
| 641 680 | 
             
                ListSecurityProfilesResponse = Shapes::StructureShape.new(name: 'ListSecurityProfilesResponse')
         | 
| 642 681 | 
             
                ListStreamsRequest = Shapes::StructureShape.new(name: 'ListStreamsRequest')
         | 
| 643 682 | 
             
                ListStreamsResponse = Shapes::StructureShape.new(name: 'ListStreamsResponse')
         | 
| 683 | 
            +
                ListSuppressedAlerts = Shapes::BooleanShape.new(name: 'ListSuppressedAlerts')
         | 
| 644 684 | 
             
                ListSuppressedFindings = Shapes::BooleanShape.new(name: 'ListSuppressedFindings')
         | 
| 645 685 | 
             
                ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
         | 
| 646 686 | 
             
                ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
         | 
| @@ -682,6 +722,7 @@ module Aws::IoT | |
| 682 722 | 
             
                LogTargetName = Shapes::StringShape.new(name: 'LogTargetName')
         | 
| 683 723 | 
             
                LogTargetType = Shapes::StringShape.new(name: 'LogTargetType')
         | 
| 684 724 | 
             
                LoggingOptionsPayload = Shapes::StructureShape.new(name: 'LoggingOptionsPayload')
         | 
| 725 | 
            +
                MachineLearningDetectionConfig = Shapes::StructureShape.new(name: 'MachineLearningDetectionConfig')
         | 
| 685 726 | 
             
                MalformedPolicyException = Shapes::StructureShape.new(name: 'MalformedPolicyException')
         | 
| 686 727 | 
             
                Marker = Shapes::StringShape.new(name: 'Marker')
         | 
| 687 728 | 
             
                MaxJobExecutionsPerMin = Shapes::IntegerShape.new(name: 'MaxJobExecutionsPerMin')
         | 
| @@ -692,6 +733,8 @@ module Aws::IoT | |
| 692 733 | 
             
                MessageFormat = Shapes::StringShape.new(name: 'MessageFormat')
         | 
| 693 734 | 
             
                MessageId = Shapes::StringShape.new(name: 'MessageId')
         | 
| 694 735 | 
             
                MetricDimension = Shapes::StructureShape.new(name: 'MetricDimension')
         | 
| 736 | 
            +
                MetricName = Shapes::StringShape.new(name: 'MetricName')
         | 
| 737 | 
            +
                MetricNames = Shapes::ListShape.new(name: 'MetricNames')
         | 
| 695 738 | 
             
                MetricToRetain = Shapes::StructureShape.new(name: 'MetricToRetain')
         | 
| 696 739 | 
             
                MetricValue = Shapes::StructureShape.new(name: 'MetricValue')
         | 
| 697 740 | 
             
                Minimum = Shapes::FloatShape.new(name: 'Minimum')
         | 
| @@ -708,6 +751,8 @@ module Aws::IoT | |
| 708 751 | 
             
                MitigationActionNameList = Shapes::ListShape.new(name: 'MitigationActionNameList')
         | 
| 709 752 | 
             
                MitigationActionParams = Shapes::StructureShape.new(name: 'MitigationActionParams')
         | 
| 710 753 | 
             
                MitigationActionType = Shapes::StringShape.new(name: 'MitigationActionType')
         | 
| 754 | 
            +
                MitigationActionsTaskId = Shapes::StringShape.new(name: 'MitigationActionsTaskId')
         | 
| 755 | 
            +
                ModelStatus = Shapes::StringShape.new(name: 'ModelStatus')
         | 
| 711 756 | 
             
                MqttClientId = Shapes::StringShape.new(name: 'MqttClientId')
         | 
| 712 757 | 
             
                MqttContext = Shapes::StructureShape.new(name: 'MqttContext')
         | 
| 713 758 | 
             
                MqttPassword = Shapes::BlobShape.new(name: 'MqttPassword')
         | 
| @@ -718,6 +763,9 @@ module Aws::IoT | |
| 718 763 | 
             
                NonCompliantResource = Shapes::StructureShape.new(name: 'NonCompliantResource')
         | 
| 719 764 | 
             
                NonCompliantResourcesCount = Shapes::IntegerShape.new(name: 'NonCompliantResourcesCount')
         | 
| 720 765 | 
             
                NotConfiguredException = Shapes::StructureShape.new(name: 'NotConfiguredException')
         | 
| 766 | 
            +
                NullableBoolean = Shapes::BooleanShape.new(name: 'NullableBoolean')
         | 
| 767 | 
            +
                Number = Shapes::FloatShape.new(name: 'Number')
         | 
| 768 | 
            +
                NumberList = Shapes::ListShape.new(name: 'NumberList')
         | 
| 721 769 | 
             
                NumberOfThings = Shapes::IntegerShape.new(name: 'NumberOfThings')
         | 
| 722 770 | 
             
                OTAUpdateArn = Shapes::StringShape.new(name: 'OTAUpdateArn')
         | 
| 723 771 | 
             
                OTAUpdateDescription = Shapes::StringShape.new(name: 'OTAUpdateDescription')
         | 
| @@ -765,6 +813,7 @@ module Aws::IoT | |
| 765 813 | 
             
                Ports = Shapes::ListShape.new(name: 'Ports')
         | 
| 766 814 | 
             
                Prefix = Shapes::StringShape.new(name: 'Prefix')
         | 
| 767 815 | 
             
                PresignedUrlConfig = Shapes::StructureShape.new(name: 'PresignedUrlConfig')
         | 
| 816 | 
            +
                PrimitiveBoolean = Shapes::BooleanShape.new(name: 'PrimitiveBoolean')
         | 
| 768 817 | 
             
                Principal = Shapes::StringShape.new(name: 'Principal')
         | 
| 769 818 | 
             
                PrincipalArn = Shapes::StringShape.new(name: 'PrincipalArn')
         | 
| 770 819 | 
             
                PrincipalId = Shapes::StringShape.new(name: 'PrincipalId')
         | 
| @@ -870,6 +919,8 @@ module Aws::IoT | |
| 870 919 | 
             
                SearchIndexResponse = Shapes::StructureShape.new(name: 'SearchIndexResponse')
         | 
| 871 920 | 
             
                SearchableAttributes = Shapes::ListShape.new(name: 'SearchableAttributes')
         | 
| 872 921 | 
             
                Seconds = Shapes::IntegerShape.new(name: 'Seconds')
         | 
| 922 | 
            +
                SecurityGroupId = Shapes::StringShape.new(name: 'SecurityGroupId')
         | 
| 923 | 
            +
                SecurityGroupList = Shapes::ListShape.new(name: 'SecurityGroupList')
         | 
| 873 924 | 
             
                SecurityProfileArn = Shapes::StringShape.new(name: 'SecurityProfileArn')
         | 
| 874 925 | 
             
                SecurityProfileDescription = Shapes::StringShape.new(name: 'SecurityProfileDescription')
         | 
| 875 926 | 
             
                SecurityProfileIdentifier = Shapes::StructureShape.new(name: 'SecurityProfileIdentifier')
         | 
| @@ -913,6 +964,8 @@ module Aws::IoT | |
| 913 964 | 
             
                SqsAction = Shapes::StructureShape.new(name: 'SqsAction')
         | 
| 914 965 | 
             
                StartAuditMitigationActionsTaskRequest = Shapes::StructureShape.new(name: 'StartAuditMitigationActionsTaskRequest')
         | 
| 915 966 | 
             
                StartAuditMitigationActionsTaskResponse = Shapes::StructureShape.new(name: 'StartAuditMitigationActionsTaskResponse')
         | 
| 967 | 
            +
                StartDetectMitigationActionsTaskRequest = Shapes::StructureShape.new(name: 'StartDetectMitigationActionsTaskRequest')
         | 
| 968 | 
            +
                StartDetectMitigationActionsTaskResponse = Shapes::StructureShape.new(name: 'StartDetectMitigationActionsTaskResponse')
         | 
| 916 969 | 
             
                StartOnDemandAuditTaskRequest = Shapes::StructureShape.new(name: 'StartOnDemandAuditTaskRequest')
         | 
| 917 970 | 
             
                StartOnDemandAuditTaskResponse = Shapes::StructureShape.new(name: 'StartOnDemandAuditTaskResponse')
         | 
| 918 971 | 
             
                StartSigningJobParameter = Shapes::StructureShape.new(name: 'StartSigningJobParameter')
         | 
| @@ -940,11 +993,15 @@ module Aws::IoT | |
| 940 993 | 
             
                StreamVersion = Shapes::IntegerShape.new(name: 'StreamVersion')
         | 
| 941 994 | 
             
                StreamsSummary = Shapes::ListShape.new(name: 'StreamsSummary')
         | 
| 942 995 | 
             
                String = Shapes::StringShape.new(name: 'String')
         | 
| 996 | 
            +
                StringList = Shapes::ListShape.new(name: 'StringList')
         | 
| 943 997 | 
             
                StringMap = Shapes::MapShape.new(name: 'StringMap')
         | 
| 998 | 
            +
                SubnetId = Shapes::StringShape.new(name: 'SubnetId')
         | 
| 999 | 
            +
                SubnetIdList = Shapes::ListShape.new(name: 'SubnetIdList')
         | 
| 944 1000 | 
             
                SucceededFindingsCount = Shapes::IntegerShape.new(name: 'SucceededFindingsCount')
         | 
| 945 1001 | 
             
                SucceededThings = Shapes::IntegerShape.new(name: 'SucceededThings')
         | 
| 946 1002 | 
             
                Sum = Shapes::FloatShape.new(name: 'Sum')
         | 
| 947 1003 | 
             
                SumOfSquares = Shapes::FloatShape.new(name: 'SumOfSquares')
         | 
| 1004 | 
            +
                SuppressAlerts = Shapes::BooleanShape.new(name: 'SuppressAlerts')
         | 
| 948 1005 | 
             
                SuppressIndefinitely = Shapes::BooleanShape.new(name: 'SuppressIndefinitely')
         | 
| 949 1006 | 
             
                SuppressedNonCompliantResourcesCount = Shapes::IntegerShape.new(name: 'SuppressedNonCompliantResourcesCount')
         | 
| 950 1007 | 
             
                TableName = Shapes::StringShape.new(name: 'TableName')
         | 
| @@ -959,6 +1016,7 @@ module Aws::IoT | |
| 959 1016 | 
             
                TargetArn = Shapes::StringShape.new(name: 'TargetArn')
         | 
| 960 1017 | 
             
                TargetAuditCheckNames = Shapes::ListShape.new(name: 'TargetAuditCheckNames')
         | 
| 961 1018 | 
             
                TargetSelection = Shapes::StringShape.new(name: 'TargetSelection')
         | 
| 1019 | 
            +
                TargetViolationIdsForDetectMitigationActions = Shapes::ListShape.new(name: 'TargetViolationIdsForDetectMitigationActions')
         | 
| 962 1020 | 
             
                Targets = Shapes::ListShape.new(name: 'Targets')
         | 
| 963 1021 | 
             
                TaskAlreadyExistsException = Shapes::StructureShape.new(name: 'TaskAlreadyExistsException')
         | 
| 964 1022 | 
             
                TaskId = Shapes::StringShape.new(name: 'TaskId')
         | 
| @@ -1022,6 +1080,7 @@ module Aws::IoT | |
| 1022 1080 | 
             
                TimestreamTimestamp = Shapes::StructureShape.new(name: 'TimestreamTimestamp')
         | 
| 1023 1081 | 
             
                TimestreamTimestampUnit = Shapes::StringShape.new(name: 'TimestreamTimestampUnit')
         | 
| 1024 1082 | 
             
                TimestreamTimestampValue = Shapes::StringShape.new(name: 'TimestreamTimestampValue')
         | 
| 1083 | 
            +
                TinyMaxResults = Shapes::IntegerShape.new(name: 'TinyMaxResults')
         | 
| 1025 1084 | 
             
                TlsContext = Shapes::StructureShape.new(name: 'TlsContext')
         | 
| 1026 1085 | 
             
                Token = Shapes::StringShape.new(name: 'Token')
         | 
| 1027 1086 | 
             
                TokenKeyName = Shapes::StringShape.new(name: 'TokenKeyName')
         | 
| @@ -1063,6 +1122,8 @@ module Aws::IoT | |
| 1063 1122 | 
             
                UpdateCACertificateParams = Shapes::StructureShape.new(name: 'UpdateCACertificateParams')
         | 
| 1064 1123 | 
             
                UpdateCACertificateRequest = Shapes::StructureShape.new(name: 'UpdateCACertificateRequest')
         | 
| 1065 1124 | 
             
                UpdateCertificateRequest = Shapes::StructureShape.new(name: 'UpdateCertificateRequest')
         | 
| 1125 | 
            +
                UpdateCustomMetricRequest = Shapes::StructureShape.new(name: 'UpdateCustomMetricRequest')
         | 
| 1126 | 
            +
                UpdateCustomMetricResponse = Shapes::StructureShape.new(name: 'UpdateCustomMetricResponse')
         | 
| 1066 1127 | 
             
                UpdateDeviceCertificateParams = Shapes::StructureShape.new(name: 'UpdateDeviceCertificateParams')
         | 
| 1067 1128 | 
             
                UpdateDimensionRequest = Shapes::StructureShape.new(name: 'UpdateDimensionRequest')
         | 
| 1068 1129 | 
             
                UpdateDimensionResponse = Shapes::StructureShape.new(name: 'UpdateDimensionResponse')
         | 
| @@ -1109,13 +1170,21 @@ module Aws::IoT | |
| 1109 1170 | 
             
                VersionNumber = Shapes::IntegerShape.new(name: 'VersionNumber')
         | 
| 1110 1171 | 
             
                VersionsLimitExceededException = Shapes::StructureShape.new(name: 'VersionsLimitExceededException')
         | 
| 1111 1172 | 
             
                ViolationEvent = Shapes::StructureShape.new(name: 'ViolationEvent')
         | 
| 1173 | 
            +
                ViolationEventAdditionalInfo = Shapes::StructureShape.new(name: 'ViolationEventAdditionalInfo')
         | 
| 1174 | 
            +
                ViolationEventOccurrenceRange = Shapes::StructureShape.new(name: 'ViolationEventOccurrenceRange')
         | 
| 1112 1175 | 
             
                ViolationEventType = Shapes::StringShape.new(name: 'ViolationEventType')
         | 
| 1113 1176 | 
             
                ViolationEvents = Shapes::ListShape.new(name: 'ViolationEvents')
         | 
| 1114 1177 | 
             
                ViolationId = Shapes::StringShape.new(name: 'ViolationId')
         | 
| 1178 | 
            +
                VpcDestinationConfiguration = Shapes::StructureShape.new(name: 'VpcDestinationConfiguration')
         | 
| 1179 | 
            +
                VpcDestinationProperties = Shapes::StructureShape.new(name: 'VpcDestinationProperties')
         | 
| 1180 | 
            +
                VpcDestinationSummary = Shapes::StructureShape.new(name: 'VpcDestinationSummary')
         | 
| 1181 | 
            +
                VpcId = Shapes::StringShape.new(name: 'VpcId')
         | 
| 1115 1182 | 
             
                WaitingForDataCollectionChecksCount = Shapes::IntegerShape.new(name: 'WaitingForDataCollectionChecksCount')
         | 
| 1116 1183 | 
             
                errorMessage = Shapes::StringShape.new(name: 'errorMessage')
         | 
| 1117 1184 | 
             
                resourceArn = Shapes::StringShape.new(name: 'resourceArn')
         | 
| 1118 1185 | 
             
                resourceId = Shapes::StringShape.new(name: 'resourceId')
         | 
| 1186 | 
            +
                stringValue = Shapes::StringShape.new(name: 'stringValue')
         | 
| 1187 | 
            +
                usePrefixAttributeValue = Shapes::BooleanShape.new(name: 'usePrefixAttributeValue')
         | 
| 1119 1188 |  | 
| 1120 1189 | 
             
                AbortConfig.add_member(:criteria_list, Shapes::ShapeRef.new(shape: AbortCriteriaList, required: true, location_name: "criteriaList"))
         | 
| 1121 1190 | 
             
                AbortConfig.struct_class = Types::AbortConfig
         | 
| @@ -1152,6 +1221,7 @@ module Aws::IoT | |
| 1152 1221 | 
             
                Action.add_member(:step_functions, Shapes::ShapeRef.new(shape: StepFunctionsAction, location_name: "stepFunctions"))
         | 
| 1153 1222 | 
             
                Action.add_member(:timestream, Shapes::ShapeRef.new(shape: TimestreamAction, location_name: "timestream"))
         | 
| 1154 1223 | 
             
                Action.add_member(:http, Shapes::ShapeRef.new(shape: HttpAction, location_name: "http"))
         | 
| 1224 | 
            +
                Action.add_member(:kafka, Shapes::ShapeRef.new(shape: KafkaAction, location_name: "kafka"))
         | 
| 1155 1225 | 
             
                Action.struct_class = Types::Action
         | 
| 1156 1226 |  | 
| 1157 1227 | 
             
                ActionList.member = Shapes::ShapeRef.new(shape: Action)
         | 
| @@ -1161,6 +1231,7 @@ module Aws::IoT | |
| 1161 1231 | 
             
                ActiveViolation.add_member(:security_profile_name, Shapes::ShapeRef.new(shape: SecurityProfileName, location_name: "securityProfileName"))
         | 
| 1162 1232 | 
             
                ActiveViolation.add_member(:behavior, Shapes::ShapeRef.new(shape: Behavior, location_name: "behavior"))
         | 
| 1163 1233 | 
             
                ActiveViolation.add_member(:last_violation_value, Shapes::ShapeRef.new(shape: MetricValue, location_name: "lastViolationValue"))
         | 
| 1234 | 
            +
                ActiveViolation.add_member(:violation_event_additional_info, Shapes::ShapeRef.new(shape: ViolationEventAdditionalInfo, location_name: "violationEventAdditionalInfo"))
         | 
| 1164 1235 | 
             
                ActiveViolation.add_member(:last_violation_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "lastViolationTime"))
         | 
| 1165 1236 | 
             
                ActiveViolation.add_member(:violation_start_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "violationStartTime"))
         | 
| 1166 1237 | 
             
                ActiveViolation.struct_class = Types::ActiveViolation
         | 
| @@ -1302,7 +1373,7 @@ module Aws::IoT | |
| 1302 1373 |  | 
| 1303 1374 | 
             
                AuditFindings.member = Shapes::ShapeRef.new(shape: AuditFinding)
         | 
| 1304 1375 |  | 
| 1305 | 
            -
                AuditMitigationActionExecutionMetadata.add_member(:task_id, Shapes::ShapeRef.new(shape:  | 
| 1376 | 
            +
                AuditMitigationActionExecutionMetadata.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, location_name: "taskId"))
         | 
| 1306 1377 | 
             
                AuditMitigationActionExecutionMetadata.add_member(:finding_id, Shapes::ShapeRef.new(shape: FindingId, location_name: "findingId"))
         | 
| 1307 1378 | 
             
                AuditMitigationActionExecutionMetadata.add_member(:action_name, Shapes::ShapeRef.new(shape: MitigationActionName, location_name: "actionName"))
         | 
| 1308 1379 | 
             
                AuditMitigationActionExecutionMetadata.add_member(:action_id, Shapes::ShapeRef.new(shape: MitigationActionId, location_name: "actionId"))
         | 
| @@ -1315,7 +1386,7 @@ module Aws::IoT | |
| 1315 1386 |  | 
| 1316 1387 | 
             
                AuditMitigationActionExecutionMetadataList.member = Shapes::ShapeRef.new(shape: AuditMitigationActionExecutionMetadata)
         | 
| 1317 1388 |  | 
| 1318 | 
            -
                AuditMitigationActionsTaskMetadata.add_member(:task_id, Shapes::ShapeRef.new(shape:  | 
| 1389 | 
            +
                AuditMitigationActionsTaskMetadata.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, location_name: "taskId"))
         | 
| 1319 1390 | 
             
                AuditMitigationActionsTaskMetadata.add_member(:start_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "startTime"))
         | 
| 1320 1391 | 
             
                AuditMitigationActionsTaskMetadata.add_member(:task_status, Shapes::ShapeRef.new(shape: AuditMitigationActionsTaskStatus, location_name: "taskStatus"))
         | 
| 1321 1392 | 
             
                AuditMitigationActionsTaskMetadata.struct_class = Types::AuditMitigationActionsTaskMetadata
         | 
| @@ -1424,6 +1495,7 @@ module Aws::IoT | |
| 1424 1495 | 
             
                Behavior.add_member(:metric, Shapes::ShapeRef.new(shape: BehaviorMetric, location_name: "metric"))
         | 
| 1425 1496 | 
             
                Behavior.add_member(:metric_dimension, Shapes::ShapeRef.new(shape: MetricDimension, location_name: "metricDimension"))
         | 
| 1426 1497 | 
             
                Behavior.add_member(:criteria, Shapes::ShapeRef.new(shape: BehaviorCriteria, location_name: "criteria"))
         | 
| 1498 | 
            +
                Behavior.add_member(:suppress_alerts, Shapes::ShapeRef.new(shape: SuppressAlerts, location_name: "suppressAlerts"))
         | 
| 1427 1499 | 
             
                Behavior.struct_class = Types::Behavior
         | 
| 1428 1500 |  | 
| 1429 1501 | 
             
                BehaviorCriteria.add_member(:comparison_operator, Shapes::ShapeRef.new(shape: ComparisonOperator, location_name: "comparisonOperator"))
         | 
| @@ -1432,8 +1504,19 @@ module Aws::IoT | |
| 1432 1504 | 
             
                BehaviorCriteria.add_member(:consecutive_datapoints_to_alarm, Shapes::ShapeRef.new(shape: ConsecutiveDatapointsToAlarm, location_name: "consecutiveDatapointsToAlarm"))
         | 
| 1433 1505 | 
             
                BehaviorCriteria.add_member(:consecutive_datapoints_to_clear, Shapes::ShapeRef.new(shape: ConsecutiveDatapointsToClear, location_name: "consecutiveDatapointsToClear"))
         | 
| 1434 1506 | 
             
                BehaviorCriteria.add_member(:statistical_threshold, Shapes::ShapeRef.new(shape: StatisticalThreshold, location_name: "statisticalThreshold"))
         | 
| 1507 | 
            +
                BehaviorCriteria.add_member(:ml_detection_config, Shapes::ShapeRef.new(shape: MachineLearningDetectionConfig, location_name: "mlDetectionConfig"))
         | 
| 1435 1508 | 
             
                BehaviorCriteria.struct_class = Types::BehaviorCriteria
         | 
| 1436 1509 |  | 
| 1510 | 
            +
                BehaviorModelTrainingSummaries.member = Shapes::ShapeRef.new(shape: BehaviorModelTrainingSummary)
         | 
| 1511 | 
            +
             | 
| 1512 | 
            +
                BehaviorModelTrainingSummary.add_member(:security_profile_name, Shapes::ShapeRef.new(shape: SecurityProfileName, location_name: "securityProfileName"))
         | 
| 1513 | 
            +
                BehaviorModelTrainingSummary.add_member(:behavior_name, Shapes::ShapeRef.new(shape: BehaviorName, location_name: "behaviorName"))
         | 
| 1514 | 
            +
                BehaviorModelTrainingSummary.add_member(:training_data_collection_start_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "trainingDataCollectionStartDate"))
         | 
| 1515 | 
            +
                BehaviorModelTrainingSummary.add_member(:model_status, Shapes::ShapeRef.new(shape: ModelStatus, location_name: "modelStatus"))
         | 
| 1516 | 
            +
                BehaviorModelTrainingSummary.add_member(:datapoints_collection_percentage, Shapes::ShapeRef.new(shape: DataCollectionPercentage, location_name: "datapointsCollectionPercentage"))
         | 
| 1517 | 
            +
                BehaviorModelTrainingSummary.add_member(:last_model_refresh_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "lastModelRefreshDate"))
         | 
| 1518 | 
            +
                BehaviorModelTrainingSummary.struct_class = Types::BehaviorModelTrainingSummary
         | 
| 1519 | 
            +
             | 
| 1437 1520 | 
             
                Behaviors.member = Shapes::ShapeRef.new(shape: Behavior)
         | 
| 1438 1521 |  | 
| 1439 1522 | 
             
                BillingGroupMetadata.add_member(:creation_date, Shapes::ShapeRef.new(shape: CreationDate, location_name: "creationDate"))
         | 
| @@ -1465,7 +1548,7 @@ module Aws::IoT | |
| 1465 1548 |  | 
| 1466 1549 | 
             
                CACertificates.member = Shapes::ShapeRef.new(shape: CACertificate)
         | 
| 1467 1550 |  | 
| 1468 | 
            -
                CancelAuditMitigationActionsTaskRequest.add_member(:task_id, Shapes::ShapeRef.new(shape:  | 
| 1551 | 
            +
                CancelAuditMitigationActionsTaskRequest.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, required: true, location: "uri", location_name: "taskId"))
         | 
| 1469 1552 | 
             
                CancelAuditMitigationActionsTaskRequest.struct_class = Types::CancelAuditMitigationActionsTaskRequest
         | 
| 1470 1553 |  | 
| 1471 1554 | 
             
                CancelAuditMitigationActionsTaskResponse.struct_class = Types::CancelAuditMitigationActionsTaskResponse
         | 
| @@ -1478,6 +1561,11 @@ module Aws::IoT | |
| 1478 1561 | 
             
                CancelCertificateTransferRequest.add_member(:certificate_id, Shapes::ShapeRef.new(shape: CertificateId, required: true, location: "uri", location_name: "certificateId"))
         | 
| 1479 1562 | 
             
                CancelCertificateTransferRequest.struct_class = Types::CancelCertificateTransferRequest
         | 
| 1480 1563 |  | 
| 1564 | 
            +
                CancelDetectMitigationActionsTaskRequest.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, required: true, location: "uri", location_name: "taskId"))
         | 
| 1565 | 
            +
                CancelDetectMitigationActionsTaskRequest.struct_class = Types::CancelDetectMitigationActionsTaskRequest
         | 
| 1566 | 
            +
             | 
| 1567 | 
            +
                CancelDetectMitigationActionsTaskResponse.struct_class = Types::CancelDetectMitigationActionsTaskResponse
         | 
| 1568 | 
            +
             | 
| 1481 1569 | 
             
                CancelJobExecutionRequest.add_member(:job_id, Shapes::ShapeRef.new(shape: JobId, required: true, location: "uri", location_name: "jobId"))
         | 
| 1482 1570 | 
             
                CancelJobExecutionRequest.add_member(:thing_name, Shapes::ShapeRef.new(shape: ThingName, required: true, location: "uri", location_name: "thingName"))
         | 
| 1483 1571 | 
             
                CancelJobExecutionRequest.add_member(:force, Shapes::ShapeRef.new(shape: ForceFlag, location: "querystring", location_name: "force"))
         | 
| @@ -1540,6 +1628,9 @@ module Aws::IoT | |
| 1540 1628 |  | 
| 1541 1629 | 
             
                ClearDefaultAuthorizerResponse.struct_class = Types::ClearDefaultAuthorizerResponse
         | 
| 1542 1630 |  | 
| 1631 | 
            +
                ClientProperties.key = Shapes::ShapeRef.new(shape: String)
         | 
| 1632 | 
            +
                ClientProperties.value = Shapes::ShapeRef.new(shape: String)
         | 
| 1633 | 
            +
             | 
| 1543 1634 | 
             
                CloudwatchAlarmAction.add_member(:role_arn, Shapes::ShapeRef.new(shape: AwsArn, required: true, location_name: "roleArn"))
         | 
| 1544 1635 | 
             
                CloudwatchAlarmAction.add_member(:alarm_name, Shapes::ShapeRef.new(shape: AlarmName, required: true, location_name: "alarmName"))
         | 
| 1545 1636 | 
             
                CloudwatchAlarmAction.add_member(:state_reason, Shapes::ShapeRef.new(shape: StateReason, required: true, location_name: "stateReason"))
         | 
| @@ -1623,6 +1714,17 @@ module Aws::IoT | |
| 1623 1714 | 
             
                CreateCertificateFromCsrResponse.add_member(:certificate_pem, Shapes::ShapeRef.new(shape: CertificatePem, location_name: "certificatePem"))
         | 
| 1624 1715 | 
             
                CreateCertificateFromCsrResponse.struct_class = Types::CreateCertificateFromCsrResponse
         | 
| 1625 1716 |  | 
| 1717 | 
            +
                CreateCustomMetricRequest.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, required: true, location: "uri", location_name: "metricName"))
         | 
| 1718 | 
            +
                CreateCustomMetricRequest.add_member(:display_name, Shapes::ShapeRef.new(shape: CustomMetricDisplayName, location_name: "displayName"))
         | 
| 1719 | 
            +
                CreateCustomMetricRequest.add_member(:metric_type, Shapes::ShapeRef.new(shape: CustomMetricType, required: true, location_name: "metricType"))
         | 
| 1720 | 
            +
                CreateCustomMetricRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
         | 
| 1721 | 
            +
                CreateCustomMetricRequest.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, required: true, location_name: "clientRequestToken", metadata: {"idempotencyToken"=>true}))
         | 
| 1722 | 
            +
                CreateCustomMetricRequest.struct_class = Types::CreateCustomMetricRequest
         | 
| 1723 | 
            +
             | 
| 1724 | 
            +
                CreateCustomMetricResponse.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, location_name: "metricName"))
         | 
| 1725 | 
            +
                CreateCustomMetricResponse.add_member(:metric_arn, Shapes::ShapeRef.new(shape: CustomMetricArn, location_name: "metricArn"))
         | 
| 1726 | 
            +
                CreateCustomMetricResponse.struct_class = Types::CreateCustomMetricResponse
         | 
| 1727 | 
            +
             | 
| 1626 1728 | 
             
                CreateDimensionRequest.add_member(:name, Shapes::ShapeRef.new(shape: DimensionName, required: true, location: "uri", location_name: "name"))
         | 
| 1627 1729 | 
             
                CreateDimensionRequest.add_member(:type, Shapes::ShapeRef.new(shape: DimensionType, required: true, location_name: "type"))
         | 
| 1628 1730 | 
             
                CreateDimensionRequest.add_member(:string_values, Shapes::ShapeRef.new(shape: DimensionStringValues, required: true, location_name: "stringValues"))
         | 
| @@ -1911,6 +2013,11 @@ module Aws::IoT | |
| 1911 2013 | 
             
                DeleteConflictException.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
         | 
| 1912 2014 | 
             
                DeleteConflictException.struct_class = Types::DeleteConflictException
         | 
| 1913 2015 |  | 
| 2016 | 
            +
                DeleteCustomMetricRequest.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, required: true, location: "uri", location_name: "metricName"))
         | 
| 2017 | 
            +
                DeleteCustomMetricRequest.struct_class = Types::DeleteCustomMetricRequest
         | 
| 2018 | 
            +
             | 
| 2019 | 
            +
                DeleteCustomMetricResponse.struct_class = Types::DeleteCustomMetricResponse
         | 
| 2020 | 
            +
             | 
| 1914 2021 | 
             
                DeleteDimensionRequest.add_member(:name, Shapes::ShapeRef.new(shape: DimensionName, required: true, location: "uri", location_name: "name"))
         | 
| 1915 2022 | 
             
                DeleteDimensionRequest.struct_class = Types::DeleteDimensionRequest
         | 
| 1916 2023 |  | 
| @@ -2046,7 +2153,7 @@ module Aws::IoT | |
| 2046 2153 | 
             
                DescribeAuditFindingResponse.add_member(:finding, Shapes::ShapeRef.new(shape: AuditFinding, location_name: "finding"))
         | 
| 2047 2154 | 
             
                DescribeAuditFindingResponse.struct_class = Types::DescribeAuditFindingResponse
         | 
| 2048 2155 |  | 
| 2049 | 
            -
                DescribeAuditMitigationActionsTaskRequest.add_member(:task_id, Shapes::ShapeRef.new(shape:  | 
| 2156 | 
            +
                DescribeAuditMitigationActionsTaskRequest.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, required: true, location: "uri", location_name: "taskId"))
         | 
| 2050 2157 | 
             
                DescribeAuditMitigationActionsTaskRequest.struct_class = Types::DescribeAuditMitigationActionsTaskRequest
         | 
| 2051 2158 |  | 
| 2052 2159 | 
             
                DescribeAuditMitigationActionsTaskResponse.add_member(:task_status, Shapes::ShapeRef.new(shape: AuditMitigationActionsTaskStatus, location_name: "taskStatus"))
         | 
| @@ -2110,11 +2217,28 @@ module Aws::IoT | |
| 2110 2217 | 
             
                DescribeCertificateResponse.add_member(:certificate_description, Shapes::ShapeRef.new(shape: CertificateDescription, location_name: "certificateDescription"))
         | 
| 2111 2218 | 
             
                DescribeCertificateResponse.struct_class = Types::DescribeCertificateResponse
         | 
| 2112 2219 |  | 
| 2220 | 
            +
                DescribeCustomMetricRequest.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, required: true, location: "uri", location_name: "metricName"))
         | 
| 2221 | 
            +
                DescribeCustomMetricRequest.struct_class = Types::DescribeCustomMetricRequest
         | 
| 2222 | 
            +
             | 
| 2223 | 
            +
                DescribeCustomMetricResponse.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, location_name: "metricName"))
         | 
| 2224 | 
            +
                DescribeCustomMetricResponse.add_member(:metric_arn, Shapes::ShapeRef.new(shape: CustomMetricArn, location_name: "metricArn"))
         | 
| 2225 | 
            +
                DescribeCustomMetricResponse.add_member(:metric_type, Shapes::ShapeRef.new(shape: CustomMetricType, location_name: "metricType"))
         | 
| 2226 | 
            +
                DescribeCustomMetricResponse.add_member(:display_name, Shapes::ShapeRef.new(shape: CustomMetricDisplayName, location_name: "displayName"))
         | 
| 2227 | 
            +
                DescribeCustomMetricResponse.add_member(:creation_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "creationDate"))
         | 
| 2228 | 
            +
                DescribeCustomMetricResponse.add_member(:last_modified_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "lastModifiedDate"))
         | 
| 2229 | 
            +
                DescribeCustomMetricResponse.struct_class = Types::DescribeCustomMetricResponse
         | 
| 2230 | 
            +
             | 
| 2113 2231 | 
             
                DescribeDefaultAuthorizerRequest.struct_class = Types::DescribeDefaultAuthorizerRequest
         | 
| 2114 2232 |  | 
| 2115 2233 | 
             
                DescribeDefaultAuthorizerResponse.add_member(:authorizer_description, Shapes::ShapeRef.new(shape: AuthorizerDescription, location_name: "authorizerDescription"))
         | 
| 2116 2234 | 
             
                DescribeDefaultAuthorizerResponse.struct_class = Types::DescribeDefaultAuthorizerResponse
         | 
| 2117 2235 |  | 
| 2236 | 
            +
                DescribeDetectMitigationActionsTaskRequest.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, required: true, location: "uri", location_name: "taskId"))
         | 
| 2237 | 
            +
                DescribeDetectMitigationActionsTaskRequest.struct_class = Types::DescribeDetectMitigationActionsTaskRequest
         | 
| 2238 | 
            +
             | 
| 2239 | 
            +
                DescribeDetectMitigationActionsTaskResponse.add_member(:task_summary, Shapes::ShapeRef.new(shape: DetectMitigationActionsTaskSummary, location_name: "taskSummary"))
         | 
| 2240 | 
            +
                DescribeDetectMitigationActionsTaskResponse.struct_class = Types::DescribeDetectMitigationActionsTaskResponse
         | 
| 2241 | 
            +
             | 
| 2118 2242 | 
             
                DescribeDimensionRequest.add_member(:name, Shapes::ShapeRef.new(shape: DimensionName, required: true, location: "uri", location_name: "name"))
         | 
| 2119 2243 | 
             
                DescribeDimensionRequest.struct_class = Types::DescribeDimensionRequest
         | 
| 2120 2244 |  | 
| @@ -2333,6 +2457,45 @@ module Aws::IoT | |
| 2333 2457 | 
             
                DetailsMap.key = Shapes::ShapeRef.new(shape: DetailsKey)
         | 
| 2334 2458 | 
             
                DetailsMap.value = Shapes::ShapeRef.new(shape: DetailsValue)
         | 
| 2335 2459 |  | 
| 2460 | 
            +
                DetectMitigationActionExecution.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, location_name: "taskId"))
         | 
| 2461 | 
            +
                DetectMitigationActionExecution.add_member(:violation_id, Shapes::ShapeRef.new(shape: ViolationId, location_name: "violationId"))
         | 
| 2462 | 
            +
                DetectMitigationActionExecution.add_member(:action_name, Shapes::ShapeRef.new(shape: MitigationActionName, location_name: "actionName"))
         | 
| 2463 | 
            +
                DetectMitigationActionExecution.add_member(:thing_name, Shapes::ShapeRef.new(shape: DeviceDefenderThingName, location_name: "thingName"))
         | 
| 2464 | 
            +
                DetectMitigationActionExecution.add_member(:execution_start_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "executionStartDate"))
         | 
| 2465 | 
            +
                DetectMitigationActionExecution.add_member(:execution_end_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "executionEndDate"))
         | 
| 2466 | 
            +
                DetectMitigationActionExecution.add_member(:status, Shapes::ShapeRef.new(shape: DetectMitigationActionExecutionStatus, location_name: "status"))
         | 
| 2467 | 
            +
                DetectMitigationActionExecution.add_member(:error_code, Shapes::ShapeRef.new(shape: DetectMitigationActionExecutionErrorCode, location_name: "errorCode"))
         | 
| 2468 | 
            +
                DetectMitigationActionExecution.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
         | 
| 2469 | 
            +
                DetectMitigationActionExecution.struct_class = Types::DetectMitigationActionExecution
         | 
| 2470 | 
            +
             | 
| 2471 | 
            +
                DetectMitigationActionExecutionList.member = Shapes::ShapeRef.new(shape: DetectMitigationActionExecution)
         | 
| 2472 | 
            +
             | 
| 2473 | 
            +
                DetectMitigationActionsTaskStatistics.add_member(:actions_executed, Shapes::ShapeRef.new(shape: GenericLongValue, location_name: "actionsExecuted"))
         | 
| 2474 | 
            +
                DetectMitigationActionsTaskStatistics.add_member(:actions_skipped, Shapes::ShapeRef.new(shape: GenericLongValue, location_name: "actionsSkipped"))
         | 
| 2475 | 
            +
                DetectMitigationActionsTaskStatistics.add_member(:actions_failed, Shapes::ShapeRef.new(shape: GenericLongValue, location_name: "actionsFailed"))
         | 
| 2476 | 
            +
                DetectMitigationActionsTaskStatistics.struct_class = Types::DetectMitigationActionsTaskStatistics
         | 
| 2477 | 
            +
             | 
| 2478 | 
            +
                DetectMitigationActionsTaskSummary.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, location_name: "taskId"))
         | 
| 2479 | 
            +
                DetectMitigationActionsTaskSummary.add_member(:task_status, Shapes::ShapeRef.new(shape: DetectMitigationActionsTaskStatus, location_name: "taskStatus"))
         | 
| 2480 | 
            +
                DetectMitigationActionsTaskSummary.add_member(:task_start_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "taskStartTime"))
         | 
| 2481 | 
            +
                DetectMitigationActionsTaskSummary.add_member(:task_end_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "taskEndTime"))
         | 
| 2482 | 
            +
                DetectMitigationActionsTaskSummary.add_member(:target, Shapes::ShapeRef.new(shape: DetectMitigationActionsTaskTarget, location_name: "target"))
         | 
| 2483 | 
            +
                DetectMitigationActionsTaskSummary.add_member(:violation_event_occurrence_range, Shapes::ShapeRef.new(shape: ViolationEventOccurrenceRange, location_name: "violationEventOccurrenceRange"))
         | 
| 2484 | 
            +
                DetectMitigationActionsTaskSummary.add_member(:only_active_violations_included, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "onlyActiveViolationsIncluded"))
         | 
| 2485 | 
            +
                DetectMitigationActionsTaskSummary.add_member(:suppressed_alerts_included, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "suppressedAlertsIncluded"))
         | 
| 2486 | 
            +
                DetectMitigationActionsTaskSummary.add_member(:actions_definition, Shapes::ShapeRef.new(shape: MitigationActionList, location_name: "actionsDefinition"))
         | 
| 2487 | 
            +
                DetectMitigationActionsTaskSummary.add_member(:task_statistics, Shapes::ShapeRef.new(shape: DetectMitigationActionsTaskStatistics, location_name: "taskStatistics"))
         | 
| 2488 | 
            +
                DetectMitigationActionsTaskSummary.struct_class = Types::DetectMitigationActionsTaskSummary
         | 
| 2489 | 
            +
             | 
| 2490 | 
            +
                DetectMitigationActionsTaskSummaryList.member = Shapes::ShapeRef.new(shape: DetectMitigationActionsTaskSummary)
         | 
| 2491 | 
            +
             | 
| 2492 | 
            +
                DetectMitigationActionsTaskTarget.add_member(:violation_ids, Shapes::ShapeRef.new(shape: TargetViolationIdsForDetectMitigationActions, location_name: "violationIds"))
         | 
| 2493 | 
            +
                DetectMitigationActionsTaskTarget.add_member(:security_profile_name, Shapes::ShapeRef.new(shape: SecurityProfileName, location_name: "securityProfileName"))
         | 
| 2494 | 
            +
                DetectMitigationActionsTaskTarget.add_member(:behavior_name, Shapes::ShapeRef.new(shape: BehaviorName, location_name: "behaviorName"))
         | 
| 2495 | 
            +
                DetectMitigationActionsTaskTarget.struct_class = Types::DetectMitigationActionsTaskTarget
         | 
| 2496 | 
            +
             | 
| 2497 | 
            +
                DetectMitigationActionsToExecuteList.member = Shapes::ShapeRef.new(shape: MitigationActionName)
         | 
| 2498 | 
            +
             | 
| 2336 2499 | 
             
                DimensionNames.member = Shapes::ShapeRef.new(shape: DimensionName)
         | 
| 2337 2500 |  | 
| 2338 2501 | 
             
                DimensionStringValues.member = Shapes::ShapeRef.new(shape: DimensionStringValue)
         | 
| @@ -2417,6 +2580,15 @@ module Aws::IoT | |
| 2417 2580 | 
             
                FirehoseAction.add_member(:batch_mode, Shapes::ShapeRef.new(shape: BatchMode, location_name: "batchMode"))
         | 
| 2418 2581 | 
             
                FirehoseAction.struct_class = Types::FirehoseAction
         | 
| 2419 2582 |  | 
| 2583 | 
            +
                GetBehaviorModelTrainingSummariesRequest.add_member(:security_profile_name, Shapes::ShapeRef.new(shape: SecurityProfileName, location: "querystring", location_name: "securityProfileName"))
         | 
| 2584 | 
            +
                GetBehaviorModelTrainingSummariesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: TinyMaxResults, location: "querystring", location_name: "maxResults"))
         | 
| 2585 | 
            +
                GetBehaviorModelTrainingSummariesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "nextToken"))
         | 
| 2586 | 
            +
                GetBehaviorModelTrainingSummariesRequest.struct_class = Types::GetBehaviorModelTrainingSummariesRequest
         | 
| 2587 | 
            +
             | 
| 2588 | 
            +
                GetBehaviorModelTrainingSummariesResponse.add_member(:summaries, Shapes::ShapeRef.new(shape: BehaviorModelTrainingSummaries, location_name: "summaries"))
         | 
| 2589 | 
            +
                GetBehaviorModelTrainingSummariesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
         | 
| 2590 | 
            +
                GetBehaviorModelTrainingSummariesResponse.struct_class = Types::GetBehaviorModelTrainingSummariesResponse
         | 
| 2591 | 
            +
             | 
| 2420 2592 | 
             
                GetCardinalityRequest.add_member(:index_name, Shapes::ShapeRef.new(shape: IndexName, location_name: "indexName"))
         | 
| 2421 2593 | 
             
                GetCardinalityRequest.add_member(:query_string, Shapes::ShapeRef.new(shape: QueryString, required: true, location_name: "queryString"))
         | 
| 2422 2594 | 
             
                GetCardinalityRequest.add_member(:aggregation_field, Shapes::ShapeRef.new(shape: AggregationField, location_name: "aggregationField"))
         | 
| @@ -2692,6 +2864,13 @@ module Aws::IoT | |
| 2692 2864 |  | 
| 2693 2865 | 
             
                JobTargets.member = Shapes::ShapeRef.new(shape: TargetArn)
         | 
| 2694 2866 |  | 
| 2867 | 
            +
                KafkaAction.add_member(:destination_arn, Shapes::ShapeRef.new(shape: AwsArn, required: true, location_name: "destinationArn"))
         | 
| 2868 | 
            +
                KafkaAction.add_member(:topic, Shapes::ShapeRef.new(shape: String, required: true, location_name: "topic"))
         | 
| 2869 | 
            +
                KafkaAction.add_member(:key, Shapes::ShapeRef.new(shape: String, location_name: "key"))
         | 
| 2870 | 
            +
                KafkaAction.add_member(:partition, Shapes::ShapeRef.new(shape: String, location_name: "partition"))
         | 
| 2871 | 
            +
                KafkaAction.add_member(:client_properties, Shapes::ShapeRef.new(shape: ClientProperties, required: true, location_name: "clientProperties"))
         | 
| 2872 | 
            +
                KafkaAction.struct_class = Types::KafkaAction
         | 
| 2873 | 
            +
             | 
| 2695 2874 | 
             
                KeyPair.add_member(:public_key, Shapes::ShapeRef.new(shape: PublicKey, location_name: "PublicKey"))
         | 
| 2696 2875 | 
             
                KeyPair.add_member(:private_key, Shapes::ShapeRef.new(shape: PrivateKey, location_name: "PrivateKey"))
         | 
| 2697 2876 | 
             
                KeyPair.struct_class = Types::KeyPair
         | 
| @@ -2709,6 +2888,8 @@ module Aws::IoT | |
| 2709 2888 |  | 
| 2710 2889 | 
             
                ListActiveViolationsRequest.add_member(:thing_name, Shapes::ShapeRef.new(shape: DeviceDefenderThingName, location: "querystring", location_name: "thingName"))
         | 
| 2711 2890 | 
             
                ListActiveViolationsRequest.add_member(:security_profile_name, Shapes::ShapeRef.new(shape: SecurityProfileName, location: "querystring", location_name: "securityProfileName"))
         | 
| 2891 | 
            +
                ListActiveViolationsRequest.add_member(:behavior_criteria_type, Shapes::ShapeRef.new(shape: BehaviorCriteriaType, location: "querystring", location_name: "behaviorCriteriaType"))
         | 
| 2892 | 
            +
                ListActiveViolationsRequest.add_member(:list_suppressed_alerts, Shapes::ShapeRef.new(shape: ListSuppressedAlerts, location: "querystring", location_name: "listSuppressedAlerts"))
         | 
| 2712 2893 | 
             
                ListActiveViolationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "nextToken"))
         | 
| 2713 2894 | 
             
                ListActiveViolationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
         | 
| 2714 2895 | 
             
                ListActiveViolationsRequest.struct_class = Types::ListActiveViolationsRequest
         | 
| @@ -2741,7 +2922,7 @@ module Aws::IoT | |
| 2741 2922 | 
             
                ListAuditFindingsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
         | 
| 2742 2923 | 
             
                ListAuditFindingsResponse.struct_class = Types::ListAuditFindingsResponse
         | 
| 2743 2924 |  | 
| 2744 | 
            -
                ListAuditMitigationActionsExecutionsRequest.add_member(:task_id, Shapes::ShapeRef.new(shape:  | 
| 2925 | 
            +
                ListAuditMitigationActionsExecutionsRequest.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, required: true, location: "querystring", location_name: "taskId"))
         | 
| 2745 2926 | 
             
                ListAuditMitigationActionsExecutionsRequest.add_member(:action_status, Shapes::ShapeRef.new(shape: AuditMitigationActionsExecutionStatus, location: "querystring", location_name: "actionStatus"))
         | 
| 2746 2927 | 
             
                ListAuditMitigationActionsExecutionsRequest.add_member(:finding_id, Shapes::ShapeRef.new(shape: FindingId, required: true, location: "querystring", location_name: "findingId"))
         | 
| 2747 2928 | 
             
                ListAuditMitigationActionsExecutionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
         | 
| @@ -2835,6 +3016,37 @@ module Aws::IoT | |
| 2835 3016 | 
             
                ListCertificatesResponse.add_member(:next_marker, Shapes::ShapeRef.new(shape: Marker, location_name: "nextMarker"))
         | 
| 2836 3017 | 
             
                ListCertificatesResponse.struct_class = Types::ListCertificatesResponse
         | 
| 2837 3018 |  | 
| 3019 | 
            +
                ListCustomMetricsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "nextToken"))
         | 
| 3020 | 
            +
                ListCustomMetricsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
         | 
| 3021 | 
            +
                ListCustomMetricsRequest.struct_class = Types::ListCustomMetricsRequest
         | 
| 3022 | 
            +
             | 
| 3023 | 
            +
                ListCustomMetricsResponse.add_member(:metric_names, Shapes::ShapeRef.new(shape: MetricNames, location_name: "metricNames"))
         | 
| 3024 | 
            +
                ListCustomMetricsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
         | 
| 3025 | 
            +
                ListCustomMetricsResponse.struct_class = Types::ListCustomMetricsResponse
         | 
| 3026 | 
            +
             | 
| 3027 | 
            +
                ListDetectMitigationActionsExecutionsRequest.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, location: "querystring", location_name: "taskId"))
         | 
| 3028 | 
            +
                ListDetectMitigationActionsExecutionsRequest.add_member(:violation_id, Shapes::ShapeRef.new(shape: ViolationId, location: "querystring", location_name: "violationId"))
         | 
| 3029 | 
            +
                ListDetectMitigationActionsExecutionsRequest.add_member(:thing_name, Shapes::ShapeRef.new(shape: DeviceDefenderThingName, location: "querystring", location_name: "thingName"))
         | 
| 3030 | 
            +
                ListDetectMitigationActionsExecutionsRequest.add_member(:start_time, Shapes::ShapeRef.new(shape: Timestamp, location: "querystring", location_name: "startTime"))
         | 
| 3031 | 
            +
                ListDetectMitigationActionsExecutionsRequest.add_member(:end_time, Shapes::ShapeRef.new(shape: Timestamp, location: "querystring", location_name: "endTime"))
         | 
| 3032 | 
            +
                ListDetectMitigationActionsExecutionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
         | 
| 3033 | 
            +
                ListDetectMitigationActionsExecutionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "nextToken"))
         | 
| 3034 | 
            +
                ListDetectMitigationActionsExecutionsRequest.struct_class = Types::ListDetectMitigationActionsExecutionsRequest
         | 
| 3035 | 
            +
             | 
| 3036 | 
            +
                ListDetectMitigationActionsExecutionsResponse.add_member(:actions_executions, Shapes::ShapeRef.new(shape: DetectMitigationActionExecutionList, location_name: "actionsExecutions"))
         | 
| 3037 | 
            +
                ListDetectMitigationActionsExecutionsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
         | 
| 3038 | 
            +
                ListDetectMitigationActionsExecutionsResponse.struct_class = Types::ListDetectMitigationActionsExecutionsResponse
         | 
| 3039 | 
            +
             | 
| 3040 | 
            +
                ListDetectMitigationActionsTasksRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
         | 
| 3041 | 
            +
                ListDetectMitigationActionsTasksRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "nextToken"))
         | 
| 3042 | 
            +
                ListDetectMitigationActionsTasksRequest.add_member(:start_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location: "querystring", location_name: "startTime"))
         | 
| 3043 | 
            +
                ListDetectMitigationActionsTasksRequest.add_member(:end_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location: "querystring", location_name: "endTime"))
         | 
| 3044 | 
            +
                ListDetectMitigationActionsTasksRequest.struct_class = Types::ListDetectMitigationActionsTasksRequest
         | 
| 3045 | 
            +
             | 
| 3046 | 
            +
                ListDetectMitigationActionsTasksResponse.add_member(:tasks, Shapes::ShapeRef.new(shape: DetectMitigationActionsTaskSummaryList, location_name: "tasks"))
         | 
| 3047 | 
            +
                ListDetectMitigationActionsTasksResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
         | 
| 3048 | 
            +
                ListDetectMitigationActionsTasksResponse.struct_class = Types::ListDetectMitigationActionsTasksResponse
         | 
| 3049 | 
            +
             | 
| 2838 3050 | 
             
                ListDimensionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "nextToken"))
         | 
| 2839 3051 | 
             
                ListDimensionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
         | 
| 2840 3052 | 
             
                ListDimensionsRequest.struct_class = Types::ListDimensionsRequest
         | 
| @@ -3012,6 +3224,7 @@ module Aws::IoT | |
| 3012 3224 | 
             
                ListSecurityProfilesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "nextToken"))
         | 
| 3013 3225 | 
             
                ListSecurityProfilesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
         | 
| 3014 3226 | 
             
                ListSecurityProfilesRequest.add_member(:dimension_name, Shapes::ShapeRef.new(shape: DimensionName, location: "querystring", location_name: "dimensionName"))
         | 
| 3227 | 
            +
                ListSecurityProfilesRequest.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, location: "querystring", location_name: "metricName"))
         | 
| 3015 3228 | 
             
                ListSecurityProfilesRequest.struct_class = Types::ListSecurityProfilesRequest
         | 
| 3016 3229 |  | 
| 3017 3230 | 
             
                ListSecurityProfilesResponse.add_member(:security_profile_identifiers, Shapes::ShapeRef.new(shape: SecurityProfileIdentifiers, location_name: "securityProfileIdentifiers"))
         | 
| @@ -3135,6 +3348,7 @@ module Aws::IoT | |
| 3135 3348 | 
             
                ListThingsRequest.add_member(:attribute_name, Shapes::ShapeRef.new(shape: AttributeName, location: "querystring", location_name: "attributeName"))
         | 
| 3136 3349 | 
             
                ListThingsRequest.add_member(:attribute_value, Shapes::ShapeRef.new(shape: AttributeValue, location: "querystring", location_name: "attributeValue"))
         | 
| 3137 3350 | 
             
                ListThingsRequest.add_member(:thing_type_name, Shapes::ShapeRef.new(shape: ThingTypeName, location: "querystring", location_name: "thingTypeName"))
         | 
| 3351 | 
            +
                ListThingsRequest.add_member(:use_prefix_attribute_value, Shapes::ShapeRef.new(shape: usePrefixAttributeValue, location: "querystring", location_name: "usePrefixAttributeValue"))
         | 
| 3138 3352 | 
             
                ListThingsRequest.struct_class = Types::ListThingsRequest
         | 
| 3139 3353 |  | 
| 3140 3354 | 
             
                ListThingsResponse.add_member(:things, Shapes::ShapeRef.new(shape: ThingAttributeList, location_name: "things"))
         | 
| @@ -3172,6 +3386,8 @@ module Aws::IoT | |
| 3172 3386 | 
             
                ListViolationEventsRequest.add_member(:end_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location: "querystring", location_name: "endTime"))
         | 
| 3173 3387 | 
             
                ListViolationEventsRequest.add_member(:thing_name, Shapes::ShapeRef.new(shape: DeviceDefenderThingName, location: "querystring", location_name: "thingName"))
         | 
| 3174 3388 | 
             
                ListViolationEventsRequest.add_member(:security_profile_name, Shapes::ShapeRef.new(shape: SecurityProfileName, location: "querystring", location_name: "securityProfileName"))
         | 
| 3389 | 
            +
                ListViolationEventsRequest.add_member(:behavior_criteria_type, Shapes::ShapeRef.new(shape: BehaviorCriteriaType, location: "querystring", location_name: "behaviorCriteriaType"))
         | 
| 3390 | 
            +
                ListViolationEventsRequest.add_member(:list_suppressed_alerts, Shapes::ShapeRef.new(shape: ListSuppressedAlerts, location: "querystring", location_name: "listSuppressedAlerts"))
         | 
| 3175 3391 | 
             
                ListViolationEventsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "nextToken"))
         | 
| 3176 3392 | 
             
                ListViolationEventsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
         | 
| 3177 3393 | 
             
                ListViolationEventsRequest.struct_class = Types::ListViolationEventsRequest
         | 
| @@ -3194,6 +3410,9 @@ module Aws::IoT | |
| 3194 3410 | 
             
                LoggingOptionsPayload.add_member(:log_level, Shapes::ShapeRef.new(shape: LogLevel, location_name: "logLevel"))
         | 
| 3195 3411 | 
             
                LoggingOptionsPayload.struct_class = Types::LoggingOptionsPayload
         | 
| 3196 3412 |  | 
| 3413 | 
            +
                MachineLearningDetectionConfig.add_member(:confidence_level, Shapes::ShapeRef.new(shape: ConfidenceLevel, required: true, location_name: "confidenceLevel"))
         | 
| 3414 | 
            +
                MachineLearningDetectionConfig.struct_class = Types::MachineLearningDetectionConfig
         | 
| 3415 | 
            +
             | 
| 3197 3416 | 
             
                MalformedPolicyException.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
         | 
| 3198 3417 | 
             
                MalformedPolicyException.struct_class = Types::MalformedPolicyException
         | 
| 3199 3418 |  | 
| @@ -3201,6 +3420,8 @@ module Aws::IoT | |
| 3201 3420 | 
             
                MetricDimension.add_member(:operator, Shapes::ShapeRef.new(shape: DimensionValueOperator, location_name: "operator"))
         | 
| 3202 3421 | 
             
                MetricDimension.struct_class = Types::MetricDimension
         | 
| 3203 3422 |  | 
| 3423 | 
            +
                MetricNames.member = Shapes::ShapeRef.new(shape: MetricName)
         | 
| 3424 | 
            +
             | 
| 3204 3425 | 
             
                MetricToRetain.add_member(:metric, Shapes::ShapeRef.new(shape: BehaviorMetric, required: true, location_name: "metric"))
         | 
| 3205 3426 | 
             
                MetricToRetain.add_member(:metric_dimension, Shapes::ShapeRef.new(shape: MetricDimension, location_name: "metricDimension"))
         | 
| 3206 3427 | 
             
                MetricToRetain.struct_class = Types::MetricToRetain
         | 
| @@ -3208,6 +3429,9 @@ module Aws::IoT | |
| 3208 3429 | 
             
                MetricValue.add_member(:count, Shapes::ShapeRef.new(shape: UnsignedLong, location_name: "count"))
         | 
| 3209 3430 | 
             
                MetricValue.add_member(:cidrs, Shapes::ShapeRef.new(shape: Cidrs, location_name: "cidrs"))
         | 
| 3210 3431 | 
             
                MetricValue.add_member(:ports, Shapes::ShapeRef.new(shape: Ports, location_name: "ports"))
         | 
| 3432 | 
            +
                MetricValue.add_member(:number, Shapes::ShapeRef.new(shape: Number, location_name: "number"))
         | 
| 3433 | 
            +
                MetricValue.add_member(:numbers, Shapes::ShapeRef.new(shape: NumberList, location_name: "numbers"))
         | 
| 3434 | 
            +
                MetricValue.add_member(:strings, Shapes::ShapeRef.new(shape: StringList, location_name: "strings"))
         | 
| 3211 3435 | 
             
                MetricValue.struct_class = Types::MetricValue
         | 
| 3212 3436 |  | 
| 3213 3437 | 
             
                MissingContextValues.member = Shapes::ShapeRef.new(shape: MissingContextValue)
         | 
| @@ -3250,6 +3474,8 @@ module Aws::IoT | |
| 3250 3474 | 
             
                NotConfiguredException.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
         | 
| 3251 3475 | 
             
                NotConfiguredException.struct_class = Types::NotConfiguredException
         | 
| 3252 3476 |  | 
| 3477 | 
            +
                NumberList.member = Shapes::ShapeRef.new(shape: Number)
         | 
| 3478 | 
            +
             | 
| 3253 3479 | 
             
                OTAUpdateFile.add_member(:file_name, Shapes::ShapeRef.new(shape: FileName, location_name: "fileName"))
         | 
| 3254 3480 | 
             
                OTAUpdateFile.add_member(:file_type, Shapes::ShapeRef.new(shape: FileType, location_name: "fileType"))
         | 
| 3255 3481 | 
             
                OTAUpdateFile.add_member(:file_version, Shapes::ShapeRef.new(shape: OTAUpdateFileVersion, location_name: "fileVersion"))
         | 
| @@ -3553,6 +3779,8 @@ module Aws::IoT | |
| 3553 3779 |  | 
| 3554 3780 | 
             
                SearchableAttributes.member = Shapes::ShapeRef.new(shape: AttributeName)
         | 
| 3555 3781 |  | 
| 3782 | 
            +
                SecurityGroupList.member = Shapes::ShapeRef.new(shape: SecurityGroupId)
         | 
| 3783 | 
            +
             | 
| 3556 3784 | 
             
                SecurityProfileIdentifier.add_member(:name, Shapes::ShapeRef.new(shape: SecurityProfileName, required: true, location_name: "name"))
         | 
| 3557 3785 | 
             
                SecurityProfileIdentifier.add_member(:arn, Shapes::ShapeRef.new(shape: SecurityProfileArn, required: true, location_name: "arn"))
         | 
| 3558 3786 | 
             
                SecurityProfileIdentifier.struct_class = Types::SecurityProfileIdentifier
         | 
| @@ -3630,15 +3858,27 @@ module Aws::IoT | |
| 3630 3858 | 
             
                SqsAction.add_member(:use_base_64, Shapes::ShapeRef.new(shape: UseBase64, location_name: "useBase64"))
         | 
| 3631 3859 | 
             
                SqsAction.struct_class = Types::SqsAction
         | 
| 3632 3860 |  | 
| 3633 | 
            -
                StartAuditMitigationActionsTaskRequest.add_member(:task_id, Shapes::ShapeRef.new(shape:  | 
| 3861 | 
            +
                StartAuditMitigationActionsTaskRequest.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, required: true, location: "uri", location_name: "taskId"))
         | 
| 3634 3862 | 
             
                StartAuditMitigationActionsTaskRequest.add_member(:target, Shapes::ShapeRef.new(shape: AuditMitigationActionsTaskTarget, required: true, location_name: "target"))
         | 
| 3635 3863 | 
             
                StartAuditMitigationActionsTaskRequest.add_member(:audit_check_to_actions_mapping, Shapes::ShapeRef.new(shape: AuditCheckToActionsMapping, required: true, location_name: "auditCheckToActionsMapping"))
         | 
| 3636 3864 | 
             
                StartAuditMitigationActionsTaskRequest.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, required: true, location_name: "clientRequestToken", metadata: {"idempotencyToken"=>true}))
         | 
| 3637 3865 | 
             
                StartAuditMitigationActionsTaskRequest.struct_class = Types::StartAuditMitigationActionsTaskRequest
         | 
| 3638 3866 |  | 
| 3639 | 
            -
                StartAuditMitigationActionsTaskResponse.add_member(:task_id, Shapes::ShapeRef.new(shape:  | 
| 3867 | 
            +
                StartAuditMitigationActionsTaskResponse.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, location_name: "taskId"))
         | 
| 3640 3868 | 
             
                StartAuditMitigationActionsTaskResponse.struct_class = Types::StartAuditMitigationActionsTaskResponse
         | 
| 3641 3869 |  | 
| 3870 | 
            +
                StartDetectMitigationActionsTaskRequest.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, required: true, location: "uri", location_name: "taskId"))
         | 
| 3871 | 
            +
                StartDetectMitigationActionsTaskRequest.add_member(:target, Shapes::ShapeRef.new(shape: DetectMitigationActionsTaskTarget, required: true, location_name: "target"))
         | 
| 3872 | 
            +
                StartDetectMitigationActionsTaskRequest.add_member(:actions, Shapes::ShapeRef.new(shape: DetectMitigationActionsToExecuteList, required: true, location_name: "actions"))
         | 
| 3873 | 
            +
                StartDetectMitigationActionsTaskRequest.add_member(:violation_event_occurrence_range, Shapes::ShapeRef.new(shape: ViolationEventOccurrenceRange, location_name: "violationEventOccurrenceRange"))
         | 
| 3874 | 
            +
                StartDetectMitigationActionsTaskRequest.add_member(:include_only_active_violations, Shapes::ShapeRef.new(shape: NullableBoolean, location_name: "includeOnlyActiveViolations"))
         | 
| 3875 | 
            +
                StartDetectMitigationActionsTaskRequest.add_member(:include_suppressed_alerts, Shapes::ShapeRef.new(shape: NullableBoolean, location_name: "includeSuppressedAlerts"))
         | 
| 3876 | 
            +
                StartDetectMitigationActionsTaskRequest.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, required: true, location_name: "clientRequestToken", metadata: {"idempotencyToken"=>true}))
         | 
| 3877 | 
            +
                StartDetectMitigationActionsTaskRequest.struct_class = Types::StartDetectMitigationActionsTaskRequest
         | 
| 3878 | 
            +
             | 
| 3879 | 
            +
                StartDetectMitigationActionsTaskResponse.add_member(:task_id, Shapes::ShapeRef.new(shape: MitigationActionsTaskId, location_name: "taskId"))
         | 
| 3880 | 
            +
                StartDetectMitigationActionsTaskResponse.struct_class = Types::StartDetectMitigationActionsTaskResponse
         | 
| 3881 | 
            +
             | 
| 3642 3882 | 
             
                StartOnDemandAuditTaskRequest.add_member(:target_check_names, Shapes::ShapeRef.new(shape: TargetAuditCheckNames, required: true, location_name: "targetCheckNames"))
         | 
| 3643 3883 | 
             
                StartOnDemandAuditTaskRequest.struct_class = Types::StartOnDemandAuditTaskRequest
         | 
| 3644 3884 |  | 
| @@ -3710,9 +3950,13 @@ module Aws::IoT | |
| 3710 3950 |  | 
| 3711 3951 | 
             
                StreamsSummary.member = Shapes::ShapeRef.new(shape: StreamSummary)
         | 
| 3712 3952 |  | 
| 3953 | 
            +
                StringList.member = Shapes::ShapeRef.new(shape: stringValue)
         | 
| 3954 | 
            +
             | 
| 3713 3955 | 
             
                StringMap.key = Shapes::ShapeRef.new(shape: String)
         | 
| 3714 3956 | 
             
                StringMap.value = Shapes::ShapeRef.new(shape: String)
         | 
| 3715 3957 |  | 
| 3958 | 
            +
                SubnetIdList.member = Shapes::ShapeRef.new(shape: SubnetId)
         | 
| 3959 | 
            +
             | 
| 3716 3960 | 
             
                Tag.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "Key"))
         | 
| 3717 3961 | 
             
                Tag.add_member(:value, Shapes::ShapeRef.new(shape: TagValue, location_name: "Value"))
         | 
| 3718 3962 | 
             
                Tag.struct_class = Types::Tag
         | 
| @@ -3729,6 +3973,8 @@ module Aws::IoT | |
| 3729 3973 |  | 
| 3730 3974 | 
             
                TargetAuditCheckNames.member = Shapes::ShapeRef.new(shape: AuditCheckName)
         | 
| 3731 3975 |  | 
| 3976 | 
            +
                TargetViolationIdsForDetectMitigationActions.member = Shapes::ShapeRef.new(shape: ViolationId)
         | 
| 3977 | 
            +
             | 
| 3732 3978 | 
             
                Targets.member = Shapes::ShapeRef.new(shape: Target)
         | 
| 3733 3979 |  | 
| 3734 3980 | 
             
                TaskAlreadyExistsException.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
         | 
| @@ -3896,19 +4142,26 @@ module Aws::IoT | |
| 3896 4142 |  | 
| 3897 4143 | 
             
                TopicRuleDestination.add_member(:arn, Shapes::ShapeRef.new(shape: AwsArn, location_name: "arn"))
         | 
| 3898 4144 | 
             
                TopicRuleDestination.add_member(:status, Shapes::ShapeRef.new(shape: TopicRuleDestinationStatus, location_name: "status"))
         | 
| 4145 | 
            +
                TopicRuleDestination.add_member(:created_at, Shapes::ShapeRef.new(shape: CreatedAtDate, location_name: "createdAt"))
         | 
| 4146 | 
            +
                TopicRuleDestination.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: LastUpdatedAtDate, location_name: "lastUpdatedAt"))
         | 
| 3899 4147 | 
             
                TopicRuleDestination.add_member(:status_reason, Shapes::ShapeRef.new(shape: String, location_name: "statusReason"))
         | 
| 3900 4148 | 
             
                TopicRuleDestination.add_member(:http_url_properties, Shapes::ShapeRef.new(shape: HttpUrlDestinationProperties, location_name: "httpUrlProperties"))
         | 
| 4149 | 
            +
                TopicRuleDestination.add_member(:vpc_properties, Shapes::ShapeRef.new(shape: VpcDestinationProperties, location_name: "vpcProperties"))
         | 
| 3901 4150 | 
             
                TopicRuleDestination.struct_class = Types::TopicRuleDestination
         | 
| 3902 4151 |  | 
| 3903 4152 | 
             
                TopicRuleDestinationConfiguration.add_member(:http_url_configuration, Shapes::ShapeRef.new(shape: HttpUrlDestinationConfiguration, location_name: "httpUrlConfiguration"))
         | 
| 4153 | 
            +
                TopicRuleDestinationConfiguration.add_member(:vpc_configuration, Shapes::ShapeRef.new(shape: VpcDestinationConfiguration, location_name: "vpcConfiguration"))
         | 
| 3904 4154 | 
             
                TopicRuleDestinationConfiguration.struct_class = Types::TopicRuleDestinationConfiguration
         | 
| 3905 4155 |  | 
| 3906 4156 | 
             
                TopicRuleDestinationSummaries.member = Shapes::ShapeRef.new(shape: TopicRuleDestinationSummary)
         | 
| 3907 4157 |  | 
| 3908 4158 | 
             
                TopicRuleDestinationSummary.add_member(:arn, Shapes::ShapeRef.new(shape: AwsArn, location_name: "arn"))
         | 
| 3909 4159 | 
             
                TopicRuleDestinationSummary.add_member(:status, Shapes::ShapeRef.new(shape: TopicRuleDestinationStatus, location_name: "status"))
         | 
| 4160 | 
            +
                TopicRuleDestinationSummary.add_member(:created_at, Shapes::ShapeRef.new(shape: CreatedAtDate, location_name: "createdAt"))
         | 
| 4161 | 
            +
                TopicRuleDestinationSummary.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: LastUpdatedAtDate, location_name: "lastUpdatedAt"))
         | 
| 3910 4162 | 
             
                TopicRuleDestinationSummary.add_member(:status_reason, Shapes::ShapeRef.new(shape: String, location_name: "statusReason"))
         | 
| 3911 4163 | 
             
                TopicRuleDestinationSummary.add_member(:http_url_summary, Shapes::ShapeRef.new(shape: HttpUrlDestinationSummary, location_name: "httpUrlSummary"))
         | 
| 4164 | 
            +
                TopicRuleDestinationSummary.add_member(:vpc_destination_summary, Shapes::ShapeRef.new(shape: VpcDestinationSummary, location_name: "vpcDestinationSummary"))
         | 
| 3912 4165 | 
             
                TopicRuleDestinationSummary.struct_class = Types::TopicRuleDestinationSummary
         | 
| 3913 4166 |  | 
| 3914 4167 | 
             
                TopicRuleList.member = Shapes::ShapeRef.new(shape: TopicRuleListItem)
         | 
| @@ -4007,6 +4260,18 @@ module Aws::IoT | |
| 4007 4260 | 
             
                UpdateCertificateRequest.add_member(:new_status, Shapes::ShapeRef.new(shape: CertificateStatus, required: true, location: "querystring", location_name: "newStatus"))
         | 
| 4008 4261 | 
             
                UpdateCertificateRequest.struct_class = Types::UpdateCertificateRequest
         | 
| 4009 4262 |  | 
| 4263 | 
            +
                UpdateCustomMetricRequest.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, required: true, location: "uri", location_name: "metricName"))
         | 
| 4264 | 
            +
                UpdateCustomMetricRequest.add_member(:display_name, Shapes::ShapeRef.new(shape: CustomMetricDisplayName, required: true, location_name: "displayName"))
         | 
| 4265 | 
            +
                UpdateCustomMetricRequest.struct_class = Types::UpdateCustomMetricRequest
         | 
| 4266 | 
            +
             | 
| 4267 | 
            +
                UpdateCustomMetricResponse.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, location_name: "metricName"))
         | 
| 4268 | 
            +
                UpdateCustomMetricResponse.add_member(:metric_arn, Shapes::ShapeRef.new(shape: CustomMetricArn, location_name: "metricArn"))
         | 
| 4269 | 
            +
                UpdateCustomMetricResponse.add_member(:metric_type, Shapes::ShapeRef.new(shape: CustomMetricType, location_name: "metricType"))
         | 
| 4270 | 
            +
                UpdateCustomMetricResponse.add_member(:display_name, Shapes::ShapeRef.new(shape: CustomMetricDisplayName, location_name: "displayName"))
         | 
| 4271 | 
            +
                UpdateCustomMetricResponse.add_member(:creation_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "creationDate"))
         | 
| 4272 | 
            +
                UpdateCustomMetricResponse.add_member(:last_modified_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "lastModifiedDate"))
         | 
| 4273 | 
            +
                UpdateCustomMetricResponse.struct_class = Types::UpdateCustomMetricResponse
         | 
| 4274 | 
            +
             | 
| 4010 4275 | 
             
                UpdateDeviceCertificateParams.add_member(:action, Shapes::ShapeRef.new(shape: DeviceCertificateUpdateAction, required: true, location_name: "action"))
         | 
| 4011 4276 | 
             
                UpdateDeviceCertificateParams.struct_class = Types::UpdateDeviceCertificateParams
         | 
| 4012 4277 |  | 
| @@ -4192,12 +4457,38 @@ module Aws::IoT | |
| 4192 4457 | 
             
                ViolationEvent.add_member(:security_profile_name, Shapes::ShapeRef.new(shape: SecurityProfileName, location_name: "securityProfileName"))
         | 
| 4193 4458 | 
             
                ViolationEvent.add_member(:behavior, Shapes::ShapeRef.new(shape: Behavior, location_name: "behavior"))
         | 
| 4194 4459 | 
             
                ViolationEvent.add_member(:metric_value, Shapes::ShapeRef.new(shape: MetricValue, location_name: "metricValue"))
         | 
| 4460 | 
            +
                ViolationEvent.add_member(:violation_event_additional_info, Shapes::ShapeRef.new(shape: ViolationEventAdditionalInfo, location_name: "violationEventAdditionalInfo"))
         | 
| 4195 4461 | 
             
                ViolationEvent.add_member(:violation_event_type, Shapes::ShapeRef.new(shape: ViolationEventType, location_name: "violationEventType"))
         | 
| 4196 4462 | 
             
                ViolationEvent.add_member(:violation_event_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "violationEventTime"))
         | 
| 4197 4463 | 
             
                ViolationEvent.struct_class = Types::ViolationEvent
         | 
| 4198 4464 |  | 
| 4465 | 
            +
                ViolationEventAdditionalInfo.add_member(:confidence_level, Shapes::ShapeRef.new(shape: ConfidenceLevel, location_name: "confidenceLevel"))
         | 
| 4466 | 
            +
                ViolationEventAdditionalInfo.struct_class = Types::ViolationEventAdditionalInfo
         | 
| 4467 | 
            +
             | 
| 4468 | 
            +
                ViolationEventOccurrenceRange.add_member(:start_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "startTime"))
         | 
| 4469 | 
            +
                ViolationEventOccurrenceRange.add_member(:end_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "endTime"))
         | 
| 4470 | 
            +
                ViolationEventOccurrenceRange.struct_class = Types::ViolationEventOccurrenceRange
         | 
| 4471 | 
            +
             | 
| 4199 4472 | 
             
                ViolationEvents.member = Shapes::ShapeRef.new(shape: ViolationEvent)
         | 
| 4200 4473 |  | 
| 4474 | 
            +
                VpcDestinationConfiguration.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: SubnetIdList, required: true, location_name: "subnetIds"))
         | 
| 4475 | 
            +
                VpcDestinationConfiguration.add_member(:security_groups, Shapes::ShapeRef.new(shape: SecurityGroupList, location_name: "securityGroups"))
         | 
| 4476 | 
            +
                VpcDestinationConfiguration.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, required: true, location_name: "vpcId"))
         | 
| 4477 | 
            +
                VpcDestinationConfiguration.add_member(:role_arn, Shapes::ShapeRef.new(shape: AwsArn, required: true, location_name: "roleArn"))
         | 
| 4478 | 
            +
                VpcDestinationConfiguration.struct_class = Types::VpcDestinationConfiguration
         | 
| 4479 | 
            +
             | 
| 4480 | 
            +
                VpcDestinationProperties.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: SubnetIdList, location_name: "subnetIds"))
         | 
| 4481 | 
            +
                VpcDestinationProperties.add_member(:security_groups, Shapes::ShapeRef.new(shape: SecurityGroupList, location_name: "securityGroups"))
         | 
| 4482 | 
            +
                VpcDestinationProperties.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "vpcId"))
         | 
| 4483 | 
            +
                VpcDestinationProperties.add_member(:role_arn, Shapes::ShapeRef.new(shape: AwsArn, location_name: "roleArn"))
         | 
| 4484 | 
            +
                VpcDestinationProperties.struct_class = Types::VpcDestinationProperties
         | 
| 4485 | 
            +
             | 
| 4486 | 
            +
                VpcDestinationSummary.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: SubnetIdList, location_name: "subnetIds"))
         | 
| 4487 | 
            +
                VpcDestinationSummary.add_member(:security_groups, Shapes::ShapeRef.new(shape: SecurityGroupList, location_name: "securityGroups"))
         | 
| 4488 | 
            +
                VpcDestinationSummary.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "vpcId"))
         | 
| 4489 | 
            +
                VpcDestinationSummary.add_member(:role_arn, Shapes::ShapeRef.new(shape: AwsArn, location_name: "roleArn"))
         | 
| 4490 | 
            +
                VpcDestinationSummary.struct_class = Types::VpcDestinationSummary
         | 
| 4491 | 
            +
             | 
| 4201 4492 |  | 
| 4202 4493 | 
             
                # @api private
         | 
| 4203 4494 | 
             
                API = Seahorse::Model::Api.new.tap do |api|
         | 
| @@ -4365,6 +4656,18 @@ module Aws::IoT | |
| 4365 4656 | 
             
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 4366 4657 | 
             
                  end)
         | 
| 4367 4658 |  | 
| 4659 | 
            +
                  api.add_operation(:cancel_detect_mitigation_actions_task, Seahorse::Model::Operation.new.tap do |o|
         | 
| 4660 | 
            +
                    o.name = "CancelDetectMitigationActionsTask"
         | 
| 4661 | 
            +
                    o.http_method = "PUT"
         | 
| 4662 | 
            +
                    o.http_request_uri = "/detect/mitigationactions/tasks/{taskId}/cancel"
         | 
| 4663 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: CancelDetectMitigationActionsTaskRequest)
         | 
| 4664 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: CancelDetectMitigationActionsTaskResponse)
         | 
| 4665 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
         | 
| 4666 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
         | 
| 4667 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
         | 
| 4668 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 4669 | 
            +
                  end)
         | 
| 4670 | 
            +
             | 
| 4368 4671 | 
             
                  api.add_operation(:cancel_job, Seahorse::Model::Operation.new.tap do |o|
         | 
| 4369 4672 | 
             
                    o.name = "CancelJob"
         | 
| 4370 4673 | 
             
                    o.http_method = "PUT"
         | 
| @@ -4471,6 +4774,19 @@ module Aws::IoT | |
| 4471 4774 | 
             
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 4472 4775 | 
             
                  end)
         | 
| 4473 4776 |  | 
| 4777 | 
            +
                  api.add_operation(:create_custom_metric, Seahorse::Model::Operation.new.tap do |o|
         | 
| 4778 | 
            +
                    o.name = "CreateCustomMetric"
         | 
| 4779 | 
            +
                    o.http_method = "POST"
         | 
| 4780 | 
            +
                    o.http_request_uri = "/custom-metric/{metricName}"
         | 
| 4781 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: CreateCustomMetricRequest)
         | 
| 4782 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: CreateCustomMetricResponse)
         | 
| 4783 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
         | 
| 4784 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
         | 
| 4785 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
         | 
| 4786 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
         | 
| 4787 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 4788 | 
            +
                  end)
         | 
| 4789 | 
            +
             | 
| 4474 4790 | 
             
                  api.add_operation(:create_dimension, Seahorse::Model::Operation.new.tap do |o|
         | 
| 4475 4791 | 
             
                    o.name = "CreateDimension"
         | 
| 4476 4792 | 
             
                    o.http_method = "POST"
         | 
| @@ -4850,6 +5166,17 @@ module Aws::IoT | |
| 4850 5166 | 
             
                    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
         | 
| 4851 5167 | 
             
                  end)
         | 
| 4852 5168 |  | 
| 5169 | 
            +
                  api.add_operation(:delete_custom_metric, Seahorse::Model::Operation.new.tap do |o|
         | 
| 5170 | 
            +
                    o.name = "DeleteCustomMetric"
         | 
| 5171 | 
            +
                    o.http_method = "DELETE"
         | 
| 5172 | 
            +
                    o.http_request_uri = "/custom-metric/{metricName}"
         | 
| 5173 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: DeleteCustomMetricRequest)
         | 
| 5174 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: DeleteCustomMetricResponse)
         | 
| 5175 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
         | 
| 5176 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
         | 
| 5177 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 5178 | 
            +
                  end)
         | 
| 5179 | 
            +
             | 
| 4853 5180 | 
             
                  api.add_operation(:delete_dimension, Seahorse::Model::Operation.new.tap do |o|
         | 
| 4854 5181 | 
             
                    o.name = "DeleteDimension"
         | 
| 4855 5182 | 
             
                    o.http_method = "DELETE"
         | 
| @@ -5271,6 +5598,18 @@ module Aws::IoT | |
| 5271 5598 | 
             
                    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
         | 
| 5272 5599 | 
             
                  end)
         | 
| 5273 5600 |  | 
| 5601 | 
            +
                  api.add_operation(:describe_custom_metric, Seahorse::Model::Operation.new.tap do |o|
         | 
| 5602 | 
            +
                    o.name = "DescribeCustomMetric"
         | 
| 5603 | 
            +
                    o.http_method = "GET"
         | 
| 5604 | 
            +
                    o.http_request_uri = "/custom-metric/{metricName}"
         | 
| 5605 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: DescribeCustomMetricRequest)
         | 
| 5606 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: DescribeCustomMetricResponse)
         | 
| 5607 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
         | 
| 5608 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
         | 
| 5609 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
         | 
| 5610 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 5611 | 
            +
                  end)
         | 
| 5612 | 
            +
             | 
| 5274 5613 | 
             
                  api.add_operation(:describe_default_authorizer, Seahorse::Model::Operation.new.tap do |o|
         | 
| 5275 5614 | 
             
                    o.name = "DescribeDefaultAuthorizer"
         | 
| 5276 5615 | 
             
                    o.http_method = "GET"
         | 
| @@ -5285,6 +5624,18 @@ module Aws::IoT | |
| 5285 5624 | 
             
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 5286 5625 | 
             
                  end)
         | 
| 5287 5626 |  | 
| 5627 | 
            +
                  api.add_operation(:describe_detect_mitigation_actions_task, Seahorse::Model::Operation.new.tap do |o|
         | 
| 5628 | 
            +
                    o.name = "DescribeDetectMitigationActionsTask"
         | 
| 5629 | 
            +
                    o.http_method = "GET"
         | 
| 5630 | 
            +
                    o.http_request_uri = "/detect/mitigationactions/tasks/{taskId}"
         | 
| 5631 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: DescribeDetectMitigationActionsTaskRequest)
         | 
| 5632 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: DescribeDetectMitigationActionsTaskResponse)
         | 
| 5633 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
         | 
| 5634 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
         | 
| 5635 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
         | 
| 5636 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 5637 | 
            +
                  end)
         | 
| 5638 | 
            +
             | 
| 5288 5639 | 
             
                  api.add_operation(:describe_dimension, Seahorse::Model::Operation.new.tap do |o|
         | 
| 5289 5640 | 
             
                    o.name = "DescribeDimension"
         | 
| 5290 5641 | 
             
                    o.http_method = "GET"
         | 
| @@ -5595,6 +5946,24 @@ module Aws::IoT | |
| 5595 5946 | 
             
                    o.errors << Shapes::ShapeRef.new(shape: ConflictingResourceUpdateException)
         | 
| 5596 5947 | 
             
                  end)
         | 
| 5597 5948 |  | 
| 5949 | 
            +
                  api.add_operation(:get_behavior_model_training_summaries, Seahorse::Model::Operation.new.tap do |o|
         | 
| 5950 | 
            +
                    o.name = "GetBehaviorModelTrainingSummaries"
         | 
| 5951 | 
            +
                    o.http_method = "GET"
         | 
| 5952 | 
            +
                    o.http_request_uri = "/behavior-model-training/summaries"
         | 
| 5953 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: GetBehaviorModelTrainingSummariesRequest)
         | 
| 5954 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: GetBehaviorModelTrainingSummariesResponse)
         | 
| 5955 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
         | 
| 5956 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
         | 
| 5957 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 5958 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
         | 
| 5959 | 
            +
                    o[:pager] = Aws::Pager.new(
         | 
| 5960 | 
            +
                      limit_key: "max_results",
         | 
| 5961 | 
            +
                      tokens: {
         | 
| 5962 | 
            +
                        "next_token" => "next_token"
         | 
| 5963 | 
            +
                      }
         | 
| 5964 | 
            +
                    )
         | 
| 5965 | 
            +
                  end)
         | 
| 5966 | 
            +
             | 
| 5598 5967 | 
             
                  api.add_operation(:get_cardinality, Seahorse::Model::Operation.new.tap do |o|
         | 
| 5599 5968 | 
             
                    o.name = "GetCardinality"
         | 
| 5600 5969 | 
             
                    o.http_method = "POST"
         | 
| @@ -6005,6 +6374,57 @@ module Aws::IoT | |
| 6005 6374 | 
             
                    )
         | 
| 6006 6375 | 
             
                  end)
         | 
| 6007 6376 |  | 
| 6377 | 
            +
                  api.add_operation(:list_custom_metrics, Seahorse::Model::Operation.new.tap do |o|
         | 
| 6378 | 
            +
                    o.name = "ListCustomMetrics"
         | 
| 6379 | 
            +
                    o.http_method = "GET"
         | 
| 6380 | 
            +
                    o.http_request_uri = "/custom-metrics"
         | 
| 6381 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: ListCustomMetricsRequest)
         | 
| 6382 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: ListCustomMetricsResponse)
         | 
| 6383 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
         | 
| 6384 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
         | 
| 6385 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 6386 | 
            +
                    o[:pager] = Aws::Pager.new(
         | 
| 6387 | 
            +
                      limit_key: "max_results",
         | 
| 6388 | 
            +
                      tokens: {
         | 
| 6389 | 
            +
                        "next_token" => "next_token"
         | 
| 6390 | 
            +
                      }
         | 
| 6391 | 
            +
                    )
         | 
| 6392 | 
            +
                  end)
         | 
| 6393 | 
            +
             | 
| 6394 | 
            +
                  api.add_operation(:list_detect_mitigation_actions_executions, Seahorse::Model::Operation.new.tap do |o|
         | 
| 6395 | 
            +
                    o.name = "ListDetectMitigationActionsExecutions"
         | 
| 6396 | 
            +
                    o.http_method = "GET"
         | 
| 6397 | 
            +
                    o.http_request_uri = "/detect/mitigationactions/executions"
         | 
| 6398 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: ListDetectMitigationActionsExecutionsRequest)
         | 
| 6399 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: ListDetectMitigationActionsExecutionsResponse)
         | 
| 6400 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
         | 
| 6401 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
         | 
| 6402 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 6403 | 
            +
                    o[:pager] = Aws::Pager.new(
         | 
| 6404 | 
            +
                      limit_key: "max_results",
         | 
| 6405 | 
            +
                      tokens: {
         | 
| 6406 | 
            +
                        "next_token" => "next_token"
         | 
| 6407 | 
            +
                      }
         | 
| 6408 | 
            +
                    )
         | 
| 6409 | 
            +
                  end)
         | 
| 6410 | 
            +
             | 
| 6411 | 
            +
                  api.add_operation(:list_detect_mitigation_actions_tasks, Seahorse::Model::Operation.new.tap do |o|
         | 
| 6412 | 
            +
                    o.name = "ListDetectMitigationActionsTasks"
         | 
| 6413 | 
            +
                    o.http_method = "GET"
         | 
| 6414 | 
            +
                    o.http_request_uri = "/detect/mitigationactions/tasks"
         | 
| 6415 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: ListDetectMitigationActionsTasksRequest)
         | 
| 6416 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: ListDetectMitigationActionsTasksResponse)
         | 
| 6417 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
         | 
| 6418 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
         | 
| 6419 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 6420 | 
            +
                    o[:pager] = Aws::Pager.new(
         | 
| 6421 | 
            +
                      limit_key: "max_results",
         | 
| 6422 | 
            +
                      tokens: {
         | 
| 6423 | 
            +
                        "next_token" => "next_token"
         | 
| 6424 | 
            +
                      }
         | 
| 6425 | 
            +
                    )
         | 
| 6426 | 
            +
                  end)
         | 
| 6427 | 
            +
             | 
| 6008 6428 | 
             
                  api.add_operation(:list_dimensions, Seahorse::Model::Operation.new.tap do |o|
         | 
| 6009 6429 | 
             
                    o.name = "ListDimensions"
         | 
| 6010 6430 | 
             
                    o.http_method = "GET"
         | 
| @@ -6895,6 +7315,19 @@ module Aws::IoT | |
| 6895 7315 | 
             
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 6896 7316 | 
             
                  end)
         | 
| 6897 7317 |  | 
| 7318 | 
            +
                  api.add_operation(:start_detect_mitigation_actions_task, Seahorse::Model::Operation.new.tap do |o|
         | 
| 7319 | 
            +
                    o.name = "StartDetectMitigationActionsTask"
         | 
| 7320 | 
            +
                    o.http_method = "PUT"
         | 
| 7321 | 
            +
                    o.http_request_uri = "/detect/mitigationactions/tasks/{taskId}"
         | 
| 7322 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: StartDetectMitigationActionsTaskRequest)
         | 
| 7323 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: StartDetectMitigationActionsTaskResponse)
         | 
| 7324 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
         | 
| 7325 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: TaskAlreadyExistsException)
         | 
| 7326 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
         | 
| 7327 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
         | 
| 7328 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 7329 | 
            +
                  end)
         | 
| 7330 | 
            +
             | 
| 6898 7331 | 
             
                  api.add_operation(:start_on_demand_audit_task, Seahorse::Model::Operation.new.tap do |o|
         | 
| 6899 7332 | 
             
                    o.name = "StartOnDemandAuditTask"
         | 
| 6900 7333 | 
             
                    o.http_method = "POST"
         | 
| @@ -7083,6 +7516,18 @@ module Aws::IoT | |
| 7083 7516 | 
             
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 7084 7517 | 
             
                  end)
         | 
| 7085 7518 |  | 
| 7519 | 
            +
                  api.add_operation(:update_custom_metric, Seahorse::Model::Operation.new.tap do |o|
         | 
| 7520 | 
            +
                    o.name = "UpdateCustomMetric"
         | 
| 7521 | 
            +
                    o.http_method = "PATCH"
         | 
| 7522 | 
            +
                    o.http_request_uri = "/custom-metric/{metricName}"
         | 
| 7523 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: UpdateCustomMetricRequest)
         | 
| 7524 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: UpdateCustomMetricResponse)
         | 
| 7525 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
         | 
| 7526 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
         | 
| 7527 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
         | 
| 7528 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
         | 
| 7529 | 
            +
                  end)
         | 
| 7530 | 
            +
             | 
| 7086 7531 | 
             
                  api.add_operation(:update_dimension, Seahorse::Model::Operation.new.tap do |o|
         | 
| 7087 7532 | 
             
                    o.name = "UpdateDimension"
         | 
| 7088 7533 | 
             
                    o.http_method = "PATCH"
         |