aws-sdk-iot 1.47.0 → 1.52.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -120,8 +120,22 @@ module Aws::IoT
120
120
  AwsIotJobArn = Shapes::StringShape.new(name: 'AwsIotJobArn')
121
121
  AwsIotJobId = Shapes::StringShape.new(name: 'AwsIotJobId')
122
122
  AwsIotSqlVersion = Shapes::StringShape.new(name: 'AwsIotSqlVersion')
123
+ AwsJobAbortConfig = Shapes::StructureShape.new(name: 'AwsJobAbortConfig')
124
+ AwsJobAbortCriteria = Shapes::StructureShape.new(name: 'AwsJobAbortCriteria')
125
+ AwsJobAbortCriteriaAbortAction = Shapes::StringShape.new(name: 'AwsJobAbortCriteriaAbortAction')
126
+ AwsJobAbortCriteriaAbortThresholdPercentage = Shapes::FloatShape.new(name: 'AwsJobAbortCriteriaAbortThresholdPercentage')
127
+ AwsJobAbortCriteriaFailureType = Shapes::StringShape.new(name: 'AwsJobAbortCriteriaFailureType')
128
+ AwsJobAbortCriteriaList = Shapes::ListShape.new(name: 'AwsJobAbortCriteriaList')
129
+ AwsJobAbortCriteriaMinimumNumberOfExecutedThings = Shapes::IntegerShape.new(name: 'AwsJobAbortCriteriaMinimumNumberOfExecutedThings')
123
130
  AwsJobExecutionsRolloutConfig = Shapes::StructureShape.new(name: 'AwsJobExecutionsRolloutConfig')
131
+ AwsJobExponentialRolloutRate = Shapes::StructureShape.new(name: 'AwsJobExponentialRolloutRate')
124
132
  AwsJobPresignedUrlConfig = Shapes::StructureShape.new(name: 'AwsJobPresignedUrlConfig')
133
+ AwsJobRateIncreaseCriteria = Shapes::StructureShape.new(name: 'AwsJobRateIncreaseCriteria')
134
+ AwsJobRateIncreaseCriteriaNumberOfThings = Shapes::IntegerShape.new(name: 'AwsJobRateIncreaseCriteriaNumberOfThings')
135
+ AwsJobRolloutIncrementFactor = Shapes::FloatShape.new(name: 'AwsJobRolloutIncrementFactor')
136
+ AwsJobRolloutRatePerMinute = Shapes::IntegerShape.new(name: 'AwsJobRolloutRatePerMinute')
137
+ AwsJobTimeoutConfig = Shapes::StructureShape.new(name: 'AwsJobTimeoutConfig')
138
+ AwsJobTimeoutInProgressTimeoutInMinutes = Shapes::IntegerShape.new(name: 'AwsJobTimeoutInProgressTimeoutInMinutes')
125
139
  Behavior = Shapes::StructureShape.new(name: 'Behavior')
126
140
  BehaviorCriteria = Shapes::StructureShape.new(name: 'BehaviorCriteria')
127
141
  BehaviorMetric = Shapes::StringShape.new(name: 'BehaviorMetric')
@@ -159,6 +173,7 @@ module Aws::IoT
159
173
  CertificateConflictException = Shapes::StructureShape.new(name: 'CertificateConflictException')
160
174
  CertificateDescription = Shapes::StructureShape.new(name: 'CertificateDescription')
161
175
  CertificateId = Shapes::StringShape.new(name: 'CertificateId')
176
+ CertificateMode = Shapes::StringShape.new(name: 'CertificateMode')
162
177
  CertificateName = Shapes::StringShape.new(name: 'CertificateName')
163
178
  CertificatePathOnDevice = Shapes::StringShape.new(name: 'CertificatePathOnDevice')
164
179
  CertificatePem = Shapes::StringShape.new(name: 'CertificatePem')
@@ -706,6 +721,7 @@ module Aws::IoT
706
721
  Parameters = Shapes::MapShape.new(name: 'Parameters')
707
722
  PartitionKey = Shapes::StringShape.new(name: 'PartitionKey')
708
723
  PayloadField = Shapes::StringShape.new(name: 'PayloadField')
724
+ PayloadVersion = Shapes::StringShape.new(name: 'PayloadVersion')
709
725
  Percent = Shapes::FloatShape.new(name: 'Percent')
710
726
  PercentList = Shapes::ListShape.new(name: 'PercentList')
711
727
  PercentPair = Shapes::StructureShape.new(name: 'PercentPair')
@@ -740,6 +756,7 @@ module Aws::IoT
740
756
  ProcessingTargetNameList = Shapes::ListShape.new(name: 'ProcessingTargetNameList')
741
757
  Protocol = Shapes::StringShape.new(name: 'Protocol')
742
758
  Protocols = Shapes::ListShape.new(name: 'Protocols')
759
+ ProvisioningHook = Shapes::StructureShape.new(name: 'ProvisioningHook')
743
760
  ProvisioningTemplateListing = Shapes::ListShape.new(name: 'ProvisioningTemplateListing')
744
761
  ProvisioningTemplateSummary = Shapes::StructureShape.new(name: 'ProvisioningTemplateSummary')
745
762
  ProvisioningTemplateVersionListing = Shapes::ListShape.new(name: 'ProvisioningTemplateVersionListing')
@@ -769,6 +786,8 @@ module Aws::IoT
769
786
  RegisterCACertificateResponse = Shapes::StructureShape.new(name: 'RegisterCACertificateResponse')
770
787
  RegisterCertificateRequest = Shapes::StructureShape.new(name: 'RegisterCertificateRequest')
771
788
  RegisterCertificateResponse = Shapes::StructureShape.new(name: 'RegisterCertificateResponse')
789
+ RegisterCertificateWithoutCARequest = Shapes::StructureShape.new(name: 'RegisterCertificateWithoutCARequest')
790
+ RegisterCertificateWithoutCAResponse = Shapes::StructureShape.new(name: 'RegisterCertificateWithoutCAResponse')
772
791
  RegisterThingRequest = Shapes::StructureShape.new(name: 'RegisterThingRequest')
773
792
  RegisterThingResponse = Shapes::StructureShape.new(name: 'RegisterThingResponse')
774
793
  RegistrationCode = Shapes::StringShape.new(name: 'RegistrationCode')
@@ -783,6 +802,7 @@ module Aws::IoT
783
802
  RelatedResources = Shapes::ListShape.new(name: 'RelatedResources')
784
803
  RemoveAuthorizerConfig = Shapes::BooleanShape.new(name: 'RemoveAuthorizerConfig')
785
804
  RemoveAutoRegistration = Shapes::BooleanShape.new(name: 'RemoveAutoRegistration')
805
+ RemoveHook = Shapes::BooleanShape.new(name: 'RemoveHook')
786
806
  RemoveThingFromBillingGroupRequest = Shapes::StructureShape.new(name: 'RemoveThingFromBillingGroupRequest')
787
807
  RemoveThingFromBillingGroupResponse = Shapes::StructureShape.new(name: 'RemoveThingFromBillingGroupResponse')
788
808
  RemoveThingFromThingGroupRequest = Shapes::StructureShape.new(name: 'RemoveThingFromThingGroupRequest')
@@ -1290,7 +1310,7 @@ module Aws::IoT
1290
1310
  AuditTaskMetadataList.member = Shapes::ShapeRef.new(shape: AuditTaskMetadata)
1291
1311
 
1292
1312
  AuthInfo.add_member(:action_type, Shapes::ShapeRef.new(shape: ActionType, location_name: "actionType"))
1293
- AuthInfo.add_member(:resources, Shapes::ShapeRef.new(shape: Resources, location_name: "resources"))
1313
+ AuthInfo.add_member(:resources, Shapes::ShapeRef.new(shape: Resources, required: true, location_name: "resources"))
1294
1314
  AuthInfo.struct_class = Types::AuthInfo
1295
1315
 
1296
1316
  AuthInfos.member = Shapes::ShapeRef.new(shape: AuthInfo)
@@ -1325,12 +1345,36 @@ module Aws::IoT
1325
1345
 
1326
1346
  Authorizers.member = Shapes::ShapeRef.new(shape: AuthorizerSummary)
1327
1347
 
