aws-sdk-iot 1.67.0 → 1.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 49c667b9e0f9eb63e2dbe7844294879f9bbfd475f0ef8f97ea852ed55bcbf373
4
- data.tar.gz: ab9eb64b3ac1882ae85e5a21a72bc098ac0ff3e2c3e6935ed9f73c6677343797
3
+ metadata.gz: 3499140aaa7538f1ae2835ce9a35933c6247ce9978176da53023ece3a9a5a4b9
4
+ data.tar.gz: '09595bd54dd3e8e7ad5ce861e090c1cbe621ae3c678a358fbb434896a6d3c444'
5
5
  SHA512:
6
- metadata.gz: 7cd7c5586fea3af7450b8c6e697c8bbedc67d26db95a19ab054610fe514209a3e316a3df631bb4009ac350a2738d248d8e2866bb22f8a52b8e30bbc344388ae6
7
- data.tar.gz: 9ab38048ec5cf796e8ea86cd64a6785b7b29f4a25458c043c858e50b8f0269845be1783402bf2679cf2e709e76ed385750d5d54ebaf3961f5c44b5cbfd38c53f
6
+ metadata.gz: f0e2ee701978b616d5d71a948d5f7a00dba88629c1776f5d2af97423e46a124aa3ec822b208cfe6f71dbc05635e3f64bce7e924b1579b9f76973150a46de99ea
7
+ data.tar.gz: 80d48fd0307b04353690e1de1ca5f2fdb6f9dfd323b7c14b76d68becaae34102a69a8f320e9e3310f853e98026b839a68b2b414ee1c7aadc813e2a5ba22da29f
data/CHANGELOG.md CHANGED
@@ -1,6 +1,26 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.71.0 (2021-07-29)
5
+ ------------------
6
+
7
+ * Feature - Increase maximum credential duration of role alias to 12 hours.
8
+
9
+ 1.70.0 (2021-07-28)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
14
+ 1.69.0 (2021-05-25)
15
+ ------------------
16
+
17
+ * Feature - This release includes support for a new feature: Job templates for AWS IoT Device Management Jobs. The release includes job templates as a new resource and APIs for managing job templates.
18
+
19
+ 1.68.0 (2021-03-31)
20
+ ------------------
21
+
22
+ * Feature - Added ability to prefix search on attribute value for ListThings API.
23
+
4
24
  1.67.0 (2021-03-10)
5
25
  ------------------
6
26
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.67.0
1
+ 1.71.0
data/lib/aws-sdk-iot.rb CHANGED
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-iot/customizations'
48
48
  # @!group service
49
49
  module Aws::IoT
50
50
 
51
- GEM_VERSION = '1.67.0'
51
+ GEM_VERSION = '1.71.0'
52
52
 
53
53
  end
@@ -489,13 +489,15 @@ module Aws::IoT
489
489
  req.send_request(options)
490
490
  end
491
491
 
492
- # Attaches a policy to the specified target.
492
+ # Attaches the specified policy to the specified principal (certificate
493
+ # or other credential).
493
494
  #
494
495
  # @option params [required, String] :policy_name
495
496
  # The name of the policy to attach.
496
497
  #
497
498
  # @option params [required, String] :target
498
- # The [identity][1] to which the policy is attached.
499
+ # The [identity][1] to which the policy is attached. For example, a
500
+ # thing group or a certificate.
499
501
  #
500
502
  #
501
503
  #
@@ -1216,11 +1218,6 @@ module Aws::IoT
1216
1218
 
1217
1219
  # Creates a domain configuration.
1218
1220
  #
1219
- # <note markdown="1"> The domain configuration feature is in public preview and is subject
1220
- # to change.
1221
- #
1222
- # </note>
1223
- #
1224
1221
  # @option params [required, String] :domain_configuration_name
1225
1222
  # The name of the domain configuration. This value must be unique to a
1226
1223
  # region.
@@ -1395,10 +1392,8 @@ module Aws::IoT
1395
1392
  # A list of things and thing groups to which the job should be sent.
1396
1393
  #
1397
1394
  # @option params [String] :document_source
1398
- # An S3 link to the job document.
1399
- #
1400
- # @option params [String] :document
1401
- # The job document.
1395
+ # An S3 link to the job document. Required if you don't specify a value
1396
+ # for `document`.
1402
1397
  #
1403
1398
  # <note markdown="1"> If the job document resides in an S3 bucket, you must use a
1404
1399
  # placeholder link when specifying the document.
@@ -1412,6 +1407,10 @@ module Aws::IoT
1412
1407
  #
1413
1408
  # </note>
1414
1409
  #
1410
+ # @option params [String] :document
1411
+ # The job document. Required if you don't specify a value for
1412
+ # `documentSource`.
1413
+ #
1415
1414
  # @option params [String] :description
1416
1415
  # A short text description of the job.
1417
1416
  #
@@ -1455,6 +1454,9 @@ module Aws::IoT
1455
1454
  #
1456
1455
  # </note>
1457
1456
  #
1457
+ # @option params [String] :job_template_arn
1458
+ # The ARN of the job template used to create the job.
1459
+ #
1458
1460
  # @return [Types::CreateJobResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1459
1461
  #
1460
1462
  # * {Types::CreateJobResponse#job_arn #job_arn} => String
@@ -1505,6 +1507,7 @@ module Aws::IoT
1505
1507
  # },
1506
1508
  # ],
1507
1509
  # namespace_id: "NamespaceId",
1510
+ # job_template_arn: "JobTemplateArn",
1508
1511
  # })
1509
1512
  #
1510
1513
  # @example Response structure
@@ -1520,6 +1523,118 @@ module Aws::IoT
1520
1523
  req.send_request(options)
1521
1524
  end
1522
1525
 
1526
+ # Creates a job template.
1527
+ #
1528
+ # @option params [required, String] :job_template_id
1529
+ # A unique identifier for the job template. We recommend using a UUID.
1530
+ # Alpha-numeric characters, "-", and "\_" are valid for use here.
1531
+ #
1532
+ # @option params [String] :job_arn
1533
+ # The ARN of the job to use as the basis for the job template.
1534
+ #
1535
+ # @option params [String] :document_source
1536
+ # An S3 link to the job document to use in the template. Required if you
1537
+ # don't specify a value for `document`.
1538
+ #
1539
+ # <note markdown="1"> If the job document resides in an S3 bucket, you must use a
1540
+ # placeholder link when specifying the document.
1541
+ #
1542
+ # The placeholder link is of the following form:
1543
+ #
1544
+ # `$\{aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key\}`
1545
+ #
1546
+ # where *bucket* is your bucket name and *key* is the object in the
1547
+ # bucket to which you are linking.
1548
+ #
1549
+ # </note>
1550
+ #
1551
+ # @option params [String] :document
1552
+ # The job document. Required if you don't specify a value for
1553
+ # `documentSource`.
1554
+ #
1555
+ # @option params [required, String] :description
1556
+ # A description of the job document.
1557
+ #
1558
+ # @option params [Types::PresignedUrlConfig] :presigned_url_config
1559
+ # Configuration for pre-signed S3 URLs.
1560
+ #
1561
+ # @option params [Types::JobExecutionsRolloutConfig] :job_executions_rollout_config
1562
+ # Allows you to create a staged rollout of a job.
1563
+ #
1564
+ # @option params [Types::AbortConfig] :abort_config
1565
+ # The criteria that determine when and how a job abort takes place.
1566
+ #
1567
+ # @option params [Types::TimeoutConfig] :timeout_config
1568
+ # Specifies the amount of time each device has to finish its execution
1569
+ # of the job. A timer is started when the job execution status is set to
1570
+ # `IN_PROGRESS`. If the job execution status is not set to another
1571
+ # terminal state before the timer expires, it will be automatically set
1572
+ # to `TIMED_OUT`.
1573
+ #
1574
+ # @option params [Array<Types::Tag>] :tags
1575
+ # Metadata that can be used to manage the job template.
1576
+ #
1577
+ # @return [Types::CreateJobTemplateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1578
+ #
1579
+ # * {Types::CreateJobTemplateResponse#job_template_arn #job_template_arn} => String
1580
+ # * {Types::CreateJobTemplateResponse#job_template_id #job_template_id} => String
1581
+ #
1582
+ # @example Request syntax with placeholder values
1583
+ #
1584
+ # resp = client.create_job_template({
1585
+ # job_template_id: "JobTemplateId", # required
1586
+ # job_arn: "JobArn",
1587
+ # document_source: "JobDocumentSource",
1588
+ # document: "JobDocument",
1589
+ # description: "JobDescription", # required
1590
+ # presigned_url_config: {
1591
+ # role_arn: "RoleArn",
1592
+ # expires_in_sec: 1,
1593
+ # },
1594
+ # job_executions_rollout_config: {
1595
+ # maximum_per_minute: 1,
1596
+ # exponential_rate: {
1597
+ # base_rate_per_minute: 1, # required
1598
+ # increment_factor: 1.0, # required
1599
+ # rate_increase_criteria: { # required
1600
+ # number_of_notified_things: 1,
1601
+ # number_of_succeeded_things: 1,
1602
+ # },
1603
+ # },
1604
+ # },
1605
+ # abort_config: {
1606
+ # criteria_list: [ # required
1607
+ # {
1608
+ # failure_type: "FAILED", # required, accepts FAILED, REJECTED, TIMED_OUT, ALL
1609
+ # action: "CANCEL", # required, accepts CANCEL
1610
+ # threshold_percentage: 1.0, # required
1611
+ # min_number_of_executed_things: 1, # required
1612
+ # },
1613
+ # ],
1614
+ # },
1615
+ # timeout_config: {
1616
+ # in_progress_timeout_in_minutes: 1,
1617
+ # },
1618
+ # tags: [
1619
+ # {
1620
+ # key: "TagKey", # required
1621
+ # value: "TagValue",
1622
+ # },
1623
+ # ],
1624
+ # })
1625
+ #
1626
+ # @example Response structure
1627
+ #
1628
+ # resp.job_template_arn #=> String
1629
+ # resp.job_template_id #=> String
1630
+ #
1631
+ # @overload create_job_template(params = {})
1632
+ # @param [Hash] params ({})
1633
+ def create_job_template(params = {}, options = {})
1634
+ req = build_request(:create_job_template, params)
1635
+ req.send_request(options)
1636
+ end
1637
+
1523
1638
  # Creates a 2048-bit RSA key pair and issues an X.509 certificate using
