aws-sdk-iot 1.68.0 → 1.72.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: 8f528ccf03a1531fa35a93e8d435e04c1598be96b244c05d3282d2dfec567b4d
4
- data.tar.gz: 959b427ac5f8a81548e999ca1478bca3d097b72b9cdc58931e349b134154fa64
3
+ metadata.gz: dbd079bef6dd9fca2cbcc13b1c8e645926cb66110c4444c520bf0a327289a51e
4
+ data.tar.gz: 92f023ff6ed37a7314db32b465fe0b57a193845acfa9229725ffce25be47cb24
5
5
  SHA512:
6
- metadata.gz: 46f0d8772008779f15a54f9b6428a25b3aea70722cfa4875214a613d03f6d24fde7a87f1d076117ebf9a8f6d546d56f4a71809f2d6a100e0a15fed7a557f79cf
7
- data.tar.gz: 938aebe64fa9c144151b494ce4b99c40728fa682b300139a8753eee51724e8814b98f29306b65bc537cbba1ccab673d7ce689394c74de59b63e49db19e721f66
6
+ metadata.gz: 0da34c5a1f4c2ce975394e32d025c306cd63c613d6c512b8819b5e95daf5711ebf51eaaf66d10e34ce11ea06a49ba00a573f0fd72ab248387a8bae2b2cf74410
7
+ data.tar.gz: e1837d572a0df506a305afb3f964721d2049722f1c8be3974982d24340b17d8dd3705ec3f313815c14b7b88f6cb388c3574475a06ab170d14e7f11d46d0719f8
data/CHANGELOG.md CHANGED
@@ -1,6 +1,26 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.72.0 (2021-07-30)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ 1.71.0 (2021-07-29)
10
+ ------------------
11
+
12
+ * Feature - Increase maximum credential duration of role alias to 12 hours.
13
+
14
+ 1.70.0 (2021-07-28)
15
+ ------------------
16
+
17
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
18
+
19
+ 1.69.0 (2021-05-25)
20
+ ------------------
21
+
22
+ * 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.
23
+
4
24
  1.68.0 (2021-03-31)
5
25
  ------------------
6
26
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.68.0
1
+ 1.72.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.68.0'
51
+ GEM_VERSION = '1.72.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
@@ -10406,11 +10616,6 @@ module Aws::IoT
10406
10616
  # Updates values stored in the domain configuration. Domain
10407
10617
  # configurations for default endpoints can't be updated.
10408
10618
  #
10409
- # <note markdown="1"> The domain configuration feature is in public preview and is subject
10410
- # to change.
10411
- #
10412
- # </note>
10413
- #
10414
10619
  # @option params [required, String] :domain_configuration_name
10415
10620
  # The name of the domain configuration to be updated.
10416
10621
  #
@@ -11355,7 +11560,7 @@ module Aws::IoT
11355
11560
  params: params,
11356
11561
  config: config)
11357
11562
  context[:gem_name] = 'aws-sdk-iot'
11358
- context[:gem_version] = '1.68.0'
11563
+ context[:gem_version] = '1.72.0'
11359
11564
  Seahorse::Client::Request.new(handlers, context)
11360
11565
  end
11361
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')
@@ -1669,6 +1681,9 @@ module Aws::IoT
1669
1681
 
1670
1682
  ConfirmTopicRuleDestinationResponse.struct_class = Types::ConfirmTopicRuleDestinationResponse
1671
1683
 
1684
+ ConflictException.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
1685
+ ConflictException.struct_class = Types::ConflictException
1686
+
1672
1687
  ConflictingResourceUpdateException.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
1673
1688
  ConflictingResourceUpdateException.struct_class = Types::ConflictingResourceUpdateException
1674
1689
 
@@ -1777,6 +1792,7 @@ module Aws::IoT
1777
1792
  CreateJobRequest.add_member(:timeout_config, Shapes::ShapeRef.new(shape: TimeoutConfig, location_name: "timeoutConfig"))
1778
1793
  CreateJobRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
1779
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"))
1780
1796
  CreateJobRequest.struct_class = Types::CreateJobRequest
1781
1797
 
1782
1798
  CreateJobResponse.add_member(:job_arn, Shapes::ShapeRef.new(shape: JobArn, location_name: "jobArn"))
@@ -1784,6 +1800,22 @@ module Aws::IoT
1784
1800
  CreateJobResponse.add_member(:description, Shapes::ShapeRef.new(shape: JobDescription, location_name: "description"))
1785
1801
  CreateJobResponse.struct_class = Types::CreateJobResponse
1786
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
+
1787
1819
  CreateKeysAndCertificateRequest.add_member(:set_as_active, Shapes::ShapeRef.new(shape: SetAsActive, location: "querystring", location_name: "setAsActive"))
1788
1820
  CreateKeysAndCertificateRequest.struct_class = Types::CreateKeysAndCertificateRequest