1348
+ AwsJobAbortConfig.add_member(:abort_criteria_list, Shapes::ShapeRef.new(shape: AwsJobAbortCriteriaList, required: true, location_name: "abortCriteriaList"))
1349
+ AwsJobAbortConfig.struct_class = Types::AwsJobAbortConfig
1350
+
1351
+ AwsJobAbortCriteria.add_member(:failure_type, Shapes::ShapeRef.new(shape: AwsJobAbortCriteriaFailureType, required: true, location_name: "failureType"))
1352
+ AwsJobAbortCriteria.add_member(:action, Shapes::ShapeRef.new(shape: AwsJobAbortCriteriaAbortAction, required: true, location_name: "action"))
1353
+ AwsJobAbortCriteria.add_member(:threshold_percentage, Shapes::ShapeRef.new(shape: AwsJobAbortCriteriaAbortThresholdPercentage, required: true, location_name: "thresholdPercentage"))
1354
+ AwsJobAbortCriteria.add_member(:min_number_of_executed_things, Shapes::ShapeRef.new(shape: AwsJobAbortCriteriaMinimumNumberOfExecutedThings, required: true, location_name: "minNumberOfExecutedThings"))
1355
+ AwsJobAbortCriteria.struct_class = Types::AwsJobAbortCriteria
1356
+
1357
+ AwsJobAbortCriteriaList.member = Shapes::ShapeRef.new(shape: AwsJobAbortCriteria)
1358
+
1328
1359
  AwsJobExecutionsRolloutConfig.add_member(:maximum_per_minute, Shapes::ShapeRef.new(shape: MaximumPerMinute, location_name: "maximumPerMinute"))
1360
+ AwsJobExecutionsRolloutConfig.add_member(:exponential_rate, Shapes::ShapeRef.new(shape: AwsJobExponentialRolloutRate, location_name: "exponentialRate"))
1329
1361
  AwsJobExecutionsRolloutConfig.struct_class = Types::AwsJobExecutionsRolloutConfig
1330
1362
 
1363
+ AwsJobExponentialRolloutRate.add_member(:base_rate_per_minute, Shapes::ShapeRef.new(shape: AwsJobRolloutRatePerMinute, required: true, location_name: "baseRatePerMinute"))
1364
+ AwsJobExponentialRolloutRate.add_member(:increment_factor, Shapes::ShapeRef.new(shape: AwsJobRolloutIncrementFactor, required: true, location_name: "incrementFactor"))
1365
+ AwsJobExponentialRolloutRate.add_member(:rate_increase_criteria, Shapes::ShapeRef.new(shape: AwsJobRateIncreaseCriteria, required: true, location_name: "rateIncreaseCriteria"))
1366
+ AwsJobExponentialRolloutRate.struct_class = Types::AwsJobExponentialRolloutRate
1367
+
1331
1368
  AwsJobPresignedUrlConfig.add_member(:expires_in_sec, Shapes::ShapeRef.new(shape: ExpiresInSeconds, location_name: "expiresInSec"))
1332
1369
  AwsJobPresignedUrlConfig.struct_class = Types::AwsJobPresignedUrlConfig
1333
1370
 
1371
+ AwsJobRateIncreaseCriteria.add_member(:number_of_notified_things, Shapes::ShapeRef.new(shape: AwsJobRateIncreaseCriteriaNumberOfThings, location_name: "numberOfNotifiedThings"))
1372
+ AwsJobRateIncreaseCriteria.add_member(:number_of_succeeded_things, Shapes::ShapeRef.new(shape: AwsJobRateIncreaseCriteriaNumberOfThings, location_name: "numberOfSucceededThings"))
1373
+ AwsJobRateIncreaseCriteria.struct_class = Types::AwsJobRateIncreaseCriteria
1374
+
1375
+ AwsJobTimeoutConfig.add_member(:in_progress_timeout_in_minutes, Shapes::ShapeRef.new(shape: AwsJobTimeoutInProgressTimeoutInMinutes, location_name: "inProgressTimeoutInMinutes"))
1376
+ AwsJobTimeoutConfig.struct_class = Types::AwsJobTimeoutConfig
1377
+
1334
1378
  Behavior.add_member(:name, Shapes::ShapeRef.new(shape: BehaviorName, required: true, location_name: "name"))
1335
1379
  Behavior.add_member(:metric, Shapes::ShapeRef.new(shape: BehaviorMetric, location_name: "metric"))
1336
1380
  Behavior.add_member(:metric_dimension, Shapes::ShapeRef.new(shape: MetricDimension, location_name: "metricDimension"))
@@ -1410,6 +1454,7 @@ module Aws::IoT
1410
1454
  Certificate.add_member(:certificate_arn, Shapes::ShapeRef.new(shape: CertificateArn, location_name: "certificateArn"))
1411
1455
  Certificate.add_member(:certificate_id, Shapes::ShapeRef.new(shape: CertificateId, location_name: "certificateId"))
1412
1456
  Certificate.add_member(:status, Shapes::ShapeRef.new(shape: CertificateStatus, location_name: "status"))
1457
+ Certificate.add_member(:certificate_mode, Shapes::ShapeRef.new(shape: CertificateMode, location_name: "certificateMode"))
1413
1458
  Certificate.add_member(:creation_date, Shapes::ShapeRef.new(shape: DateType, location_name: "creationDate"))
1414
1459
  Certificate.struct_class = Types::Certificate
1415
1460
 
@@ -1429,6 +1474,7 @@ module Aws::IoT
1429
1474
  CertificateDescription.add_member(:transfer_data, Shapes::ShapeRef.new(shape: TransferData, location_name: "transferData"))
1430
1475
  CertificateDescription.add_member(:generation_id, Shapes::ShapeRef.new(shape: GenerationId, location_name: "generationId"))
1431
1476
  CertificateDescription.add_member(:validity, Shapes::ShapeRef.new(shape: CertificateValidity, location_name: "validity"))
1477
+ CertificateDescription.add_member(:certificate_mode, Shapes::ShapeRef.new(shape: CertificateMode, location_name: "certificateMode"))
1432
1478
  CertificateDescription.struct_class = Types::CertificateDescription
1433
1479
 
1434
1480
  CertificateStateException.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
@@ -1495,6 +1541,7 @@ module Aws::IoT
1495
1541
  CreateAuthorizerRequest.add_member(:token_key_name, Shapes::ShapeRef.new(shape: TokenKeyName, location_name: "tokenKeyName"))
1496
1542
  CreateAuthorizerRequest.add_member(:token_signing_public_keys, Shapes::ShapeRef.new(shape: PublicKeyMap, location_name: "tokenSigningPublicKeys"))
1497
1543
  CreateAuthorizerRequest.add_member(:status, Shapes::ShapeRef.new(shape: AuthorizerStatus, location_name: "status"))
1544
+ CreateAuthorizerRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
1498
1545
  CreateAuthorizerRequest.add_member(:signing_disabled, Shapes::ShapeRef.new(shape: BooleanKey, location_name: "signingDisabled"))
1499
1546
  CreateAuthorizerRequest.struct_class = Types::CreateAuthorizerRequest
1500
1547
 
@@ -1538,6 +1585,7 @@ module Aws::IoT
1538
1585
  CreateDomainConfigurationRequest.add_member(:validation_certificate_arn, Shapes::ShapeRef.new(shape: AcmCertificateArn, location_name: "validationCertificateArn"))
1539
1586
  CreateDomainConfigurationRequest.add_member(:authorizer_config, Shapes::ShapeRef.new(shape: AuthorizerConfig, location_name: "authorizerConfig"))
1540
1587
  CreateDomainConfigurationRequest.add_member(:service_type, Shapes::ShapeRef.new(shape: ServiceType, location_name: "serviceType"))
1588
+ CreateDomainConfigurationRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
1541
1589
  CreateDomainConfigurationRequest.struct_class = Types::CreateDomainConfigurationRequest
1542
1590
 
1543
1591
  CreateDomainConfigurationResponse.add_member(:domain_configuration_name, Shapes::ShapeRef.new(shape: DomainConfigurationName, location_name: "domainConfigurationName"))
@@ -1604,6 +1652,8 @@ module Aws::IoT
1604
1652
  CreateOTAUpdateRequest.add_member(:target_selection, Shapes::ShapeRef.new(shape: TargetSelection, location_name: "targetSelection"))
1605
1653
  CreateOTAUpdateRequest.add_member(:aws_job_executions_rollout_config, Shapes::ShapeRef.new(shape: AwsJobExecutionsRolloutConfig, location_name: "awsJobExecutionsRolloutConfig"))
1606
1654
  CreateOTAUpdateRequest.add_member(:aws_job_presigned_url_config, Shapes::ShapeRef.new(shape: AwsJobPresignedUrlConfig, location_name: "awsJobPresignedUrlConfig"))
1655
+ CreateOTAUpdateRequest.add_member(:aws_job_abort_config, Shapes::ShapeRef.new(shape: AwsJobAbortConfig, location_name: "awsJobAbortConfig"))
1656
+ CreateOTAUpdateRequest.add_member(:aws_job_timeout_config, Shapes::ShapeRef.new(shape: AwsJobTimeoutConfig, location_name: "awsJobTimeoutConfig"))
1607
1657
  CreateOTAUpdateRequest.add_member(:files, Shapes::ShapeRef.new(shape: OTAUpdateFiles, required: true, location_name: "files"))
1608
1658
  CreateOTAUpdateRequest.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleArn, required: true, location_name: "roleArn"))
1609
1659
  CreateOTAUpdateRequest.add_member(:additional_parameters, Shapes::ShapeRef.new(shape: AdditionalParameterMap, location_name: "additionalParameters"))
@@ -1619,6 +1669,7 @@ module Aws::IoT
1619
1669
 