1524
1639
  # the issued public key. You can also call `CreateKeysAndCertificate`
1525
1640
  # over MQTT from a device, for more information, see [Provisioning MQTT
@@ -3196,11 +3311,6 @@ module Aws::IoT
3196
3311
 
3197
3312
  # Deletes the specified domain configuration.
3198
3313
  #
3199
- # <note markdown="1"> The domain configuration feature is in public preview and is subject
3200
- # to change.
3201
- #
3202
- # </note>
3203
- #
3204
3314
  # @option params [required, String] :domain_configuration_name
3205
3315
  # The name of the domain configuration to be deleted.
3206
3316
  #
@@ -3367,6 +3477,26 @@ module Aws::IoT
3367
3477
  req.send_request(options)
3368
3478
  end
3369
3479
 
3480
+ # Deletes the specified job template.
3481
+ #
3482
+ # @option params [required, String] :job_template_id
3483
+ # The unique identifier of the job template to delete.
3484
+ #
3485
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3486
+ #
3487
+ # @example Request syntax with placeholder values
3488
+ #
3489
+ # resp = client.delete_job_template({
3490
+ # job_template_id: "JobTemplateId", # required
3491
+ # })
3492
+ #
3493
+ # @overload delete_job_template(params = {})
3494
+ # @param [Hash] params ({})
3495
+ def delete_job_template(params = {}, options = {})
3496
+ req = build_request(:delete_job_template, params)
3497
+ req.send_request(options)
3498
+ end
3499
+
3370
3500
  # Deletes a defined mitigation action from your AWS account.
3371
3501
  #
3372
3502
  # @option params [required, String] :action_name
@@ -4365,11 +4495,6 @@ module Aws::IoT
4365
4495
 
4366
4496
  # Gets summary information about a domain configuration.
4367
4497
  #
4368
- # <note markdown="1"> The domain configuration feature is in public preview and is subject
4369
- # to change.
4370
- #
4371
- # </note>
4372
- #
4373
4498
  # @option params [required, String] :domain_configuration_name
4374
4499
  # The name of the domain configuration.
4375
4500
  #
@@ -4572,6 +4697,7 @@ module Aws::IoT
4572
4697
  # resp.job.job_process_details.number_of_timed_out_things #=> Integer
4573
4698
  # resp.job.timeout_config.in_progress_timeout_in_minutes #=> Integer
4574
4699
  # resp.job.namespace_id #=> String
4700
+ # resp.job.job_template_arn #=> String
4575
4701
  #
4576
4702
  # @overload describe_job(params = {})
4577
4703
  # @param [Hash] params ({})
@@ -4626,6 +4752,59 @@ module Aws::IoT
4626
4752
  req.send_request(options)
4627
4753
  end
4628
4754
 
4755
+ # Returns information about a job template.
4756
+ #
4757
+ # @option params [required, String] :job_template_id
4758
+ # The unique identifier of the job template.
4759
+ #
4760
+ # @return [Types::DescribeJobTemplateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4761
+ #
4762
+ # * {Types::DescribeJobTemplateResponse#job_template_arn #job_template_arn} => String
4763
+ # * {Types::DescribeJobTemplateResponse#job_template_id #job_template_id} => String
4764
+ # * {Types::DescribeJobTemplateResponse#description #description} => String
4765
+ # * {Types::DescribeJobTemplateResponse#document_source #document_source} => String
4766
+ # * {Types::DescribeJobTemplateResponse#document #document} => String
4767
+ # * {Types::DescribeJobTemplateResponse#created_at #created_at} => Time
4768
+ # * {Types::DescribeJobTemplateResponse#presigned_url_config #presigned_url_config} => Types::PresignedUrlConfig
4769
+ # * {Types::DescribeJobTemplateResponse#job_executions_rollout_config #job_executions_rollout_config} => Types::JobExecutionsRolloutConfig
4770
+ # * {Types::DescribeJobTemplateResponse#abort_config #abort_config} => Types::AbortConfig
4771
+ # * {Types::DescribeJobTemplateResponse#timeout_config #timeout_config} => Types::TimeoutConfig
4772
+ #
4773
+ # @example Request syntax with placeholder values
4774
+ #
4775
+ # resp = client.describe_job_template({
4776
+ # job_template_id: "JobTemplateId", # required
4777
+ # })
4778
+ #
4779
+ # @example Response structure
4780
+ #
4781
+ # resp.job_template_arn #=> String
4782
+ # resp.job_template_id #=> String
4783
+ # resp.description #=> String
4784
+ # resp.document_source #=> String
4785
+ # resp.document #=> String
4786
+ # resp.created_at #=> Time
4787
+ # resp.presigned_url_config.role_arn #=> String
4788
+ # resp.presigned_url_config.expires_in_sec #=> Integer
4789
+ # resp.job_executions_rollout_config.maximum_per_minute #=> Integer
4790
+ # resp.job_executions_rollout_config.exponential_rate.base_rate_per_minute #=> Integer
4791
+ # resp.job_executions_rollout_config.exponential_rate.increment_factor #=> Float
4792
+ # resp.job_executions_rollout_config.exponential_rate.rate_increase_criteria.number_of_notified_things #=> Integer
4793
+ # resp.job_executions_rollout_config.exponential_rate.rate_increase_criteria.number_of_succeeded_things #=> Integer
4794
+ # resp.abort_config.criteria_list #=> Array
4795
+ # resp.abort_config.criteria_list[0].failure_type #=> String, one of "FAILED", "REJECTED", "TIMED_OUT", "ALL"
4796
+ # resp.abort_config.criteria_list[0].action #=> String, one of "CANCEL"
4797
+ # resp.abort_config.criteria_list[0].threshold_percentage #=> Float
4798
+ # resp.abort_config.criteria_list[0].min_number_of_executed_things #=> Integer
4799
+ # resp.timeout_config.in_progress_timeout_in_minutes #=> Integer
4800
+ #
4801
+ # @overload describe_job_template(params = {})
4802
+ # @param [Hash] params ({})
4803
+ def describe_job_template(params = {}, options = {})
4804
+ req = build_request(:describe_job_template, params)
4805
+ req.send_request(options)
4806
+ end
4807
+
4629
4808
  # Gets information about a mitigation action.