1789
1821
 
@@ -2046,6 +2078,9 @@ module Aws::IoT
2046
2078
  DeleteJobRequest.add_member(:namespace_id, Shapes::ShapeRef.new(shape: NamespaceId, location: "querystring", location_name: "namespaceId"))
2047
2079
  DeleteJobRequest.struct_class = Types::DeleteJobRequest
2048
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
+
2049
2084
  DeleteMitigationActionRequest.add_member(:action_name, Shapes::ShapeRef.new(shape: MitigationActionName, required: true, location: "uri", location_name: "actionName"))
2050
2085
  DeleteMitigationActionRequest.struct_class = Types::DeleteMitigationActionRequest
2051
2086
 
@@ -2300,6 +2335,21 @@ module Aws::IoT
2300
2335
  DescribeJobResponse.add_member(:job, Shapes::ShapeRef.new(shape: Job, location_name: "job"))
2301
2336
  DescribeJobResponse.struct_class = Types::DescribeJobResponse
2302
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
+
2303
2353
  DescribeMitigationActionRequest.add_member(:action_name, Shapes::ShapeRef.new(shape: MitigationActionName, required: true, location: "uri", location_name: "actionName"))
2304
2354
  DescribeMitigationActionRequest.struct_class = Types::DescribeMitigationActionRequest
2305
2355
 
@@ -2798,6 +2848,7 @@ module Aws::IoT
2798
2848
  Job.add_member(:job_process_details, Shapes::ShapeRef.new(shape: JobProcessDetails, location_name: "jobProcessDetails"))
2799
2849
  Job.add_member(:timeout_config, Shapes::ShapeRef.new(shape: TimeoutConfig, location_name: "timeoutConfig"))
2800
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"))
2801
2852
  Job.struct_class = Types::Job
2802
2853
 
2803
2854
  JobExecution.add_member(:job_id, Shapes::ShapeRef.new(shape: JobId, location_name: "jobId"))
@@ -2864,6 +2915,14 @@ module Aws::IoT
2864
2915
 
2865
2916
  JobTargets.member = Shapes::ShapeRef.new(shape: TargetArn)
2866
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
+
2867
2926
  KafkaAction.add_member(:destination_arn, Shapes::ShapeRef.new(shape: AwsArn, required: true, location_name: "destinationArn"))
2868
2927
  KafkaAction.add_member(:topic, Shapes::ShapeRef.new(shape: String, required: true, location_name: "topic"))
2869
2928
  KafkaAction.add_member(:key, Shapes::ShapeRef.new(shape: String, location_name: "key"))
@@ -3093,6 +3152,14 @@ module Aws::IoT
3093
3152
  ListJobExecutionsForThingResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
3094
3153
  ListJobExecutionsForThingResponse.struct_class = Types::ListJobExecutionsForThingResponse
3095
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
+
3096
3163
  ListJobsRequest.add_member(:status, Shapes::ShapeRef.new(shape: JobStatus, location: "querystring", location_name: "status"))
3097
3164
  ListJobsRequest.add_member(:target_selection, Shapes::ShapeRef.new(shape: TargetSelection, location: "querystring", location_name: "targetSelection"))
3098
3165
  ListJobsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: LaserMaxResults, location: "querystring", location_name: "maxResults"))
@@ -4845,6 +4912,20 @@ module Aws::IoT
4845
4912
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
4846
4913
  end)
4847
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
+
4848
4929
  api.add_operation(:create_keys_and_certificate, Seahorse::Model::Operation.new.tap do |o|
4849
4930
  o.name = "CreateKeysAndCertificate"
4850
4931
  o.http_method = "POST"
@@ -5241,6 +5322,18 @@ module Aws::IoT
5241
5322
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
5242
5323
  end)
5243
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
+
5244
5337
  api.add_operation(:delete_mitigation_action, Seahorse::Model::Operation.new.tap do |o|
5245
5338
  o.name = "DeleteMitigationAction"
5246
5339
  o.http_method = "DELETE"
@@ -5722,6 +5815,18 @@ module Aws::IoT
5722
5815
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
5723
5816
  end)
5724
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
+
5725
5830
  api.add_operation(:describe_mitigation_action, Seahorse::Model::Operation.new.tap do |o|
5726
5831
  o.name = "DescribeMitigationAction"
5727
5832
  o.http_method = "GET"
@@ -6516,6 +6621,17 @@ module Aws::IoT
6516
6621
  )
6517
6622
  end)
6518
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
+
6519
6635
  api.add_operation(:list_jobs, Seahorse::Model::Operation.new.tap do |o|
6520
6636
  o.name = "ListJobs"
6521
6637
  o.http_method = "GET"
@@ -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
  #
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.68.0
4
+ version: 1.72.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-31 00:00:00.000000000 Z
11
+ date: 2021-07-30 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.119.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.119.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -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