1620
1670
  CreatePolicyRequest.add_member(:policy_name, Shapes::ShapeRef.new(shape: PolicyName, required: true, location: "uri", location_name: "policyName"))
1621
1671
  CreatePolicyRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: PolicyDocument, required: true, location_name: "policyDocument"))
1672
+ CreatePolicyRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
1622
1673
  CreatePolicyRequest.struct_class = Types::CreatePolicyRequest
1623
1674
 
1624
1675
  CreatePolicyResponse.add_member(:policy_name, Shapes::ShapeRef.new(shape: PolicyName, location_name: "policyName"))
@@ -1652,6 +1703,7 @@ module Aws::IoT
1652
1703
  CreateProvisioningTemplateRequest.add_member(:template_body, Shapes::ShapeRef.new(shape: TemplateBody, required: true, location_name: "templateBody"))
1653
1704
  CreateProvisioningTemplateRequest.add_member(:enabled, Shapes::ShapeRef.new(shape: Enabled, location_name: "enabled"))
1654
1705
  CreateProvisioningTemplateRequest.add_member(:provisioning_role_arn, Shapes::ShapeRef.new(shape: RoleArn, required: true, location_name: "provisioningRoleArn"))
1706
+ CreateProvisioningTemplateRequest.add_member(:pre_provisioning_hook, Shapes::ShapeRef.new(shape: ProvisioningHook, location_name: "preProvisioningHook"))
1655
1707
  CreateProvisioningTemplateRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
1656
1708
  CreateProvisioningTemplateRequest.struct_class = Types::CreateProvisioningTemplateRequest
1657
1709
 
@@ -1674,6 +1726,7 @@ module Aws::IoT
1674
1726
  CreateRoleAliasRequest.add_member(:role_alias, Shapes::ShapeRef.new(shape: RoleAlias, required: true, location: "uri", location_name: "roleAlias"))
1675
1727
  CreateRoleAliasRequest.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleArn, required: true, location_name: "roleArn"))
1676
1728
  CreateRoleAliasRequest.add_member(:credential_duration_seconds, Shapes::ShapeRef.new(shape: CredentialDurationSeconds, location_name: "credentialDurationSeconds"))
1729
+ CreateRoleAliasRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
1677
1730
  CreateRoleAliasRequest.struct_class = Types::CreateRoleAliasRequest
1678
1731
 
1679
1732
  CreateRoleAliasResponse.add_member(:role_alias, Shapes::ShapeRef.new(shape: RoleAlias, location_name: "roleAlias"))
@@ -2072,6 +2125,7 @@ module Aws::IoT
2072
2125
  DescribeProvisioningTemplateResponse.add_member(:template_body, Shapes::ShapeRef.new(shape: TemplateBody, location_name: "templateBody"))
2073
2126
  DescribeProvisioningTemplateResponse.add_member(:enabled, Shapes::ShapeRef.new(shape: Enabled, location_name: "enabled"))
2074
2127
  DescribeProvisioningTemplateResponse.add_member(:provisioning_role_arn, Shapes::ShapeRef.new(shape: RoleArn, location_name: "provisioningRoleArn"))
2128
+ DescribeProvisioningTemplateResponse.add_member(:pre_provisioning_hook, Shapes::ShapeRef.new(shape: ProvisioningHook, location_name: "preProvisioningHook"))
2075
2129
  DescribeProvisioningTemplateResponse.struct_class = Types::DescribeProvisioningTemplateResponse
2076
2130
 
2077
2131
  DescribeProvisioningTemplateVersionRequest.add_member(:template_name, Shapes::ShapeRef.new(shape: TemplateName, required: true, location: "uri", location_name: "templateName"))
@@ -3189,6 +3243,10 @@ module Aws::IoT
3189
3243
 
3190
3244
  Protocols.member = Shapes::ShapeRef.new(shape: Protocol)
3191
3245
 
3246
+ ProvisioningHook.add_member(:payload_version, Shapes::ShapeRef.new(shape: PayloadVersion, location_name: "payloadVersion"))
3247
+ ProvisioningHook.add_member(:target_arn, Shapes::ShapeRef.new(shape: TargetArn, required: true, location_name: "targetArn"))
3248
+ ProvisioningHook.struct_class = Types::ProvisioningHook
3249
+
3192
3250
  ProvisioningTemplateListing.member = Shapes::ShapeRef.new(shape: ProvisioningTemplateSummary)
3193
3251
 
3194
3252
  ProvisioningTemplateSummary.add_member(:template_arn, Shapes::ShapeRef.new(shape: TemplateArn, location_name: "templateArn"))
@@ -3235,6 +3293,7 @@ module Aws::IoT
3235
3293
  RegisterCACertificateRequest.add_member(:set_as_active, Shapes::ShapeRef.new(shape: SetAsActive, location: "querystring", location_name: "setAsActive"))
3236
3294
  RegisterCACertificateRequest.add_member(:allow_auto_registration, Shapes::ShapeRef.new(shape: AllowAutoRegistration, location: "querystring", location_name: "allowAutoRegistration"))
3237
3295
  RegisterCACertificateRequest.add_member(:registration_config, Shapes::ShapeRef.new(shape: RegistrationConfig, location_name: "registrationConfig"))
3296
+ RegisterCACertificateRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
3238
3297
  RegisterCACertificateRequest.struct_class = Types::RegisterCACertificateRequest
3239
3298
 
3240
3299
  RegisterCACertificateResponse.add_member(:certificate_arn, Shapes::ShapeRef.new(shape: CertificateArn, location_name: "certificateArn"))
@@ -3251,6 +3310,14 @@ module Aws::IoT
3251
3310
  RegisterCertificateResponse.add_member(:certificate_id, Shapes::ShapeRef.new(shape: CertificateId, location_name: "certificateId"))
3252
3311
  RegisterCertificateResponse.struct_class = Types::RegisterCertificateResponse
3253
3312
 
3313
+ RegisterCertificateWithoutCARequest.add_member(:certificate_pem, Shapes::ShapeRef.new(shape: CertificatePem, required: true, location_name: "certificatePem"))
3314
+ RegisterCertificateWithoutCARequest.add_member(:status, Shapes::ShapeRef.new(shape: CertificateStatus, location_name: "status"))
3315
+ RegisterCertificateWithoutCARequest.struct_class = Types::RegisterCertificateWithoutCARequest
3316
+
3317
+ RegisterCertificateWithoutCAResponse.add_member(:certificate_arn, Shapes::ShapeRef.new(shape: CertificateArn, location_name: "certificateArn"))
3318
+ RegisterCertificateWithoutCAResponse.add_member(:certificate_id, Shapes::ShapeRef.new(shape: CertificateId, location_name: "certificateId"))
3319
+ RegisterCertificateWithoutCAResponse.struct_class = Types::RegisterCertificateWithoutCAResponse
3320
+
3254
3321
  RegisterThingRequest.add_member(:template_body, Shapes::ShapeRef.new(shape: TemplateBody, required: true, location_name: "templateBody"))
3255
3322
  RegisterThingRequest.add_member(:parameters, Shapes::ShapeRef.new(shape: Parameters, location_name: "parameters"))
3256
3323
  RegisterThingRequest.struct_class = Types::RegisterThingRequest
@@ -3548,7 +3615,7 @@ module Aws::IoT
3548
3615
  StringMap.key = Shapes::ShapeRef.new(shape: String)
3549
3616
  StringMap.value = Shapes::ShapeRef.new(shape: String)
3550
3617
 
3551
- Tag.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, location_name: "Key"))
3618
+ Tag.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "Key"))
3552
3619
  Tag.add_member(:value, Shapes::ShapeRef.new(shape: TagValue, location_name: "Value"))
3553
3620
  Tag.struct_class = Types::Tag
3554
3621
 
@@ -3885,6 +3952,8 @@ module Aws::IoT
3885
3952
  UpdateProvisioningTemplateRequest.add_member(:enabled, Shapes::ShapeRef.new(shape: Enabled, location_name: "enabled"))
3886
3953
  UpdateProvisioningTemplateRequest.add_member(:default_version_id, Shapes::ShapeRef.new(shape: TemplateVersionId, location_name: "defaultVersionId"))
3887
3954
  UpdateProvisioningTemplateRequest.add_member(:provisioning_role_arn, Shapes::ShapeRef.new(shape: RoleArn, location_name: "provisioningRoleArn"))
3955
+ UpdateProvisioningTemplateRequest.add_member(:pre_provisioning_hook, Shapes::ShapeRef.new(shape: ProvisioningHook, location_name: "preProvisioningHook"))
3956
+ UpdateProvisioningTemplateRequest.add_member(:remove_pre_provisioning_hook, Shapes::ShapeRef.new(shape: RemoveHook, location_name: "removePreProvisioningHook"))
3888
3957
  UpdateProvisioningTemplateRequest.struct_class = Types::UpdateProvisioningTemplateRequest
3889
3958
 