4630
4809
  #
4631
4810
  # @option params [required, String] :action_name
@@ -6993,11 +7172,6 @@ module Aws::IoT
6993
7172
  # Gets a list of domain configurations for the user. This list is sorted
6994
7173
  # alphabetically by domain configuration name.
6995
7174
  #
6996
- # <note markdown="1"> The domain configuration feature is in public preview and is subject
6997
- # to change.
6998
- #
6999
- # </note>
7000
- #
7001
7175
  # @option params [String] :marker
7002
7176
  # The marker for the next set of results.
7003
7177
  #
@@ -7184,6 +7358,42 @@ module Aws::IoT
7184
7358
  req.send_request(options)
7185
7359
  end
7186
7360
 
7361
+ # Returns a list of job templates.
7362
+ #
7363
+ # @option params [Integer] :max_results
7364
+ # The maximum number of results to return in the list.
7365
+ #
7366
+ # @option params [String] :next_token
7367
+ # The token to use to return the next set of results in the list.
7368
+ #
7369
+ # @return [Types::ListJobTemplatesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7370
+ #
7371
+ # * {Types::ListJobTemplatesResponse#job_templates #job_templates} => Array&lt;Types::JobTemplateSummary&gt;
7372
+ # * {Types::ListJobTemplatesResponse#next_token #next_token} => String
7373
+ #
7374
+ # @example Request syntax with placeholder values
7375
+ #
7376
+ # resp = client.list_job_templates({
7377
+ # max_results: 1,
7378
+ # next_token: "NextToken",
7379
+ # })
7380
+ #
7381
+ # @example Response structure
7382
+ #
7383
+ # resp.job_templates #=> Array
7384
+ # resp.job_templates[0].job_template_arn #=> String
7385
+ # resp.job_templates[0].job_template_id #=> String
7386
+ # resp.job_templates[0].description #=> String
7387
+ # resp.job_templates[0].created_at #=> Time
7388
+ # resp.next_token #=> String
7389
+ #
7390
+ # @overload list_job_templates(params = {})
7391
+ # @param [Hash] params ({})
7392
+ def list_job_templates(params = {}, options = {})
7393
+ req = build_request(:list_job_templates, params)
7394
+ req.send_request(options)
7395
+ end
7396
+
7187
7397
  # Lists jobs.
7188
7398
  #
7189
7399
  # @option params [String] :status
@@ -8332,6 +8542,14 @@ module Aws::IoT
8332
8542
  # @option params [String] :thing_type_name
8333
8543
  # The name of the thing type used to search for things.
8334
8544
  #
8545
+ # @option params [Boolean] :use_prefix_attribute_value
8546
+ # When `true`, the action returns the thing resources with attribute
8547
+ # values that start with the `attributeValue` provided.
8548
+ #
8549
+ # When `false`, or not present, the action returns only the thing
8550
+ # resources with attribute values that match the entire `attributeValue`
8551
+ # provided.
8552
+ #
8335
8553
  # @return [Types::ListThingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
8336
8554
  #
8337
8555
  # * {Types::ListThingsResponse#things #things} => Array&lt;Types::ThingAttribute&gt;
@@ -8347,6 +8565,7 @@ module Aws::IoT
8347
8565
  # attribute_name: "AttributeName",
8348
8566
  # attribute_value: "AttributeValue",
8349
8567
  # thing_type_name: "ThingTypeName",
8568
+ # use_prefix_attribute_value: false,
8350
8569
  # })
8351
8570
  #
8352
8571
  # @example Response structure
@@ -10397,11 +10616,6 @@ module Aws::IoT
10397
10616
  # Updates values stored in the domain configuration. Domain
10398
10617
  # configurations for default endpoints can't be updated.
10399
10618
  #
10400
- # <note markdown="1"> The domain configuration feature is in public preview and is subject
10401
- # to change.
10402
- #
10403
- # </note>
10404
- #
10405
10619
  # @option params [required, String] :domain_configuration_name
10406
10620
  # The name of the domain configuration to be updated.
10407
10621
  #
@@ -11346,7 +11560,7 @@ module Aws::IoT
11346
11560
  params: params,
11347
11561
  config: config)
11348
11562
  context[:gem_name] = 'aws-sdk-iot'
11349
- context[:gem_version] = '1.67.0'
11563
+ context[:gem_version] = '1.71.0'
11350
11564
  Seahorse::Client::Request.new(handlers, context)
11351
11565
  end
11352
11566
 
@@ -218,6 +218,7 @@ module Aws::IoT
218
218
  ConfirmTopicRuleDestinationRequest = Shapes::StructureShape.new(name: 'ConfirmTopicRuleDestinationRequest')
219
219
  ConfirmTopicRuleDestinationResponse = Shapes::StructureShape.new(name: 'ConfirmTopicRuleDestinationResponse')
220
220
  ConfirmationToken = Shapes::StringShape.new(name: 'ConfirmationToken')
221
+ ConflictException = Shapes::StructureShape.new(name: 'ConflictException')
221
222
  ConflictingResourceUpdateException = Shapes::StructureShape.new(name: 'ConflictingResourceUpdateException')
222
223
  ConnectivityTimestamp = Shapes::IntegerShape.new(name: 'ConnectivityTimestamp')
223
224
  ConsecutiveDatapointsToAlarm = Shapes::IntegerShape.new(name: 'ConsecutiveDatapointsToAlarm')
@@ -241,6 +242,8 @@ module Aws::IoT
241
242
  CreateDynamicThingGroupResponse = Shapes::StructureShape.new(name: 'CreateDynamicThingGroupResponse')
242
243
  CreateJobRequest = Shapes::StructureShape.new(name: 'CreateJobRequest')
243
244
  CreateJobResponse = Shapes::StructureShape.new(name: 'CreateJobResponse')
245
+ CreateJobTemplateRequest = Shapes::StructureShape.new(name: 'CreateJobTemplateRequest')
246
+ CreateJobTemplateResponse = Shapes::StructureShape.new(name: 'CreateJobTemplateResponse')
244
247
  CreateKeysAndCertificateRequest = Shapes::StructureShape.new(name: 'CreateKeysAndCertificateRequest')
245
248
  CreateKeysAndCertificateResponse = Shapes::StructureShape.new(name: 'CreateKeysAndCertificateResponse')
246
249
  CreateMitigationActionRequest = Shapes::StructureShape.new(name: 'CreateMitigationActionRequest')
@@ -311,6 +314,7 @@ module Aws::IoT
311
314
  DeleteDynamicThingGroupResponse = Shapes::StructureShape.new(name: 'DeleteDynamicThingGroupResponse')
312
315
  DeleteJobExecutionRequest = Shapes::StructureShape.new(name: 'DeleteJobExecutionRequest')
313
316
  DeleteJobRequest = Shapes::StructureShape.new(name: 'DeleteJobRequest')
317
+ DeleteJobTemplateRequest = Shapes::StructureShape.new(name: 'DeleteJobTemplateRequest')
314
318
  DeleteMitigationActionRequest = Shapes::StructureShape.new(name: 'DeleteMitigationActionRequest')
315
319
  DeleteMitigationActionResponse = Shapes::StructureShape.new(name: 'DeleteMitigationActionResponse')
316
320
  DeleteOTAUpdateRequest = Shapes::StructureShape.new(name: 'DeleteOTAUpdateRequest')
@@ -386,6 +390,8 @@ module Aws::IoT
386
390
  DescribeJobExecutionResponse = Shapes::StructureShape.new(name: 'DescribeJobExecutionResponse')
387
391
  DescribeJobRequest = Shapes::StructureShape.new(name: 'DescribeJobRequest')
