aws-sdk-iot 1.47.0 → 1.52.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.
@@ -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