3890
3959
  UpdateProvisioningTemplateResponse.struct_class = Types::UpdateProvisioningTemplateResponse
@@ -5073,6 +5142,7 @@ module Aws::IoT
5073
5142
  o.output = Shapes::ShapeRef.new(shape: DescribeDomainConfigurationResponse)
5074
5143
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
5075
5144
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
5145
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
5076
5146
  o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
5077
5147
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
5078
5148
  o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
@@ -6184,6 +6254,22 @@ module Aws::IoT
6184
6254
  o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
6185
6255
  end)
6186
6256
 
6257
+ api.add_operation(:register_certificate_without_ca, Seahorse::Model::Operation.new.tap do |o|
6258
+ o.name = "RegisterCertificateWithoutCA"
6259
+ o.http_method = "POST"
6260
+ o.http_request_uri = "/certificate/register-no-ca"
6261
+ o.input = Shapes::ShapeRef.new(shape: RegisterCertificateWithoutCARequest)
6262
+ o.output = Shapes::ShapeRef.new(shape: RegisterCertificateWithoutCAResponse)
6263
+ o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
6264
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
6265
+ o.errors << Shapes::ShapeRef.new(shape: CertificateStateException)
6266
+ o.errors << Shapes::ShapeRef.new(shape: CertificateValidationException)
6267
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
6268
+ o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
6269
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
6270
+ o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
6271
+ end)
6272
+
6187
6273
  api.add_operation(:register_thing, Seahorse::Model::Operation.new.tap do |o|
6188
6274
  o.name = "RegisterThing"
6189
6275
  o.http_method = "POST"
@@ -6318,7 +6404,6 @@ module Aws::IoT
6318
6404
  o.errors << Shapes::ShapeRef.new(shape: NotConfiguredException)
6319
6405
  o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
6320
6406
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
6321
- o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
6322
6407
  end)
6323
6408
 