388
392
  DescribeJobResponse = Shapes::StructureShape.new(name: 'DescribeJobResponse')
393
+ DescribeJobTemplateRequest = Shapes::StructureShape.new(name: 'DescribeJobTemplateRequest')
394
+ DescribeJobTemplateResponse = Shapes::StructureShape.new(name: 'DescribeJobTemplateResponse')
389
395
  DescribeMitigationActionRequest = Shapes::StructureShape.new(name: 'DescribeMitigationActionRequest')
390
396
  DescribeMitigationActionResponse = Shapes::StructureShape.new(name: 'DescribeMitigationActionResponse')
391
397
  DescribeProvisioningTemplateRequest = Shapes::StructureShape.new(name: 'DescribeProvisioningTemplateRequest')
@@ -596,6 +602,10 @@ module Aws::IoT
596
602
  JobSummary = Shapes::StructureShape.new(name: 'JobSummary')
597
603
  JobSummaryList = Shapes::ListShape.new(name: 'JobSummaryList')
598
604
  JobTargets = Shapes::ListShape.new(name: 'JobTargets')
605
+ JobTemplateArn = Shapes::StringShape.new(name: 'JobTemplateArn')
606
+ JobTemplateId = Shapes::StringShape.new(name: 'JobTemplateId')
607
+ JobTemplateSummary = Shapes::StructureShape.new(name: 'JobTemplateSummary')
608
+ JobTemplateSummaryList = Shapes::ListShape.new(name: 'JobTemplateSummaryList')
599
609
  JsonDocument = Shapes::StringShape.new(name: 'JsonDocument')
600
610
  KafkaAction = Shapes::StructureShape.new(name: 'KafkaAction')
601
611
  Key = Shapes::StringShape.new(name: 'Key')
@@ -648,6 +658,8 @@ module Aws::IoT
648
658
  ListJobExecutionsForJobResponse = Shapes::StructureShape.new(name: 'ListJobExecutionsForJobResponse')
649
659
  ListJobExecutionsForThingRequest = Shapes::StructureShape.new(name: 'ListJobExecutionsForThingRequest')
650
660
  ListJobExecutionsForThingResponse = Shapes::StructureShape.new(name: 'ListJobExecutionsForThingResponse')
661
+ ListJobTemplatesRequest = Shapes::StructureShape.new(name: 'ListJobTemplatesRequest')
662
+ ListJobTemplatesResponse = Shapes::StructureShape.new(name: 'ListJobTemplatesResponse')
651
663
  ListJobsRequest = Shapes::StructureShape.new(name: 'ListJobsRequest')
652
664
  ListJobsResponse = Shapes::StructureShape.new(name: 'ListJobsResponse')
653
665
  ListMitigationActionsRequest = Shapes::StructureShape.new(name: 'ListMitigationActionsRequest')
@@ -1184,6 +1196,7 @@ module Aws::IoT
1184
1196
  resourceArn = Shapes::StringShape.new(name: 'resourceArn')
1185
1197
  resourceId = Shapes::StringShape.new(name: 'resourceId')
1186
1198
  stringValue = Shapes::StringShape.new(name: 'stringValue')
1199
+ usePrefixAttributeValue = Shapes::BooleanShape.new(name: 'usePrefixAttributeValue')
1187
1200
 
1188
1201
  AbortConfig.add_member(:criteria_list, Shapes::ShapeRef.new(shape: AbortCriteriaList, required: true, location_name: "criteriaList"))
1189
1202
  AbortConfig.struct_class = Types::AbortConfig
@@ -1668,6 +1681,9 @@ module Aws::IoT
1668
1681
 
1669
1682
  ConfirmTopicRuleDestinationResponse.struct_class = Types::ConfirmTopicRuleDestinationResponse
1670
1683
 
1684
+ ConflictException.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
1685
+ ConflictException.struct_class = Types::ConflictException
1686
+
1671
1687
  ConflictingResourceUpdateException.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
1672
1688
  ConflictingResourceUpdateException.struct_class = Types::ConflictingResourceUpdateException
1673
1689
 
@@ -1776,6 +1792,7 @@ module Aws::IoT
1776
1792
  CreateJobRequest.add_member(:timeout_config, Shapes::ShapeRef.new(shape: TimeoutConfig, location_name: "timeoutConfig"))
1777
1793
  CreateJobRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
1778
1794
  CreateJobRequest.add_member(:namespace_id, Shapes::ShapeRef.new(shape: NamespaceId, location_name: "namespaceId"))
1795
+ CreateJobRequest.add_member(:job_template_arn, Shapes::ShapeRef.new(shape: JobTemplateArn, location_name: "jobTemplateArn"))
1779
1796
  CreateJobRequest.struct_class = Types::CreateJobRequest
1780
1797
 
1781
1798
  CreateJobResponse.add_member(:job_arn, Shapes::ShapeRef.new(shape: JobArn, location_name: "jobArn"))
@@ -1783,6 +1800,22 @@ module Aws::IoT
1783
1800
  CreateJobResponse.add_member(:description, Shapes::ShapeRef.new(shape: JobDescription, location_name: "description"))
1784
1801
  CreateJobResponse.struct_class = Types::CreateJobResponse
1785
1802
 
1803
+ CreateJobTemplateRequest.add_member(:job_template_id, Shapes::ShapeRef.new(shape: JobTemplateId, required: true, location: "uri", location_name: "jobTemplateId"))
1804
+ CreateJobTemplateRequest.add_member(:job_arn, Shapes::ShapeRef.new(shape: JobArn, location_name: "jobArn"))
1805
+ CreateJobTemplateRequest.add_member(:document_source, Shapes::ShapeRef.new(shape: JobDocumentSource, location_name: "documentSource"))
1806
+ CreateJobTemplateRequest.add_member(:document, Shapes::ShapeRef.new(shape: JobDocument, location_name: "document"))
1807
+ CreateJobTemplateRequest.add_member(:description, Shapes::ShapeRef.new(shape: JobDescription, required: true, location_name: "description"))
1808
+ CreateJobTemplateRequest.add_member(:presigned_url_config, Shapes::ShapeRef.new(shape: PresignedUrlConfig, location_name: "presignedUrlConfig"))
1809
+ CreateJobTemplateRequest.add_member(:job_executions_rollout_config, Shapes::ShapeRef.new(shape: JobExecutionsRolloutConfig, location_name: "jobExecutionsRolloutConfig"))
1810
+ CreateJobTemplateRequest.add_member(:abort_config, Shapes::ShapeRef.new(shape: AbortConfig, location_name: "abortConfig"))
1811
+ CreateJobTemplateRequest.add_member(:timeout_config, Shapes::ShapeRef.new(shape: TimeoutConfig, location_name: "timeoutConfig"))
1812
+ CreateJobTemplateRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
1813
+ CreateJobTemplateRequest.struct_class = Types::CreateJobTemplateRequest
1814
+
1815
+ CreateJobTemplateResponse.add_member(:job_template_arn, Shapes::ShapeRef.new(shape: JobTemplateArn, location_name: "jobTemplateArn"))
1816
+ CreateJobTemplateResponse.add_member(:job_template_id, Shapes::ShapeRef.new(shape: JobTemplateId, location_name: "jobTemplateId"))
1817
+ CreateJobTemplateResponse.struct_class = Types::CreateJobTemplateResponse
1818
+
1786
1819
  CreateKeysAndCertificateRequest.add_member(:set_as_active, Shapes::ShapeRef.new(shape: SetAsActive, location: "querystring", location_name: "setAsActive"))
1787
1820
  CreateKeysAndCertificateRequest.struct_class = Types::CreateKeysAndCertificateRequest
1788
1821
 
@@ -2045,6 +2078,9 @@ module Aws::IoT
2045
2078
  DeleteJobRequest.add_member(:namespace_id, Shapes::ShapeRef.new(shape: NamespaceId, location: "querystring", location_name: "namespaceId"))
2046
2079
  DeleteJobRequest.struct_class = Types::DeleteJobRequest
2047
2080
 