6324
6409
  api.add_operation(:set_v2_logging_options, Seahorse::Model::Operation.new.tap do |o|
@@ -8,7 +8,7 @@
8
8
  module Aws::IoT
9
9
  module Types
10
10
 
11
- # Details of abort criteria to abort the job.
11
+ # The criteria that determine when and how a job abort takes place.
12
12
  #
13
13
  # @note When making an API call, you may pass AbortConfig
14
14
  # data as a hash:
@@ -25,7 +25,7 @@ module Aws::IoT
25
25
  # }
26
26
  #
27
27
  # @!attribute [rw] criteria_list
28
- # The list of abort criteria to define rules to abort the job.
28
+ # The list of criteria that determine when and how to abort the job.
29
29
  # @return [Array<Types::AbortCriteria>]
30
30
  #
31
31
  class AbortConfig < Struct.new(
@@ -33,7 +33,7 @@ module Aws::IoT
33
33
  include Aws::Structure
34
34
  end
35
35
 
36
- # Details of abort criteria to define rules to abort the job.
36
+ # The criteria that determine when and how a job abort takes place.
37
37
  #
38
38
  # @note When making an API call, you may pass AbortCriteria
39
39
  # data as a hash:
@@ -46,24 +46,24 @@ module Aws::IoT
46
46
  # }
47
47
  #
48
48
  # @!attribute [rw] failure_type
49
- # The type of job execution failure to define a rule to initiate a job
50
- # abort.
49
+ # The type of job execution failures that can initiate a job abort.
51
50
  # @return [String]
52
51
  #
53
52
  # @!attribute [rw] action
54
- # The type of abort action to initiate a job abort.
53
+ # The type of job action to take to initiate the job abort.
55
54
  # @return [String]
56
55
  #
57
56
  # @!attribute [rw] threshold_percentage
58
- # The threshold as a percentage of the total number of executed things
59
- # that will initiate a job abort.
57
+ # The minimum percentage of job execution failures that must occur to
58
+ # initiate the job abort.
60
59
  #
61
60
  # AWS IoT supports up to two digits after the decimal (for example,
62
61
  # 10.9 and 10.99, but not 10.999).
63
62
  # @return [Float]
64
63
  #
65
64
  # @!attribute [rw] min_number_of_executed_things
66
- # Minimum number of executed things before evaluating an abort rule.
65
+ # The minimum number of things which must receive job execution
66
+ # notifications before the job can be aborted.
67
67
  # @return [Integer]
68
68
  #
69
69
  class AbortCriteria < Struct.new(
@@ -709,7 +709,7 @@ module Aws::IoT
709
709
  #
710
710
  #
711
711
  #
712
- # [1]: https://docs.aws.amazon.com/iot/latest/developerguide/iot-security-identity.html
712
+ # [1]: https://docs.aws.amazon.com/iot/latest/developerguide/security-iam.html
713
713
  # @return [String]
714
714
  #
715
715
  class AttachPolicyRequest < Struct.new(
@@ -1134,7 +1134,7 @@ module Aws::IoT
1134
1134
  #
1135
1135
  # {
1136
1136
  # action_type: "PUBLISH", # accepts PUBLISH, SUBSCRIBE, RECEIVE, CONNECT
1137
- # resources: ["Resource"],
1137
+ # resources: ["Resource"], # required
1138
1138
  # }
1139
1139
  #
1140
1140
  # @!attribute [rw] action_type
@@ -1280,6 +1280,72 @@ module Aws::IoT
1280
1280
  include Aws::Structure
1281
1281
  end
1282
1282
 
1283
+ # The criteria that determine when and how a job abort takes place.
1284
+ #
1285
+ # @note When making an API call, you may pass AwsJobAbortConfig
1286
+ # data as a hash:
1287
+ #
1288
+ # {
1289
+ # abort_criteria_list: [ # required
1290
+ # {
1291
+ # failure_type: "FAILED", # required, accepts FAILED, REJECTED, TIMED_OUT, ALL
1292
+ # action: "CANCEL", # required, accepts CANCEL
1293
+ # threshold_percentage: 1.0, # required
1294
+ # min_number_of_executed_things: 1, # required
1295
+ # },
1296
+ # ],
1297
+ # }
1298
+ #
1299
+ # @!attribute [rw] abort_criteria_list
1300
+ # The list of criteria that determine when and how to abort the job.
1301
+ # @return [Array<Types::AwsJobAbortCriteria>]
1302
+ #
1303
+ class AwsJobAbortConfig < Struct.new(
1304
+ :abort_criteria_list)
1305
+ include Aws::Structure
1306
+ end
1307
+
1308
+ # The criteria that determine when and how a job abort takes place.
1309
+ #
1310
+ # @note When making an API call, you may pass AwsJobAbortCriteria
1311
+ # data as a hash:
1312
+ #
1313
+ # {
1314
+ # failure_type: "FAILED", # required, accepts FAILED, REJECTED, TIMED_OUT, ALL
1315
+ # action: "CANCEL", # required, accepts CANCEL
1316
+ # threshold_percentage: 1.0, # required
1317
+ # min_number_of_executed_things: 1, # required
1318
+ # }
1319
+ #
1320
+ # @!attribute [rw] failure_type
1321
+ # The type of job execution failures that can initiate a job abort.
1322
+ # @return [String]
1323
+ #
1324
+ # @!attribute [rw] action
1325
+ # The type of job action to take to initiate the job abort.
1326
+ # @return [String]
1327
+ #
1328
+ # @!attribute [rw] threshold_percentage
1329
+ # The minimum percentage of job execution failures that must occur to
1330
+ # initiate the job abort.
1331
+ #
1332
+ # AWS IoT supports up to two digits after the decimal (for example,
1333
+ # 10.9 and 10.99, but not 10.999).
1334
+ # @return [Float]
1335
+ #
1336
+ # @!attribute [rw] min_number_of_executed_things
1337
+ # The minimum number of things which must receive job execution
1338
+ # notifications before the job can be aborted.
1339
+ # @return [Integer]
1340
+ #
1341
+ class AwsJobAbortCriteria < Struct.new(
1342
+ :failure_type,
1343
+ :action,
1344
+ :threshold_percentage,
1345
+ :min_number_of_executed_things)
1346
+ include Aws::Structure
1347
+ end
1348
+
1283
1349
  # Configuration for the rollout of OTA updates.
1284
1350
  #
1285
1351
  # @note When making an API call, you may pass AwsJobExecutionsRolloutConfig
@@ -1287,14 +1353,68 @@ module Aws::IoT
1287
1353
  #
1288
1354
  # {
1289
1355
  # maximum_per_minute: 1,
1356
+ # exponential_rate: {
1357
+ # base_rate_per_minute: 1, # required
1358
+ # increment_factor: 1.0, # required
1359
+ # rate_increase_criteria: { # required
1360
+ # number_of_notified_things: 1,
1361
+ # number_of_succeeded_things: 1,
1362
+ # },
1363
+ # },
1290
1364
  # }
1291
1365
  #
1292
1366
  # @!attribute [rw] maximum_per_minute
1293
1367
  # The maximum number of OTA update job executions started per minute.
1294
1368
  # @return [Integer]
1295
1369
  #
1370
+ # @!attribute [rw] exponential_rate
1371
+ # The rate of increase for a job rollout. This parameter allows you to
1372
+ # define an exponential rate increase for a job rollout.
1373
+ # @return [Types::AwsJobExponentialRolloutRate]
1374
+ #
1296
1375
  class AwsJobExecutionsRolloutConfig < Struct.new(
1297
- :maximum_per_minute)
1376
+ :maximum_per_minute,
1377
+ :exponential_rate)
1378
+ include Aws::Structure
1379
+ end
1380
+
1381
+ # The rate of increase for a job rollout. This parameter allows you to
1382
+ # define an exponential rate increase for a job rollout.
1383
+ #
1384
+ # @note When making an API call, you may pass AwsJobExponentialRolloutRate
1385
+ # data as a hash:
1386
+ #
1387
+ # {
1388
+ # base_rate_per_minute: 1, # required
1389
+ # increment_factor: 1.0, # required
1390
+ # rate_increase_criteria: { # required
1391
+ # number_of_notified_things: 1,
1392
+ # number_of_succeeded_things: 1,
1393
+ # },
1394
+ # }
1395
+ #
1396
+ # @!attribute [rw] base_rate_per_minute
1397
+ # The minimum number of things that will be notified of a pending job,
1398
+ # per minute, at the start of the job rollout. This is the initial
1399
+ # rate of the rollout.
1400
+ # @return [Integer]
1401
+ #
1402
+ # @!attribute [rw] increment_factor
1403
+ # The rate of increase for a job rollout. The number of things
1404
+ # notified is multiplied by this factor.
1405
+ # @return [Float]
1406
+ #
1407
+ # @!attribute [rw] rate_increase_criteria
1408
+ # The criteria to initiate the increase in rate of rollout for a job.
1409
+ #
1410
+ # AWS IoT supports up to one digit after the decimal (for example,
1411
+ # 1.5, but not 1.55).
1412
+ # @return [Types::AwsJobRateIncreaseCriteria]
1413
+ #
1414
+ class AwsJobExponentialRolloutRate < Struct.new(
1415
+ :base_rate_per_minute,
1416
+ :increment_factor,
1417
+ :rate_increase_criteria)
1298
1418
  include Aws::Structure
1299
1419
  end
1300
1420
 
@@ -1319,6 +1439,60 @@ module Aws::IoT
1319
1439
  include Aws::Structure
1320
1440
  end
1321
1441
 
1442
+ # The criteria to initiate the increase in rate of rollout for a job.
1443
+ #
1444
+ # @note When making an API call, you may pass AwsJobRateIncreaseCriteria
1445
+ # data as a hash:
1446
+ #
1447
+ # {
1448
+ # number_of_notified_things: 1,
1449
+ # number_of_succeeded_things: 1,
1450
+ # }
1451
+ #
1452
+ # @!attribute [rw] number_of_notified_things
1453
+ # When this number of things have been notified, it will initiate an
1454
+ # increase in the rollout rate.
1455
+ # @return [Integer]
1456
+ #
1457
+ # @!attribute [rw] number_of_succeeded_things
1458
+ # When this number of things have succeeded in their job execution, it
1459
+ # will initiate an increase in the rollout rate.
1460
+ # @return [Integer]
1461
+ #
1462
+ class AwsJobRateIncreaseCriteria < Struct.new(
1463
+ :number_of_notified_things,
1464
+ :number_of_succeeded_things)
1465
+ include Aws::Structure
1466
+ end
1467
+
1468
+ # Specifies the amount of time each device has to finish its execution
1469
+ # of the job. A timer is started when the job execution status is set to
1470
+ # `IN_PROGRESS`. If the job execution status is not set to another
1471
+ # terminal state before the timer expires, it will be automatically set
1472
+ # to `TIMED_OUT`.
1473
+ #
1474
+ # @note When making an API call, you may pass AwsJobTimeoutConfig
1475
+ # data as a hash:
1476
+ #
1477
+ # {
1478
+ # in_progress_timeout_in_minutes: 1,
1479
+ # }
1480
+ #
1481
+ # @!attribute [rw] in_progress_timeout_in_minutes
1482
+ # Specifies the amount of time, in minutes, this device has to finish
1483
+ # execution of this job. The timeout interval can be anywhere between
1484
+ # 1 minute and 7 days (1 to 10080 minutes). The in progress timer
1485
+ # can't be updated and will apply to all job executions for the job.
1486
+ # Whenever a job execution remains in the IN\_PROGRESS status for
1487
+ # longer than this interval, the job execution will fail and switch to
1488
+ # the terminal `TIMED_OUT` status.
1489
+ # @return [Integer]
1490
+ #
1491
+ class AwsJobTimeoutConfig < Struct.new(
1492
+ :in_progress_timeout_in_minutes)
1493
+ include Aws::Structure
1494
+ end
1495
+
1322
1496
  # A Device Defender security profile behavior.
1323
1497
  #
1324
1498
  # @note When making an API call, you may pass Behavior
@@ -1758,6 +1932,10 @@ module Aws::IoT
1758
1932
  # used.
1759
1933
  # @return [String]
1760
1934
  #
1935
+ # @!attribute [rw] certificate_mode
1936
+ # The mode of the certificate.
1937
+ # @return [String]
1938
+ #
1761
1939
  # @!attribute [rw] creation_date
1762
1940
  # The date and time the certificate was created.
1763
1941
  # @return [Time]
@@ -1766,6 +1944,7 @@ module Aws::IoT
1766
1944
  :certificate_arn,
1767
1945
  :certificate_id,
1768
1946
  :status,
1947
+ :certificate_mode,
1769
1948
  :creation_date)
1770
1949
  include Aws::Structure
1771
1950
  end
@@ -1839,6 +2018,10 @@ module Aws::IoT
1839
2018
  # When the certificate is valid.
1840
2019
  # @return [Types::CertificateValidity]
1841
2020
  #
2021
+ # @!attribute [rw] certificate_mode
2022
+ # The mode of the certificate.
2023
+ # @return [String]
2024
+ #
1842
2025
  class CertificateDescription < Struct.new(
1843
2026
  :certificate_arn,
1844
2027
  :certificate_id,
@@ -1852,7 +2035,8 @@ module Aws::IoT
1852
2035
  :customer_version,
1853
2036
  :transfer_data,
1854
2037
  :generation_id,
1855
- :validity)
2038
+ :validity,
2039
+ :certificate_mode)
1856
2040
  include Aws::Structure
1857
2041
  end
1858
2042
 
@@ -2174,6 +2358,12 @@ module Aws::IoT
2174
2358
  # "KeyName" => "KeyValue",
2175
2359
  # },
2176
2360
  # status: "ACTIVE", # accepts ACTIVE, INACTIVE
2361
+ # tags: [
2362
+ # {
2363
+ # key: "TagKey", # required
2364
+ # value: "TagValue",
2365
+ # },
2366
+ # ],
2177
2367
  # signing_disabled: false,
2178
2368
  # }
2179
2369
  #
@@ -2199,6 +2389,21 @@ module Aws::IoT
2199
2389
  # The status of the create authorizer request.
2200
2390
  # @return [String]
2201
2391
  #
2392
+ # @!attribute [rw] tags
2393
+ # Metadata which can be used to manage the custom authorizer.
2394
+ #
2395
+ # <note markdown="1"> For URI Request parameters use format:
2396
+ # ...key1=value1&amp;key2=value2...
2397
+ #
2398
+ # For the CLI command-line parameter use format: &amp;&amp;tags
2399
+ # "key1=value1&amp;key2=value2..."
2400
+ #
2401
+ # For the cli-input-json file use format: "tags":
2402
+ # "key1=value1&amp;key2=value2..."
2403
+ #
2404
+ # </note>
2405
+ # @return [Array<Types::Tag>]
2406
+ #
2202
2407
  # @!attribute [rw] signing_disabled
2203
2408
  # Specifies whether AWS IoT validates the token signature in an
2204
2409
  # authorization request.
@@ -2210,6 +2415,7 @@ module Aws::IoT
2210
2415
  :token_key_name,
2211
2416
  :token_signing_public_keys,
2212
2417
  :status,
2418
+ :tags,
2213
2419
  :signing_disabled)
2214
2420
  include Aws::Structure
2215
2421
  end
@@ -2238,7 +2444,7 @@ module Aws::IoT
2238
2444
  # },
2239
2445
  # tags: [
2240
2446
  # {
2241
- # key: "TagKey",
2447
+ # key: "TagKey", # required
2242
2448
  # value: "TagValue",
2243
2449
  # },
2244
2450
  # ],
@@ -2338,7 +2544,7 @@ module Aws::IoT
2338
2544
  # string_values: ["DimensionStringValue"], # required
2339
2545
  # tags: [
2340
2546
  # {
2341
- # key: "TagKey",
2547
+ # key: "TagKey", # required
2342
2548
  # value: "TagValue",
2343
2549
  # },
2344
2550
  # ],
@@ -2411,6 +2617,12 @@ module Aws::IoT
2411
2617
  # allow_authorizer_override: false,
2412
2618
  # },
2413
2619
  # service_type: "DATA", # accepts DATA, CREDENTIAL_PROVIDER, JOBS
2620
+ # tags: [
2621
+ # {
2622
+ # key: "TagKey", # required
2623
+ # value: "TagValue",
2624
+ # },
2625
+ # ],
2414
2626
  # }
2415
2627
  #
2416
2628
  # @!attribute [rw] domain_configuration_name
@@ -2441,15 +2653,35 @@ module Aws::IoT
2441
2653
  #
2442
2654
  # @!attribute [rw] service_type
2443
2655
  # The type of service delivered by the endpoint.
2656
+ #
2657
+ # <note markdown="1"> AWS IoT Core currently supports only the `DATA` service type.
2658
+ #
2659
+ # </note>
2444
2660
  # @return [String]
2445
2661
  #
2662
+ # @!attribute [rw] tags
2663
+ # Metadata which can be used to manage the domain configuration.
2664
+ #
2665
+ # <note markdown="1"> For URI Request parameters use format:
2666
+ # ...key1=value1&amp;key2=value2...
2667
+ #
2668
+ # For the CLI command-line parameter use format: &amp;&amp;tags
2669
+ # "key1=value1&amp;key2=value2..."
2670
+ #
2671
+ # For the cli-input-json file use format: "tags":
2672
+ # "key1=value1&amp;key2=value2..."
2673
+ #
2674
+ # </note>
2675
+ # @return [Array<Types::Tag>]
2676
+ #
2446
2677
  class CreateDomainConfigurationRequest < Struct.new(
2447
2678
  :domain_configuration_name,
2448
2679
  :domain_name,
2449
2680
  :server_certificate_arns,
2450
2681
  :validation_certificate_arn,
2451
2682
  :authorizer_config,
2452
- :service_type)
2683
+ :service_type,
2684
+ :tags)
2453
2685
  include Aws::Structure
2454
2686
  end
2455
2687
 
@@ -2486,7 +2718,7 @@ module Aws::IoT
2486
2718
  # query_version: "QueryVersion",
2487
2719
  # tags: [
2488
2720
  # {
2489
- # key: "TagKey",
2721
+ # key: "TagKey", # required
2490
2722
  # value: "TagValue",
2491
2723
  # },
2492
2724
  # ],
@@ -2615,7 +2847,7 @@ module Aws::IoT
2615
2847
  # },
2616
2848
  # tags: [
2617
2849
  # {
2618
- # key: "TagKey",
2850
+ # key: "TagKey", # required
2619
2851
  # value: "TagValue",
2620
2852
  # },
2621
2853
  # ],
@@ -2797,7 +3029,7 @@ module Aws::IoT
2797
3029
  # },
2798
3030
  # tags: [
2799
3031
  # {
2800
- # key: "TagKey",
3032
+ # key: "TagKey", # required
2801
3033
  # value: "TagValue",
2802
3034
  # },
2803
3035
  # ],
@@ -2854,10 +3086,31 @@ module Aws::IoT
2854
3086
  # target_selection: "CONTINUOUS", # accepts CONTINUOUS, SNAPSHOT
2855
3087
  # aws_job_executions_rollout_config: {
2856
3088
  # maximum_per_minute: 1,
3089
+ # exponential_rate: {
3090
+ # base_rate_per_minute: 1, # required
3091
+ # increment_factor: 1.0, # required
3092
+ # rate_increase_criteria: { # required
3093
+ # number_of_notified_things: 1,
3094
+ # number_of_succeeded_things: 1,
3095
+ # },
3096
+ # },
2857
3097
  # },
2858
3098
  # aws_job_presigned_url_config: {
2859
3099
  # expires_in_sec: 1,
2860
3100
  # },
3101
+ # aws_job_abort_config: {
3102
+ # abort_criteria_list: [ # required
3103
+ # {
3104
+ # failure_type: "FAILED", # required, accepts FAILED, REJECTED, TIMED_OUT, ALL
3105
+ # action: "CANCEL", # required, accepts CANCEL
3106
+ # threshold_percentage: 1.0, # required
3107
+ # min_number_of_executed_things: 1, # required
3108
+ # },
3109
+ # ],
3110
+ # },
3111
+ # aws_job_timeout_config: {
3112
+ # in_progress_timeout_in_minutes: 1,
3113
+ # },
2861
3114
  # files: [ # required
2862
3115
  # {
2863
3116
  # file_name: "FileName",
@@ -2912,7 +3165,7 @@ module Aws::IoT
2912
3165
  # },
2913
3166
  # tags: [
2914
3167
  # {
2915
- # key: "TagKey",
3168
+ # key: "TagKey", # required
2916
3169
  # value: "TagValue",
2917
3170
  # },
2918
3171
  # ],
@@ -2927,7 +3180,7 @@ module Aws::IoT
2927
3180
  # @return [String]
2928
3181
  #
2929
3182
  # @!attribute [rw] targets
2930
- # The targeted devices to receive OTA updates.
3183
+ # The devices targeted to receive OTA updates.
2931
3184
  # @return [Array<String>]
2932
3185
  #
2933
3186
  # @!attribute [rw] protocols
@@ -2954,12 +3207,25 @@ module Aws::IoT
2954
3207
  # Configuration information for pre-signed URLs.
2955
3208
  # @return [Types::AwsJobPresignedUrlConfig]
2956
3209
  #
3210
+ # @!attribute [rw] aws_job_abort_config
3211
+ # The criteria that determine when and how a job abort takes place.
3212
+ # @return [Types::AwsJobAbortConfig]
3213
+ #
3214
+ # @!attribute [rw] aws_job_timeout_config
3215
+ # Specifies the amount of time each device has to finish its execution
3216
+ # of the job. A timer is started when the job execution status is set
3217
+ # to `IN_PROGRESS`. If the job execution status is not set to another
3218
+ # terminal state before the timer expires, it will be automatically
3219
+ # set to `TIMED_OUT`.
3220
+ # @return [Types::AwsJobTimeoutConfig]
3221
+ #
2957
3222
  # @!attribute [rw] files
2958
3223
  # The files to be streamed by the OTA update.
2959
3224
  # @return [Array<Types::OTAUpdateFile>]
2960
3225
  #
2961
3226
  # @!attribute [rw] role_arn
2962
- # The IAM role that allows access to the AWS IoT Jobs service.
3227
+ # The IAM role that grants AWS IoT access to the Amazon S3, AWS IoT
3228
+ # jobs and AWS Code Signing resources to create an OTA update job.
2963
3229
  # @return [String]
2964
3230
  #
2965
3231
  # @!attribute [rw] additional_parameters
@@ -2979,6 +3245,8 @@ module Aws::IoT
2979
3245
  :target_selection,
2980
3246
  :aws_job_executions_rollout_config,
2981
3247
  :aws_job_presigned_url_config,
3248
+ :aws_job_abort_config,
3249
+ :aws_job_timeout_config,
2982
3250
  :files,
2983
3251
  :role_arn,
2984
3252
  :additional_parameters,
@@ -3023,6 +3291,12 @@ module Aws::IoT
3023
3291
  # {
3024
3292
  # policy_name: "PolicyName", # required
3025
3293
  # policy_document: "PolicyDocument", # required
3294
+ # tags: [
3295
+ # {
3296
+ # key: "TagKey", # required
3297
+ # value: "TagValue",
3298
+ # },
3299
+ # ],
3026
3300
  # }
3027
3301
  #
3028
3302
  # @!attribute [rw] policy_name
@@ -3035,9 +3309,25 @@ module Aws::IoT
3035
3309
  # whitespace.
3036
3310
  # @return [String]
3037
3311
  #
3312
+ # @!attribute [rw] tags
3313
+ # Metadata which can be used to manage the policy.
3314
+ #
3315
+ # <note markdown="1"> For URI Request parameters use format:
3316
+ # ...key1=value1&amp;key2=value2...
3317
+ #
3318
+ # For the CLI command-line parameter use format: &amp;&amp;tags
3319
+ # "key1=value1&amp;key2=value2..."
3320
+ #
3321
+ # For the cli-input-json file use format: "tags":
3322
+ # "key1=value1&amp;key2=value2..."
3323
+ #
3324
+ # </note>
3325
+ # @return [Array<Types::Tag>]
3326
+ #
3038
3327
  class CreatePolicyRequest < Struct.new(
3039
3328
  :policy_name,
3040
- :policy_document)
3329
+ :policy_document,
3330
+ :tags)
3041
3331
  include Aws::Structure
3042
3332
  end
3043
3333
 
@@ -3176,9 +3466,13 @@ module Aws::IoT
3176
3466
  # template_body: "TemplateBody", # required
3177
3467
  # enabled: false,
3178
3468
  # provisioning_role_arn: "RoleArn", # required