2081
+ DeleteJobTemplateRequest.add_member(:job_template_id, Shapes::ShapeRef.new(shape: JobTemplateId, required: true, location: "uri", location_name: "jobTemplateId"))
2082
+ DeleteJobTemplateRequest.struct_class = Types::DeleteJobTemplateRequest
2083
+
2048
2084
  DeleteMitigationActionRequest.add_member(:action_name, Shapes::ShapeRef.new(shape: MitigationActionName, required: true, location: "uri", location_name: "actionName"))
2049
2085
  DeleteMitigationActionRequest.struct_class = Types::DeleteMitigationActionRequest
2050
2086
 
@@ -2299,6 +2335,21 @@ module Aws::IoT
2299
2335
  DescribeJobResponse.add_member(:job, Shapes::ShapeRef.new(shape: Job, location_name: "job"))
2300
2336
  DescribeJobResponse.struct_class = Types::DescribeJobResponse
2301
2337
 
2338
+ DescribeJobTemplateRequest.add_member(:job_template_id, Shapes::ShapeRef.new(shape: JobTemplateId, required: true, location: "uri", location_name: "jobTemplateId"))
2339
+ DescribeJobTemplateRequest.struct_class = Types::DescribeJobTemplateRequest
2340
+
2341
+ DescribeJobTemplateResponse.add_member(:job_template_arn, Shapes::ShapeRef.new(shape: JobTemplateArn, location_name: "jobTemplateArn"))
2342
+ DescribeJobTemplateResponse.add_member(:job_template_id, Shapes::ShapeRef.new(shape: JobTemplateId, location_name: "jobTemplateId"))
2343
+ DescribeJobTemplateResponse.add_member(:description, Shapes::ShapeRef.new(shape: JobDescription, location_name: "description"))
2344
+ DescribeJobTemplateResponse.add_member(:document_source, Shapes::ShapeRef.new(shape: JobDocumentSource, location_name: "documentSource"))
2345
+ DescribeJobTemplateResponse.add_member(:document, Shapes::ShapeRef.new(shape: JobDocument, location_name: "document"))
2346
+ DescribeJobTemplateResponse.add_member(:created_at, Shapes::ShapeRef.new(shape: DateType, location_name: "createdAt"))
2347
+ DescribeJobTemplateResponse.add_member(:presigned_url_config, Shapes::ShapeRef.new(shape: PresignedUrlConfig, location_name: "presignedUrlConfig"))
2348
+ DescribeJobTemplateResponse.add_member(:job_executions_rollout_config, Shapes::ShapeRef.new(shape: JobExecutionsRolloutConfig, location_name: "jobExecutionsRolloutConfig"))
2349
+ DescribeJobTemplateResponse.add_member(:abort_config, Shapes::ShapeRef.new(shape: AbortConfig, location_name: "abortConfig"))
2350
+ DescribeJobTemplateResponse.add_member(:timeout_config, Shapes::ShapeRef.new(shape: TimeoutConfig, location_name: "timeoutConfig"))
2351
+ DescribeJobTemplateResponse.struct_class = Types::DescribeJobTemplateResponse
2352
+
2302
2353
  DescribeMitigationActionRequest.add_member(:action_name, Shapes::ShapeRef.new(shape: MitigationActionName, required: true, location: "uri", location_name: "actionName"))
2303
2354
  DescribeMitigationActionRequest.struct_class = Types::DescribeMitigationActionRequest
2304
2355
 
@@ -2797,6 +2848,7 @@ module Aws::IoT
2797
2848
  Job.add_member(:job_process_details, Shapes::ShapeRef.new(shape: JobProcessDetails, location_name: "jobProcessDetails"))
2798
2849
  Job.add_member(:timeout_config, Shapes::ShapeRef.new(shape: TimeoutConfig, location_name: "timeoutConfig"))
2799
2850
  Job.add_member(:namespace_id, Shapes::ShapeRef.new(shape: NamespaceId, location_name: "namespaceId"))
2851
+ Job.add_member(:job_template_arn, Shapes::ShapeRef.new(shape: JobTemplateArn, location_name: "jobTemplateArn"))
2800
2852
  Job.struct_class = Types::Job
2801
2853
 
2802
2854
  JobExecution.add_member(:job_id, Shapes::ShapeRef.new(shape: JobId, location_name: "jobId"))
@@ -2863,6 +2915,14 @@ module Aws::IoT
2863
2915
 
2864
2916
  JobTargets.member = Shapes::ShapeRef.new(shape: TargetArn)
2865
2917
 
2918
+ JobTemplateSummary.add_member(:job_template_arn, Shapes::ShapeRef.new(shape: JobTemplateArn, location_name: "jobTemplateArn"))
2919
+ JobTemplateSummary.add_member(:job_template_id, Shapes::ShapeRef.new(shape: JobTemplateId, location_name: "jobTemplateId"))
2920
+ JobTemplateSummary.add_member(:description, Shapes::ShapeRef.new(shape: JobDescription, location_name: "description"))
2921
+ JobTemplateSummary.add_member(:created_at, Shapes::ShapeRef.new(shape: DateType, location_name: "createdAt"))
2922
+ JobTemplateSummary.struct_class = Types::JobTemplateSummary
2923
+
2924
+ JobTemplateSummaryList.member = Shapes::ShapeRef.new(shape: JobTemplateSummary)
2925
+
2866
2926
  KafkaAction.add_member(:destination_arn, Shapes::ShapeRef.new(shape: AwsArn, required: true, location_name: "destinationArn"))
2867
2927
  KafkaAction.add_member(:topic, Shapes::ShapeRef.new(shape: String, required: true, location_name: "topic"))
2868
2928
  KafkaAction.add_member(:key, Shapes::ShapeRef.new(shape: String, location_name: "key"))
@@ -3092,6 +3152,14 @@ module Aws::IoT
3092
3152
  ListJobExecutionsForThingResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
3093
3153
  ListJobExecutionsForThingResponse.struct_class = Types::ListJobExecutionsForThingResponse
3094
3154
 
3155
+ ListJobTemplatesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: LaserMaxResults, location: "querystring", location_name: "maxResults"))
3156
+ ListJobTemplatesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "nextToken"))
3157
+ ListJobTemplatesRequest.struct_class = Types::ListJobTemplatesRequest
3158
+
3159
+ ListJobTemplatesResponse.add_member(:job_templates, Shapes::ShapeRef.new(shape: JobTemplateSummaryList, location_name: "jobTemplates"))
3160
+ ListJobTemplatesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
3161
+ ListJobTemplatesResponse.struct_class = Types::ListJobTemplatesResponse
3162
+
3095
3163
  ListJobsRequest.add_member(:status, Shapes::ShapeRef.new(shape: JobStatus, location: "querystring", location_name: "status"))
3096
3164
  ListJobsRequest.add_member(:target_selection, Shapes::ShapeRef.new(shape: TargetSelection, location: "querystring", location_name: "targetSelection"))
3097
3165
  ListJobsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: LaserMaxResults, location: "querystring", location_name: "maxResults"))
@@ -3347,6 +3415,7 @@ module Aws::IoT
3347
3415
  ListThingsRequest.add_member(:attribute_name, Shapes::ShapeRef.new(shape: AttributeName, location: "querystring", location_name: "attributeName"))
3348
3416
  ListThingsRequest.add_member(:attribute_value, Shapes::ShapeRef.new(shape: AttributeValue, location: "querystring", location_name: "attributeValue"))
3349
3417
  ListThingsRequest.add_member(:thing_type_name, Shapes::ShapeRef.new(shape: ThingTypeName, location: "querystring", location_name: "thingTypeName"))
3418
+ ListThingsRequest.add_member(:use_prefix_attribute_value, Shapes::ShapeRef.new(shape: usePrefixAttributeValue, location: "querystring", location_name: "usePrefixAttributeValue"))
3350
3419
  ListThingsRequest.struct_class = Types::ListThingsRequest
3351
3420
 
3352
3421
  ListThingsResponse.add_member(:things, Shapes::ShapeRef.new(shape: ThingAttributeList, location_name: "things"))
@@ -4843,6 +4912,20 @@ module Aws::IoT
4843
4912
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
4844
4913
  end)
4845
4914
 
4915
+ api.add_operation(:create_job_template, Seahorse::Model::Operation.new.tap do |o|
4916
+ o.name = "CreateJobTemplate"
4917
+ o.http_method = "PUT"
4918
+ o.http_request_uri = "/job-templates/{jobTemplateId}"
4919
+ o.input = Shapes::ShapeRef.new(shape: CreateJobTemplateRequest)
4920
+ o.output = Shapes::ShapeRef.new(shape: CreateJobTemplateResponse)
4921
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
4922
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
4923
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
4924
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
4925
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
4926
+ o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
4927
+ end)
4928
+
4846
4929
  api.add_operation(:create_keys_and_certificate, Seahorse::Model::Operation.new.tap do |o|
4847
4930
  o.name = "CreateKeysAndCertificate"
4848
4931
  o.http_method = "POST"
@@ -5239,6 +5322,18 @@ module Aws::IoT
5239
5322
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
5240
5323
  end)
5241
5324
 
5325
+ api.add_operation(:delete_job_template, Seahorse::Model::Operation.new.tap do |o|
5326
+ o.name = "DeleteJobTemplate"
5327
+ o.http_method = "DELETE"
5328
+ o.http_request_uri = "/job-templates/{jobTemplateId}"
5329
+ o.input = Shapes::ShapeRef.new(shape: DeleteJobTemplateRequest)
5330
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
5331
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
5332
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
5333
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
5334
+ o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
5335
+ end)
5336
+
5242
5337
  api.add_operation(:delete_mitigation_action, Seahorse::Model::Operation.new.tap do |o|
5243
5338
  o.name = "DeleteMitigationAction"
5244
5339
  o.http_method = "DELETE"
@@ -5720,6 +5815,18 @@ module Aws::IoT
5720
5815
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
5721
5816
  end)
5722
5817
 
5818
+ api.add_operation(:describe_job_template, Seahorse::Model::Operation.new.tap do |o|
5819
+ o.name = "DescribeJobTemplate"
5820
+ o.http_method = "GET"
5821
+ o.http_request_uri = "/job-templates/{jobTemplateId}"
5822
+ o.input = Shapes::ShapeRef.new(shape: DescribeJobTemplateRequest)
5823
+ o.output = Shapes::ShapeRef.new(shape: DescribeJobTemplateResponse)
5824
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
5825
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
5826
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
5827
+ o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
5828
+ end)
5829
+
5723
5830
  api.add_operation(:describe_mitigation_action, Seahorse::Model::Operation.new.tap do |o|
5724
5831
  o.name = "DescribeMitigationAction"
5725
5832
  o.http_method = "GET"
@@ -6514,6 +6621,17 @@ module Aws::IoT
6514
6621
  )
6515
6622
  end)
6516
6623
 
6624
+ api.add_operation(:list_job_templates, Seahorse::Model::Operation.new.tap do |o|
6625
+ o.name = "ListJobTemplates"
6626
+ o.http_method = "GET"
6627
+ o.http_request_uri = "/job-templates"
6628
+ o.input = Shapes::ShapeRef.new(shape: ListJobTemplatesRequest)
6629
+ o.output = Shapes::ShapeRef.new(shape: ListJobTemplatesResponse)
6630
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
6631
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
6632
+ o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
6633
+ end)
6634
+
6517
6635
  api.add_operation(:list_jobs, Seahorse::Model::Operation.new.tap do |o|
6518
6636
  o.name = "ListJobs"
6519
6637
  o.http_method = "GET"
@@ -2,7 +2,7 @@
2
2
  # WARNING ABOUT GENERATED CODE
3
3
  #
4
4
  # This file is generated. See the contributing for info on making contributions:
5
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
6
6
  #
7
7
  # WARNING ABOUT GENERATED CODE
8
8
 
@@ -30,6 +30,7 @@ module Aws::IoT
30
30
  # * {CertificateConflictException}
31
31
  # * {CertificateStateException}
32
32
  # * {CertificateValidationException}
33
+ # * {ConflictException}
33
34
  # * {ConflictingResourceUpdateException}
34
35
  # * {DeleteConflictException}
35
36
  # * {IndexNotReadyException}
@@ -108,6 +109,21 @@ module Aws::IoT
108
109
  end
109
110
  end
110
111
 
112
+ class ConflictException < ServiceError
113
+
114
+ # @param [Seahorse::Client::RequestContext] context
115
+ # @param [String] message
116
+ # @param [Aws::IoT::Types::ConflictException] data
117
+ def initialize(context, message, data = Aws::EmptyStructure.new)
118
+ super(context, message, data)
119
+ end
120
+
121
+ # @return [String]
122
+ def message
123
+ @message || @data[:message]
124
+ end
125
+ end
126
+
111
127
  class ConflictingResourceUpdateException < ServiceError
112
128
 
113
129
  # @param [Seahorse::Client::RequestContext] context
@@ -788,7 +788,8 @@ module Aws::IoT
788
788
  # @return [String]
789
789
  #
790
790
  # @!attribute [rw] target
791
- # The [identity][1] to which the policy is attached.
791
+ # The [identity][1] to which the policy is attached. For example, a
792
+ # thing group or a certificate.
792
793
  #
793
794
  #
794
795
  #
@@ -2608,6 +2609,17 @@ module Aws::IoT
2608
2609
 
2609
2610
  class ConfirmTopicRuleDestinationResponse < Aws::EmptyStructure; end
2610
2611
 
2612
+ # A resource with the same name already exists.
2613
+ #
2614
+ # @!attribute [rw] message
2615
+ # @return [String]
2616
+ #
2617
+ class ConflictException < Struct.new(
2618
+ :message)
2619
+ SENSITIVE = []
2620
+ include Aws::Structure
2621
+ end
2622
+
2611
2623
  # A conflicting resource update exception. This exception is thrown when
2612
2624
  # two pending updates cause a conflict.
2613
2625
  #
@@ -3280,6 +3292,7 @@ module Aws::IoT
3280
3292
  # },
3281
3293
  # ],
3282
3294
  # namespace_id: "NamespaceId",
3295
+ # job_template_arn: "JobTemplateArn",
3283
3296
  # }
3284
3297
  #
3285
3298
  # @!attribute [rw] job_id
@@ -3293,11 +3306,8 @@ module Aws::IoT
3293
3306
  # @return [Array<String>]
3294
3307
  #
3295
3308
  # @!attribute [rw] document_source
3296
- # An S3 link to the job document.
3297
- # @return [String]
3298
- #
3299
- # @!attribute [rw] document
3300
- # The job document.
3309
+ # An S3 link to the job document. Required if you don't specify a
3310
+ # value for `document`.
3301
3311
  #
3302
3312
  # <note markdown="1"> If the job document resides in an S3 bucket, you must use a
3303
3313
  # placeholder link when specifying the document.
@@ -3312,6 +3322,11 @@ module Aws::IoT
3312
3322
  # </note>
3313
3323
  # @return [String]
3314
3324
  #
3325
+ # @!attribute [rw] document
3326
+ # The job document. Required if you don't specify a value for
3327
+ # `documentSource`.
3328
+ # @return [String]
3329
+ #
3315
3330
  # @!attribute [rw] description
3316
3331
  # A short text description of the job.
3317
3332
  # @return [String]
@@ -3363,6 +3378,10 @@ module Aws::IoT
3363
3378
  # </note>
3364
3379
  # @return [String]
3365
3380
  #
3381
+ # @!attribute [rw] job_template_arn
3382
+ # The ARN of the job template used to create the job.
3383
+ # @return [String]
3384
+ #
3366
3385
  class CreateJobRequest < Struct.new(
3367
3386
  :job_id,
3368
3387
  :targets,
@@ -3375,7 +3394,8 @@ module Aws::IoT
3375
3394
  :abort_config,
3376
3395
  :timeout_config,
3377
3396
  :tags,
3378
- :namespace_id)
3397
+ :namespace_id,
3398
+ :job_template_arn)
3379
3399
  SENSITIVE = []
3380
3400
  include Aws::Structure
3381
3401
  end
@@ -3400,6 +3420,140 @@ module Aws::IoT
3400
3420
  include Aws::Structure
3401
3421
  end
3402
3422
 