3469
+ # pre_provisioning_hook: {
3470
+ # payload_version: "PayloadVersion",
3471
+ # target_arn: "TargetArn", # required
3472
+ # },
3179
3473
  # tags: [
3180
3474
  # {
3181
- # key: "TagKey",
3475
+ # key: "TagKey", # required
3182
3476
  # value: "TagValue",
3183
3477
  # },
3184
3478
  # ],
@@ -3205,6 +3499,10 @@ module Aws::IoT
3205
3499
  # template. This IoT role grants permission to provision a device.
3206
3500
  # @return [String]
3207
3501
  #
3502
+ # @!attribute [rw] pre_provisioning_hook
3503
+ # Creates a pre-provisioning hook template.
3504
+ # @return [Types::ProvisioningHook]
3505
+ #
3208
3506
  # @!attribute [rw] tags
3209
3507
  # Metadata which can be used to manage the fleet provisioning
3210
3508
  # template.
@@ -3227,6 +3525,7 @@ module Aws::IoT
3227
3525
  :template_body,
3228
3526
  :enabled,
3229
3527
  :provisioning_role_arn,
3528
+ :pre_provisioning_hook,
3230
3529
  :tags)
3231
3530
  include Aws::Structure
3232
3531
  end
@@ -3310,6 +3609,12 @@ module Aws::IoT
3310
3609
  # role_alias: "RoleAlias", # required
3311
3610
  # role_arn: "RoleArn", # required
3312
3611
  # credential_duration_seconds: 1,
3612
+ # tags: [
3613
+ # {
3614
+ # key: "TagKey", # required
3615
+ # value: "TagValue",
3616
+ # },
3617
+ # ],
3313
3618
  # }
3314
3619
  #
3315
3620
  # @!attribute [rw] role_alias
@@ -3325,10 +3630,26 @@ module Aws::IoT
3325
3630
  # How long (in seconds) the credentials will be valid.
3326
3631
  # @return [Integer]
3327
3632
  #
3633
+ # @!attribute [rw] tags
3634
+ # Metadata which can be used to manage the role alias.
3635
+ #
3636
+ # <note markdown="1"> For URI Request parameters use format:
3637
+ # ...key1=value1&amp;key2=value2...
3638
+ #
3639
+ # For the CLI command-line parameter use format: &amp;&amp;tags
3640
+ # "key1=value1&amp;key2=value2..."
3641
+ #
3642
+ # For the cli-input-json file use format: "tags":
3643
+ # "key1=value1&amp;key2=value2..."
3644
+ #
3645
+ # </note>
3646
+ # @return [Array<Types::Tag>]
3647
+ #
3328
3648
  class CreateRoleAliasRequest < Struct.new(
3329
3649
  :role_alias,
3330
3650
  :role_arn,
3331
- :credential_duration_seconds)
3651
+ :credential_duration_seconds,
3652
+ :tags)
3332
3653
  include Aws::Structure
3333
3654
  end
3334
3655
 
@@ -3357,7 +3678,7 @@ module Aws::IoT
3357
3678
  # scheduled_audit_name: "ScheduledAuditName", # required
3358
3679
  # tags: [
3359
3680
  # {
3360
- # key: "TagKey",
3681
+ # key: "TagKey", # required
3361
3682
  # value: "TagValue",
3362
3683
  # },
3363
3684
  # ],
@@ -3468,7 +3789,7 @@ module Aws::IoT
3468
3789
  # ],
3469
3790
  # tags: [
3470
3791
  # {
3471
- # key: "TagKey",
3792
+ # key: "TagKey", # required
3472
3793
  # value: "TagValue",
3473
3794
  # },
3474
3795
  # ],
@@ -3556,7 +3877,7 @@ module Aws::IoT
3556
3877
  # role_arn: "RoleArn", # required
3557
3878
  # tags: [
3558
3879
  # {
3559
- # key: "TagKey",
3880
+ # key: "TagKey", # required
3560
3881
  # value: "TagValue",
3561
3882
  # },
3562
3883
  # ],
@@ -3633,7 +3954,7 @@ module Aws::IoT
3633
3954
  # },
3634
3955
  # tags: [
3635
3956
  # {
3636
- # key: "TagKey",
3957
+ # key: "TagKey", # required
3637
3958
  # value: "TagValue",
3638
3959
  # },
3639
3960
  # ],
@@ -3701,6 +4022,10 @@ module Aws::IoT
3701
4022
  #
3702
4023
  # @!attribute [rw] thing_name
3703
4024
  # The name of the thing to create.
4025
+ #
4026
+ # You can't change a thing's name after you create it. To change a
4027
+ # thing's name, you must create a new thing, give it the new name,
4028
+ # and then delete the old thing.
3704
4029
  # @return [String]
3705
4030
  #
3706
4031
  # @!attribute [rw] thing_type_name
@@ -3760,7 +4085,7 @@ module Aws::IoT
3760
4085
  # },
3761
4086
  # tags: [
3762
4087
  # {
3763
- # key: "TagKey",
4088
+ # key: "TagKey", # required
3764
4089
  # value: "TagValue",
3765
4090
  # },
3766
4091
  # ],
@@ -4508,7 +4833,7 @@ module Aws::IoT
4508
4833
  # }
4509
4834
  #
4510
4835
  # @!attribute [rw] ota_update_id
4511
- # The OTA update ID to delete.
4836
+ # The ID of the OTA update to delete.
4512
4837
  # @return [String]
4513
4838
  #
4514
4839
  # @!attribute [rw] delete_stream
@@ -4518,7 +4843,7 @@ module Aws::IoT
4518
4843
  #
4519
4844
  # @!attribute [rw] force_delete_aws_job
4520
4845
  # Specifies if the AWS Job associated with the OTA update should be
4521
- # deleted with the OTA update is deleted.
4846
+ # deleted when the OTA update is deleted.
4522
4847
  # @return [Boolean]
4523
4848
  #
4524
4849
  class DeleteOTAUpdateRequest < Struct.new(
@@ -5631,6 +5956,10 @@ module Aws::IoT
5631
5956
  # IoT role grants permission to provision a device.
5632
5957
  # @return [String]
5633
5958
  #
5959
+ # @!attribute [rw] pre_provisioning_hook
5960
+ # Gets information about a pre-provisioned hook.
5961
+ # @return [Types::ProvisioningHook]
5962
+ #
5634
5963
  class DescribeProvisioningTemplateResponse < Struct.new(
5635
5964
  :template_arn,
5636
5965
  :template_name,
@@ -5640,7 +5969,8 @@ module Aws::IoT
5640
5969
  :default_version_id,
5641
5970
  :template_body,
5642
5971
  :enabled,
5643
- :provisioning_role_arn)
5972
+ :provisioning_role_arn,
5973
+ :pre_provisioning_hook)
5644
5974
  include Aws::Structure
5645
5975
  end
5646
5976
 
@@ -6055,7 +6385,16 @@ module Aws::IoT
6055
6385
  # The output from the DescribeThing operation.
6056
6386
  #
6057
6387
  # @!attribute [rw] default_client_id
6058
- # The default client ID.
6388
+ # The default MQTT client ID. For a typical device, the thing name is
6389
+ # also used as the default MQTT client ID. Although we don’t require a
6390
+ # mapping between a thing's registry name and its use of MQTT client
6391
+ # IDs, certificates, or shadow state, we recommend that you choose a
6392
+ # thing name and use it as the MQTT client ID for the registry and the
6393
+ # Device Shadow service.
6394
+ #
6395
+ # This lets you better organize your AWS IoT fleet without removing
6396
+ # the flexibility of the underlying device certificate model or
6397
+ # shadows.
6059
6398
  # @return [String]
6060
6399
  #
6061
6400
  # @!attribute [rw] thing_name
@@ -10519,9 +10858,9 @@ module Aws::IoT
10519
10858
  #
10520
10859
  # @!attribute [rw] operator
10521
10860
  # Defines how the `dimensionValues` of a dimension are interpreted.
10522
- # For example, for DimensionType TOPIC\_FILTER, with `IN` operator, a
10861
+ # For example, for dimension type TOPIC\_FILTER, the `IN` operator, a
10523
10862
  # message will be counted only if its topic matches one of the topic
10524
- # filters. With `NOT_IN` Operator, a message will be counted only if
10863
+ # filters. With `NOT_IN` operator, a message will be counted only if
10525
10864
  # it doesn't match any of the topic filters. The operator is
10526
10865
  # optional: if it's not provided (is `null`), it will be interpreted
10527
10866
  # as `IN`.
@@ -11117,6 +11456,34 @@ module Aws::IoT
11117
11456
  include Aws::Structure
11118
11457
  end
11119
11458
 