3423
+ # @note When making an API call, you may pass CreateJobTemplateRequest
3424
+ # data as a hash:
3425
+ #
3426
+ # {
3427
+ # job_template_id: "JobTemplateId", # required
3428
+ # job_arn: "JobArn",
3429
+ # document_source: "JobDocumentSource",
3430
+ # document: "JobDocument",
3431
+ # description: "JobDescription", # required
3432
+ # presigned_url_config: {
3433
+ # role_arn: "RoleArn",
3434
+ # expires_in_sec: 1,
3435
+ # },
3436
+ # job_executions_rollout_config: {
3437
+ # maximum_per_minute: 1,
3438
+ # exponential_rate: {
3439
+ # base_rate_per_minute: 1, # required
3440
+ # increment_factor: 1.0, # required
3441
+ # rate_increase_criteria: { # required
3442
+ # number_of_notified_things: 1,
3443
+ # number_of_succeeded_things: 1,
3444
+ # },
3445
+ # },
3446
+ # },
3447
+ # abort_config: {
3448
+ # criteria_list: [ # required
3449
+ # {
3450
+ # failure_type: "FAILED", # required, accepts FAILED, REJECTED, TIMED_OUT, ALL
3451
+ # action: "CANCEL", # required, accepts CANCEL
3452
+ # threshold_percentage: 1.0, # required
3453
+ # min_number_of_executed_things: 1, # required
3454
+ # },
3455
+ # ],
3456
+ # },
3457
+ # timeout_config: {
3458
+ # in_progress_timeout_in_minutes: 1,
3459
+ # },
3460
+ # tags: [
3461
+ # {
3462
+ # key: "TagKey", # required
3463
+ # value: "TagValue",
3464
+ # },
3465
+ # ],
3466
+ # }
3467
+ #
3468
+ # @!attribute [rw] job_template_id
3469
+ # A unique identifier for the job template. We recommend using a UUID.
3470
+ # Alpha-numeric characters, "-", and "\_" are valid for use here.
3471
+ # @return [String]
3472
+ #
3473
+ # @!attribute [rw] job_arn
3474
+ # The ARN of the job to use as the basis for the job template.
3475
+ # @return [String]
3476
+ #
3477
+ # @!attribute [rw] document_source
3478
+ # An S3 link to the job document to use in the template. Required if
3479
+ # you don't specify a value for `document`.
3480
+ #
3481
+ # <note markdown="1"> If the job document resides in an S3 bucket, you must use a
3482
+ # placeholder link when specifying the document.
3483
+ #
3484
+ # The placeholder link is of the following form:
3485
+ #
3486
+ # `$\{aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key\}`
3487
+ #
3488
+ # where *bucket* is your bucket name and *key* is the object in the
3489
+ # bucket to which you are linking.
3490
+ #
3491
+ # </note>
3492
+ # @return [String]
3493
+ #
3494
+ # @!attribute [rw] document
3495
+ # The job document. Required if you don't specify a value for
3496
+ # `documentSource`.
3497
+ # @return [String]
3498
+ #
3499
+ # @!attribute [rw] description
3500
+ # A description of the job document.
3501
+ # @return [String]
3502
+ #
3503
+ # @!attribute [rw] presigned_url_config
3504
+ # Configuration for pre-signed S3 URLs.
3505
+ # @return [Types::PresignedUrlConfig]
3506
+ #
3507
+ # @!attribute [rw] job_executions_rollout_config
3508
+ # Allows you to create a staged rollout of a job.
3509
+ # @return [Types::JobExecutionsRolloutConfig]
3510
+ #
3511
+ # @!attribute [rw] abort_config
3512
+ # The criteria that determine when and how a job abort takes place.
3513
+ # @return [Types::AbortConfig]
3514
+ #
3515
+ # @!attribute [rw] timeout_config
3516
+ # Specifies the amount of time each device has to finish its execution
3517
+ # of the job. A timer is started when the job execution status is set
3518
+ # to `IN_PROGRESS`. If the job execution status is not set to another
3519
+ # terminal state before the timer expires, it will be automatically
3520
+ # set to `TIMED_OUT`.
3521
+ # @return [Types::TimeoutConfig]
3522
+ #
3523
+ # @!attribute [rw] tags
3524
+ # Metadata that can be used to manage the job template.
3525
+ # @return [Array<Types::Tag>]
3526
+ #
3527
+ class CreateJobTemplateRequest < Struct.new(
3528
+ :job_template_id,
3529
+ :job_arn,
3530
+ :document_source,
3531
+ :document,
3532
+ :description,
3533
+ :presigned_url_config,
3534
+ :job_executions_rollout_config,
3535
+ :abort_config,
3536
+ :timeout_config,
3537
+ :tags)
3538
+ SENSITIVE = []
3539
+ include Aws::Structure
3540
+ end
3541
+
3542
+ # @!attribute [rw] job_template_arn
3543
+ # The ARN of the job template.
3544
+ # @return [String]
3545
+ #
3546
+ # @!attribute [rw] job_template_id
3547
+ # The unique identifier of the job template.
3548
+ # @return [String]
3549
+ #
3550
+ class CreateJobTemplateResponse < Struct.new(
3551
+ :job_template_arn,
3552
+ :job_template_id)
3553
+ SENSITIVE = []
3554
+ include Aws::Structure
3555
+ end
3556
+
3403
3557
  # The input for the CreateKeysAndCertificate operation.
3404
3558
  #
3405
3559
  # @note When making an API call, you may pass CreateKeysAndCertificateRequest
@@ -5458,6 +5612,23 @@ module Aws::IoT
5458
5612
  include Aws::Structure
5459
5613
  end
5460
5614
 
5615
+ # @note When making an API call, you may pass DeleteJobTemplateRequest
5616
+ # data as a hash:
5617
+ #
5618
+ # {
5619
+ # job_template_id: "JobTemplateId", # required
5620
+ # }
5621
+ #
5622
+ # @!attribute [rw] job_template_id
5623
+ # The unique identifier of the job template to delete.
5624
+ # @return [String]
5625
+ #
5626
+ class DeleteJobTemplateRequest < Struct.new(
5627
+ :job_template_id)
5628
+ SENSITIVE = []
5629
+ include Aws::Structure
5630
+ end
5631
+
5461
5632
  # @note When making an API call, you may pass DeleteMitigationActionRequest
5462
5633
  # data as a hash:
5463
5634
  #
@@ -6706,6 +6877,83 @@ module Aws::IoT
6706
6877
  include Aws::Structure
6707
6878
  end
6708
6879
 
6880
+ # @note When making an API call, you may pass DescribeJobTemplateRequest
6881
+ # data as a hash:
6882
+ #
6883
+ # {
6884
+ # job_template_id: "JobTemplateId", # required
6885
+ # }
6886
+ #
6887
+ # @!attribute [rw] job_template_id
6888
+ # The unique identifier of the job template.
6889
+ # @return [String]
6890
+ #
6891
+ class DescribeJobTemplateRequest < Struct.new(
6892
+ :job_template_id)
6893
+ SENSITIVE = []
6894
+ include Aws::Structure
6895
+ end
6896
+
6897
+ # @!attribute [rw] job_template_arn
6898
+ # The ARN of the job template.
6899
+ # @return [String]
6900
+ #
6901
+ # @!attribute [rw] job_template_id
6902
+ # The unique identifier of the job template.
6903
+ # @return [String]
6904
+ #
6905
+ # @!attribute [rw] description
6906
+ # A description of the job template.
6907
+ # @return [String]
6908
+ #
6909
+ # @!attribute [rw] document_source
6910
+ # An S3 link to the job document.
6911
+ # @return [String]
6912
+ #
6913
+ # @!attribute [rw] document
6914
+ # The job document.
6915
+ # @return [String]
6916
+ #
6917
+ # @!attribute [rw] created_at
6918
+ # The time, in seconds since the epoch, when the job template was
6919
+ # created.
6920
+ # @return [Time]
6921
+ #
6922
+ # @!attribute [rw] presigned_url_config
6923
+ # Configuration for pre-signed S3 URLs.
6924
+ # @return [Types::PresignedUrlConfig]
6925
+ #
6926
+ # @!attribute [rw] job_executions_rollout_config
6927
+ # Allows you to create a staged rollout of a job.
6928
+ # @return [Types::JobExecutionsRolloutConfig]
6929
+ #
6930
+ # @!attribute [rw] abort_config
6931
+ # The criteria that determine when and how a job abort takes place.
6932
+ # @return [Types::AbortConfig]
6933
+ #
6934
+ # @!attribute [rw] timeout_config
6935
+ # Specifies the amount of time each device has to finish its execution
6936
+ # of the job. A timer is started when the job execution status is set
6937
+ # to `IN_PROGRESS`. If the job execution status is not set to another
6938
+ # terminal state before the timer expires, it will be automatically
6939
+ # set to `TIMED_OUT`.
6940
+ # @return [Types::TimeoutConfig]
6941
+ #
6942
+ class DescribeJobTemplateResponse < Struct.new(
6943
+ :job_template_arn,
6944
+ :job_template_id,
6945
+ :description,
6946
+ :document_source,
6947
+ :document,
6948
+ :created_at,
6949
+ :presigned_url_config,
6950
+ :job_executions_rollout_config,
6951
+ :abort_config,
6952
+ :timeout_config)
6953
+ SENSITIVE = []
6954
+ include Aws::Structure
6955
+ end
6956
+
6709
6957
  # @note When making an API call, you may pass DescribeMitigationActionRequest