11459
+ # Structure that contains `payloadVersion` and `targetArn`.
11460
+ #
11461
+ # @note When making an API call, you may pass ProvisioningHook
11462
+ # data as a hash:
11463
+ #
11464
+ # {
11465
+ # payload_version: "PayloadVersion",
11466
+ # target_arn: "TargetArn", # required
11467
+ # }
11468
+ #
11469
+ # @!attribute [rw] payload_version
11470
+ # The payload that was sent to the target function.
11471
+ #
11472
+ # *Note:* Only Lambda functions are currently supported.
11473
+ # @return [String]
11474
+ #
11475
+ # @!attribute [rw] target_arn
11476
+ # The ARN of the target function.
11477
+ #
11478
+ # *Note:* Only Lambda functions are currently supported.
11479
+ # @return [String]
11480
+ #
11481
+ class ProvisioningHook < Struct.new(
11482
+ :payload_version,
11483
+ :target_arn)
11484
+ include Aws::Structure
11485
+ end
11486
+
11120
11487
  # A summary of information about a fleet provisioning template.
11121
11488
  #
11122
11489
  # @!attribute [rw] template_arn
@@ -11321,6 +11688,12 @@ module Aws::IoT
11321
11688
  # template_body: "TemplateBody",
11322
11689
  # role_arn: "RoleArn",
11323
11690
  # },
11691
+ # tags: [
11692
+ # {
11693
+ # key: "TagKey", # required
11694
+ # value: "TagValue",
11695
+ # },
11696
+ # ],
11324
11697
  # }
11325
11698
  #
11326
11699
  # @!attribute [rw] ca_certificate
@@ -11345,12 +11718,28 @@ module Aws::IoT
11345
11718
  # Information about the registration configuration.
11346
11719
  # @return [Types::RegistrationConfig]
11347
11720
  #
11721
+ # @!attribute [rw] tags
11722
+ # Metadata which can be used to manage the CA certificate.
11723
+ #
11724
+ # <note markdown="1"> For URI Request parameters use format:
11725
+ # ...key1=value1&amp;key2=value2...
11726
+ #
11727
+ # For the CLI command-line parameter use format: &amp;&amp;tags
11728
+ # "key1=value1&amp;key2=value2..."
11729
+ #
11730
+ # For the cli-input-json file use format: "tags":
11731
+ # "key1=value1&amp;key2=value2..."
11732
+ #
11733
+ # </note>
11734
+ # @return [Array<Types::Tag>]
11735
+ #
11348
11736
  class RegisterCACertificateRequest < Struct.new(
11349
11737
  :ca_certificate,
11350
11738
  :verification_certificate,
11351
11739
  :set_as_active,
11352
11740
  :allow_auto_registration,
11353
- :registration_config)
11741
+ :registration_config,
11742
+ :tags)
11354
11743
  include Aws::Structure
11355
11744
  end
11356
11745
 
@@ -11423,6 +11812,43 @@ module Aws::IoT
11423
11812
  include Aws::Structure
11424
11813
  end
11425
11814
 
11815
+ # @note When making an API call, you may pass RegisterCertificateWithoutCARequest
11816
+ # data as a hash:
11817
+ #
11818
+ # {
11819
+ # certificate_pem: "CertificatePem", # required
11820
+ # status: "ACTIVE", # accepts ACTIVE, INACTIVE, REVOKED, PENDING_TRANSFER, REGISTER_INACTIVE, PENDING_ACTIVATION
11821
+ # }
11822
+ #
11823
+ # @!attribute [rw] certificate_pem
11824
+ # The certificate data, in PEM format.
11825
+ # @return [String]
11826
+ #
11827
+ # @!attribute [rw] status
11828
+ # The status of the register certificate request.
11829
+ # @return [String]
11830
+ #
11831
+ class RegisterCertificateWithoutCARequest < Struct.new(
11832
+ :certificate_pem,
11833
+ :status)
11834
+ include Aws::Structure
11835
+ end
11836
+
11837
+ # @!attribute [rw] certificate_arn
11838
+ # The Amazon Resource Name (ARN) of the registered certificate.
11839
+ # @return [String]
11840
+ #
11841
+ # @!attribute [rw] certificate_id
11842
+ # The ID of the registered certificate. (The last part of the
11843
+ # certificate ARN contains the certificate ID.
11844
+ # @return [String]
11845
+ #
11846
+ class RegisterCertificateWithoutCAResponse < Struct.new(
11847
+ :certificate_arn,
11848
+ :certificate_id)
11849
+ include Aws::Structure
11850
+ end
11851
+
11426
11852
  # @note When making an API call, you may pass RegisterThingRequest
11427
11853
  # data as a hash:
11428
11854
  #
@@ -11443,12 +11869,12 @@ module Aws::IoT
11443
11869
  # @return [String]
11444
11870
  #
11445
11871
  # @!attribute [rw] parameters
11446
- # The parameters for provisioning a thing. See [Programmatic
11447
- # Provisioning][1] for more information.
11872
+ # The parameters for provisioning a thing. See [Provisioning
11873
+ # Templates][1] for more information.
11448
11874
  #
11449
11875
  #
11450
11876
  #
11451
- # [1]: https://docs.aws.amazon.com/iot/latest/developerguide/programmatic-provisioning.html
11877
+ # [1]: https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html
11452
11878
  # @return [Hash<String,String>]
11453
11879
  #
11454
11880
  class RegisterThingRequest < Struct.new(
@@ -11458,7 +11884,7 @@ module Aws::IoT
11458
11884
  end
11459
11885
 
11460
11886
  # @!attribute [rw] certificate_pem
11461
- # .
11887
+ # The certificate data, in PEM format.
11462
11888
  # @return [String]
11463
11889
  #
11464
11890
  # @!attribute [rw] resource_arns
@@ -13137,7 +13563,7 @@ module Aws::IoT
13137
13563
  # data as a hash:
13138
13564
  #
13139
13565
  # {
13140
- # key: "TagKey",
13566
+ # key: "TagKey", # required
13141
13567
  # value: "TagValue",
13142
13568
  # }
13143
13569
  #
@@ -13162,7 +13588,7 @@ module Aws::IoT
13162
13588
  # resource_arn: "ResourceArn", # required
13163
13589
  # tags: [ # required
13164
13590
  # {
13165
- # key: "TagKey",
13591
+ # key: "TagKey", # required
13166
13592
  # value: "TagValue",
13167
13593
  # },
13168
13594
  # ],
@@ -13283,7 +13709,7 @@ module Aws::IoT
13283
13709
  # auth_infos: [ # required
13284
13710
  # {
13285
13711
  # action_type: "PUBLISH", # accepts PUBLISH, SUBSCRIBE, RECEIVE, CONNECT
13286
- # resources: ["Resource"],
13712
+ # resources: ["Resource"], # required
13287
13713
  # },
13288
13714
  # ],
13289
13715
  # client_id: "ClientId",
@@ -13371,7 +13797,7 @@ module Aws::IoT
13371
13797
  #
13372
13798
  # @!attribute [rw] token_signature
13373
13799
  # The signature made with the token and your custom authentication
13374
- # service's private key.
13800
+ # service's private key. This value must be Base-64-encoded.
13375
13801
  # @return [String]
13376
13802
  #
13377
13803
  # @!attribute [rw] http_context
@@ -15209,6 +15635,11 @@ module Aws::IoT
15209
15635
  # enabled: false,
15210
15636
  # default_version_id: 1,
15211
15637
  # provisioning_role_arn: "RoleArn",
15638
+ # pre_provisioning_hook: {
15639
+ # payload_version: "PayloadVersion",
15640
+ # target_arn: "TargetArn", # required
15641
+ # },
15642
+ # remove_pre_provisioning_hook: false,
15212
15643
  # }
15213
15644
  #
15214
15645
  # @!attribute [rw] template_name
@@ -15232,12 +15663,22 @@ module Aws::IoT
15232
15663
  # IoT role grants permission to provision a device.
15233
15664
  # @return [String]
15234
15665
  #
15666
+ # @!attribute [rw] pre_provisioning_hook
15667
+ # Updates the pre-provisioning hook template.
15668
+ # @return [Types::ProvisioningHook]
15669
+ #
15670
+ # @!attribute [rw] remove_pre_provisioning_hook
15671
+ # Removes pre-provisioning hook template.
15672
+ # @return [Boolean]
15673
+ #
15235
15674
  class UpdateProvisioningTemplateRequest < Struct.new(
15236
15675
  :template_name,
15237
15676
  :description,
15238
15677
  :enabled,
15239
15678
  :default_version_id,
15240
- :provisioning_role_arn)
15679
+ :provisioning_role_arn,
15680
+ :pre_provisioning_hook,
15681
+ :remove_pre_provisioning_hook)
15241
15682
  include Aws::Structure
15242
15683
  end
15243
15684
 
@@ -15706,6 +16147,10 @@ module Aws::IoT
15706
16147
  #
15707
16148
  # @!attribute [rw] thing_name
15708
16149
  # The name of the thing to update.
16150
+ #
16151
+ # You can't change a thing's name. To change a thing's name, you
16152
+ # must create a new thing, give it the new name, and then delete the
16153
+ # old thing.
15709
16154
  # @return [String]
15710
16155
  #
15711
16156
  # @!attribute [rw] thing_type_name