6710
6958
  # data as a hash:
6711
6959
  #
@@ -7713,11 +7961,6 @@ module Aws::IoT
7713
7961
  #
7714
7962
  # * CredentialProvider
7715
7963
  #
7716
- # <note markdown="1"> The domain configuration feature is in public preview and is subject
7717
- # to change.
7718
- #
7719
- # </note>
7720
- #
7721
7964
  # @!attribute [rw] domain_configuration_name
7722
7965
  # The name of the domain configuration. This value must be unique to a
7723
7966
  # region.
@@ -9292,6 +9535,10 @@ module Aws::IoT
9292
9535
  # </note>
9293
9536
  # @return [String]
9294
9537
  #
9538
+ # @!attribute [rw] job_template_arn
9539
+ # The ARN of the job template used to create the job.
9540
+ # @return [String]
9541
+ #
9295
9542
  class Job < Struct.new(
9296
9543
  :job_arn,
9297
9544
  :job_id,
@@ -9310,7 +9557,8 @@ module Aws::IoT
9310
9557
  :completed_at,
9311
9558
  :job_process_details,
9312
9559
  :timeout_config,
9313
- :namespace_id)
9560
+ :namespace_id,
9561
+ :job_template_arn)
9314
9562
  SENSITIVE = []
9315
9563
  include Aws::Structure
9316
9564
  end
@@ -9620,6 +9868,34 @@ module Aws::IoT
9620
9868
  include Aws::Structure
9621
9869
  end
9622
9870
 
9871
+ # An object that contains information about the job template.
9872
+ #
9873
+ # @!attribute [rw] job_template_arn
9874
+ # The ARN of the job template.
9875
+ # @return [String]
9876
+ #
9877
+ # @!attribute [rw] job_template_id
9878
+ # The unique identifier of the job template.
9879
+ # @return [String]
9880
+ #
9881
+ # @!attribute [rw] description
9882
+ # A description of the job template.
9883
+ # @return [String]
9884
+ #
9885
+ # @!attribute [rw] created_at
9886
+ # The time, in seconds since the epoch, when the job template was
9887
+ # created.
9888
+ # @return [Time]
9889
+ #
9890
+ class JobTemplateSummary < Struct.new(
9891
+ :job_template_arn,
9892
+ :job_template_id,
9893
+ :description,
9894
+ :created_at)
9895
+ SENSITIVE = []
9896
+ include Aws::Structure
9897
+ end
9898
+
9623
9899
  # Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon
9624
9900
  # MSK) or self-managed Apache Kafka cluster.
9625
9901
  #
@@ -10913,6 +11189,45 @@ module Aws::IoT
10913
11189
  include Aws::Structure
10914
11190
  end
10915
11191
 
11192
+ # @note When making an API call, you may pass ListJobTemplatesRequest
11193
+ # data as a hash:
11194
+ #
11195
+ # {
11196
+ # max_results: 1,
11197
+ # next_token: "NextToken",
11198
+ # }
11199
+ #
11200
+ # @!attribute [rw] max_results
11201
+ # The maximum number of results to return in the list.
11202
+ # @return [Integer]
11203
+ #
11204
+ # @!attribute [rw] next_token
11205
+ # The token to use to return the next set of results in the list.
11206
+ # @return [String]
11207
+ #
11208
+ class ListJobTemplatesRequest < Struct.new(
11209
+ :max_results,
11210
+ :next_token)
11211
+ SENSITIVE = []
11212
+ include Aws::Structure
11213
+ end
11214
+
11215
+ # @!attribute [rw] job_templates
11216
+ # A list of objects that contain information about the job templates.
11217
+ # @return [Array<Types::JobTemplateSummary>]
11218
+ #
11219
+ # @!attribute [rw] next_token
11220
+ # The token for the next set of results, or **null** if there are no
11221
+ # additional results.
11222
+ # @return [String]
11223
+ #
11224
+ class ListJobTemplatesResponse < Struct.new(
11225
+ :job_templates,
11226
+ :next_token)
11227
+ SENSITIVE = []
11228
+ include Aws::Structure
11229
+ end
11230
+
10916
11231
  # @note When making an API call, you may pass ListJobsRequest
10917
11232
  # data as a hash:
10918
11233
  #
@@ -12258,6 +12573,7 @@ module Aws::IoT
12258
12573
  # attribute_name: "AttributeName",
12259
12574
  # attribute_value: "AttributeValue",
12260
12575
  # thing_type_name: "ThingTypeName",
12576
+ # use_prefix_attribute_value: false,
12261
12577
  # }
12262
12578
  #
12263
12579
  # @!attribute [rw] next_token
@@ -12282,12 +12598,22 @@ module Aws::IoT
12282
12598
  # The name of the thing type used to search for things.
12283
12599
  # @return [String]
12284
12600
  #
12601
+ # @!attribute [rw] use_prefix_attribute_value
12602
+ # When `true`, the action returns the thing resources with attribute
12603
+ # values that start with the `attributeValue` provided.
12604
+ #
12605
+ # When `false`, or not present, the action returns only the thing
12606
+ # resources with attribute values that match the entire
12607
+ # `attributeValue` provided.
12608
+ # @return [Boolean]
12609
+ #
12285
12610
  class ListThingsRequest < Struct.new(
12286
12611
  :next_token,
12287
12612
  :max_results,
12288
12613
  :attribute_name,
12289
12614
  :attribute_value,
12290
- :thing_type_name)
12615
+ :thing_type_name,
12616
+ :use_prefix_attribute_value)
12291
12617
  SENSITIVE = []
12292
12618
  include Aws::Structure
12293
12619
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-iot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.67.0
4
+ version: 1.71.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-10 00:00:00.000000000 Z
11
+ date: 2021-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.112.0
22
+ version: 3.118.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.112.0
32
+ version: 3.118.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -66,8 +66,8 @@ homepage: https://github.com/aws/aws-sdk-ruby
66
66
  licenses:
67
67
  - Apache-2.0
68
68
  metadata:
69
- source_code_uri: https://github.com/aws/aws-sdk-ruby/tree/master/gems/aws-sdk-iot
70
- changelog_uri: https://github.com/aws/aws-sdk-ruby/tree/master/gems/aws-sdk-iot/CHANGELOG.md
69
+ source_code_uri: https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-iot
70
+ changelog_uri: https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-iot/CHANGELOG.md
71
71
  post_install_message:
72
72
  rdoc_options: []
73
73
  require_paths:
@@ -83,8 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  requirements: []
86
- rubyforge_project:
87
- rubygems_version: 2.7.6.2
86
+ rubygems_version: 3.1.6
88
87
  signing_key:
89
88
  specification_version: 4
90
89
  summary: AWS SDK for Ruby - AWS IoT