aws-sdk-iot 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -832,6 +832,110 @@ module Aws::IoT
832
832
  include Aws::Structure
833
833
  end
834
834
 
835
+ # Describes the method to use when code signing a file.
836
+ #
837
+ # @note When making an API call, you may pass CodeSigning
838
+ # data as a hash:
839
+ #
840
+ # {
841
+ # aws_signer_job_id: "SigningJobId",
842
+ # custom_code_signing: {
843
+ # signature: {
844
+ # stream: {
845
+ # stream_id: "StreamId",
846
+ # file_id: 1,
847
+ # },
848
+ # inline_document: "data",
849
+ # },
850
+ # certificate_chain: {
851
+ # stream: {
852
+ # stream_id: "StreamId",
853
+ # file_id: 1,
854
+ # },
855
+ # certificate_name: "CertificateName",
856
+ # inline_document: "InlineDocument",
857
+ # },
858
+ # hash_algorithm: "HashAlgorithm",
859
+ # signature_algorithm: "SignatureAlgorithm",
860
+ # },
861
+ # }
862
+ #
863
+ # @!attribute [rw] aws_signer_job_id
864
+ # The ID of the AWSSignerJob which was created to sign the file.
865
+ # @return [String]
866
+ #
867
+ # @!attribute [rw] custom_code_signing
868
+ # A custom method for code signing a file.
869
+ # @return [Types::CustomCodeSigning]
870
+ #
871
+ class CodeSigning < Struct.new(
872
+ :aws_signer_job_id,
873
+ :custom_code_signing)
874
+ include Aws::Structure
875
+ end
876
+
877
+ # Describes the certificate chain being used when code signing a file.
878
+ #
879
+ # @note When making an API call, you may pass CodeSigningCertificateChain
880
+ # data as a hash:
881
+ #
882
+ # {
883
+ # stream: {
884
+ # stream_id: "StreamId",
885
+ # file_id: 1,
886
+ # },
887
+ # certificate_name: "CertificateName",
888
+ # inline_document: "InlineDocument",
889
+ # }
890
+ #
891
+ # @!attribute [rw] stream
892
+ # A stream of the certificate chain files.
893
+ # @return [Types::Stream]
894
+ #
895
+ # @!attribute [rw] certificate_name
896
+ # The name of the certificate.
897
+ # @return [String]
898
+ #
899
+ # @!attribute [rw] inline_document
900
+ # A base64 encoded binary representation of the code signing
901
+ # certificate chain.
902
+ # @return [String]
903
+ #
904
+ class CodeSigningCertificateChain < Struct.new(
905
+ :stream,
906
+ :certificate_name,
907
+ :inline_document)
908
+ include Aws::Structure
909
+ end
910
+
911
+ # Describes the signature for a file.
912
+ #
913
+ # @note When making an API call, you may pass CodeSigningSignature
914
+ # data as a hash:
915
+ #
916
+ # {
917
+ # stream: {
918
+ # stream_id: "StreamId",
919
+ # file_id: 1,
920
+ # },
921
+ # inline_document: "data",
922
+ # }
923
+ #
924
+ # @!attribute [rw] stream
925
+ # A stream of the code signing signature.
926
+ # @return [Types::Stream]
927
+ #
928
+ # @!attribute [rw] inline_document
929
+ # A base64 encoded binary representation of the code signing
930
+ # signature.
931
+ # @return [String]
932
+ #
933
+ class CodeSigningSignature < Struct.new(
934
+ :stream,
935
+ :inline_document)
936
+ include Aws::Structure
937
+ end
938
+
835
939
  # Configuration.
836
940
  #
837
941
  # @note When making an API call, you may pass Configuration
@@ -1097,6 +1201,130 @@ module Aws::IoT
1097
1201
  include Aws::Structure
1098
1202
  end
1099
1203
 
1204
+ # @note When making an API call, you may pass CreateOTAUpdateRequest
1205
+ # data as a hash:
1206
+ #
1207
+ # {
1208
+ # ota_update_id: "OTAUpdateId", # required
1209
+ # description: "OTAUpdateDescription",
1210
+ # targets: ["Target"], # required
1211
+ # target_selection: "CONTINUOUS", # accepts CONTINUOUS, SNAPSHOT
1212
+ # files: [ # required
1213
+ # {
1214
+ # file_name: "FileName",
1215
+ # file_version: "OTAUpdateFileVersion",
1216
+ # file_source: {
1217
+ # stream_id: "StreamId",
1218
+ # file_id: 1,
1219
+ # },
1220
+ # code_signing: {
1221
+ # aws_signer_job_id: "SigningJobId",
1222
+ # custom_code_signing: {
1223
+ # signature: {
1224
+ # stream: {
1225
+ # stream_id: "StreamId",
1226
+ # file_id: 1,
1227
+ # },
1228
+ # inline_document: "data",
1229
+ # },
1230
+ # certificate_chain: {
1231
+ # stream: {
1232
+ # stream_id: "StreamId",
1233
+ # file_id: 1,
1234
+ # },
1235
+ # certificate_name: "CertificateName",
1236
+ # inline_document: "InlineDocument",
1237
+ # },
1238
+ # hash_algorithm: "HashAlgorithm",
1239
+ # signature_algorithm: "SignatureAlgorithm",
1240
+ # },
1241
+ # },
1242
+ # attributes: {
1243
+ # "Key" => "Value",
1244
+ # },
1245
+ # },
1246
+ # ],
1247
+ # role_arn: "RoleArn", # required
1248
+ # additional_parameters: {
1249
+ # "Key" => "Value",
1250
+ # },
1251
+ # }
1252
+ #
1253
+ # @!attribute [rw] ota_update_id
1254
+ # The ID of the OTA update to be created.
1255
+ # @return [String]
1256
+ #
1257
+ # @!attribute [rw] description
1258
+ # The description of the OTA update.
1259
+ # @return [String]
1260
+ #
1261
+ # @!attribute [rw] targets
1262
+ # The targeted devices to receive OTA updates.
1263
+ # @return [Array<String>]
1264
+ #
1265
+ # @!attribute [rw] target_selection
1266
+ # Specifies whether the update will continue to run (CONTINUOUS), or
1267
+ # will be complete after all the things specified as targets have
1268
+ # completed the update (SNAPSHOT). If continuous, the update may also
1269
+ # be run on a thing when a change is detected in a target. For
1270
+ # example, an update will run on a thing when the thing is added to a
1271
+ # target group, even after the update was completed by all things
1272
+ # originally in the group. Valid values: CONTINUOUS \| SNAPSHOT.
1273
+ # @return [String]
1274
+ #
1275
+ # @!attribute [rw] files
1276
+ # The files to be streamed by the OTA update.
1277
+ # @return [Array<Types::OTAUpdateFile>]
1278
+ #
1279
+ # @!attribute [rw] role_arn
1280
+ # The IAM role that allows access to the AWS IoT Jobs service.
1281
+ # @return [String]
1282
+ #
1283
+ # @!attribute [rw] additional_parameters
1284
+ # A list of additional OTA update parameters which are name-value
1285
+ # pairs.
1286
+ # @return [Hash<String,String>]
1287
+ #
1288
+ class CreateOTAUpdateRequest < Struct.new(
1289
+ :ota_update_id,
1290
+ :description,
1291
+ :targets,
1292
+ :target_selection,
1293
+ :files,
1294
+ :role_arn,
1295
+ :additional_parameters)
1296
+ include Aws::Structure
1297
+ end
1298
+
1299
+ # @!attribute [rw] ota_update_id
1300
+ # The OTA update ID.
1301
+ # @return [String]
1302
+ #
1303
+ # @!attribute [rw] aws_iot_job_id
1304
+ # The AWS IoT job ID associated with the OTA update.
1305
+ # @return [String]
1306
+ #
1307
+ # @!attribute [rw] ota_update_arn
1308
+ # The OTA update ARN.
1309
+ # @return [String]
1310
+ #
1311
+ # @!attribute [rw] aws_iot_job_arn
1312
+ # The AWS IoT job ARN associated with the OTA update.
1313
+ # @return [String]
1314
+ #
1315
+ # @!attribute [rw] ota_update_status
1316
+ # The OTA update status.
1317
+ # @return [String]
1318
+ #
1319
+ class CreateOTAUpdateResponse < Struct.new(
1320
+ :ota_update_id,
1321
+ :aws_iot_job_id,
1322
+ :ota_update_arn,
1323
+ :aws_iot_job_arn,
1324
+ :ota_update_status)
1325
+ include Aws::Structure
1326
+ end
1327
+
1100
1328
  # The input for the CreatePolicy operation.
1101
1329
  #
1102
1330
  # @note When making an API call, you may pass CreatePolicyRequest
@@ -1252,6 +1480,74 @@ module Aws::IoT
1252
1480
  include Aws::Structure
1253
1481
  end
1254
1482
 
1483
+ # @note When making an API call, you may pass CreateStreamRequest
1484
+ # data as a hash:
1485
+ #
1486
+ # {
1487
+ # stream_id: "StreamId", # required
1488
+ # description: "StreamDescription",
1489
+ # files: [ # required
1490
+ # {
1491
+ # file_id: 1,
1492
+ # s3_location: {
1493
+ # bucket: "S3Bucket", # required
1494
+ # key: "S3Key", # required
1495
+ # version: "S3Version",
1496
+ # },
1497
+ # },
1498
+ # ],
1499
+ # role_arn: "RoleArn", # required
1500
+ # }
1501
+ #
1502
+ # @!attribute [rw] stream_id
1503
+ # The stream ID.
1504
+ # @return [String]
1505
+ #
1506
+ # @!attribute [rw] description
1507
+ # A description of the stream.
1508
+ # @return [String]
1509
+ #
1510
+ # @!attribute [rw] files
1511
+ # The files to stream.
1512
+ # @return [Array<Types::StreamFile>]
1513
+ #
1514
+ # @!attribute [rw] role_arn
1515
+ # An IAM role that allows the IoT service principal assumes to access
1516
+ # your S3 files.
1517
+ # @return [String]
1518
+ #
1519
+ class CreateStreamRequest < Struct.new(
1520
+ :stream_id,
1521
+ :description,
1522
+ :files,
1523
+ :role_arn)
1524
+ include Aws::Structure
1525
+ end
1526
+
1527
+ # @!attribute [rw] stream_id
1528
+ # The stream ID.
1529
+ # @return [String]
1530
+ #
1531
+ # @!attribute [rw] stream_arn
1532
+ # The stream ARN.
1533
+ # @return [String]
1534
+ #
1535
+ # @!attribute [rw] description
1536
+ # A description of the stream.
1537
+ # @return [String]
1538
+ #
1539
+ # @!attribute [rw] stream_version
1540
+ # The version of the stream.
1541
+ # @return [Integer]
1542
+ #
1543
+ class CreateStreamResponse < Struct.new(
1544
+ :stream_id,
1545
+ :stream_arn,
1546
+ :description,
1547
+ :stream_version)
1548
+ include Aws::Structure
1549
+ end
1550
+
1255
1551
  # @note When making an API call, you may pass CreateThingGroupRequest
1256
1552
  # data as a hash:
1257
1553
  #
@@ -1603,6 +1899,55 @@ module Aws::IoT
1603
1899
  include Aws::Structure
1604
1900
  end
1605
1901
 
1902
+ # Describes a custom method used to code sign a file.
1903
+ #
1904
+ # @note When making an API call, you may pass CustomCodeSigning
1905
+ # data as a hash:
1906
+ #
1907
+ # {
1908
+ # signature: {
1909
+ # stream: {
1910
+ # stream_id: "StreamId",
1911
+ # file_id: 1,
1912
+ # },
1913
+ # inline_document: "data",
1914
+ # },
1915
+ # certificate_chain: {
1916
+ # stream: {
1917
+ # stream_id: "StreamId",
1918
+ # file_id: 1,
1919
+ # },
1920
+ # certificate_name: "CertificateName",
1921
+ # inline_document: "InlineDocument",
1922
+ # },
1923
+ # hash_algorithm: "HashAlgorithm",
1924
+ # signature_algorithm: "SignatureAlgorithm",
1925
+ # }
1926
+ #
1927
+ # @!attribute [rw] signature
1928
+ # The signature for the file.
1929
+ # @return [Types::CodeSigningSignature]
1930
+ #
1931
+ # @!attribute [rw] certificate_chain
1932
+ # The certificate chain.
1933
+ # @return [Types::CodeSigningCertificateChain]
1934
+ #
1935
+ # @!attribute [rw] hash_algorithm
1936
+ # The hash algorithm used to code sign the file.
1937
+ # @return [String]
1938
+ #
1939
+ # @!attribute [rw] signature_algorithm
1940
+ # The signature algorithm used to code sign the file.
1941
+ # @return [String]
1942
+ #
1943
+ class CustomCodeSigning < Struct.new(
1944
+ :signature,
1945
+ :certificate_chain,
1946
+ :hash_algorithm,
1947
+ :signature_algorithm)
1948
+ include Aws::Structure
1949
+ end
1950
+
1606
1951
  # @note When making an API call, you may pass DeleteAuthorizerRequest
1607
1952
  # data as a hash:
1608
1953
  #
@@ -1667,6 +2012,24 @@ module Aws::IoT
1667
2012
  include Aws::Structure
1668
2013
  end
1669
2014
 
2015
+ # @note When making an API call, you may pass DeleteOTAUpdateRequest
2016
+ # data as a hash:
2017
+ #
2018
+ # {
2019
+ # ota_update_id: "OTAUpdateId", # required
2020
+ # }
2021
+ #
2022
+ # @!attribute [rw] ota_update_id
2023
+ # The OTA update ID to delete.
2024
+ # @return [String]
2025
+ #
2026
+ class DeleteOTAUpdateRequest < Struct.new(
2027
+ :ota_update_id)
2028
+ include Aws::Structure
2029
+ end
2030
+
2031
+ class DeleteOTAUpdateResponse < Aws::EmptyStructure; end
2032
+
1670
2033
  # The input for the DeletePolicy operation.
1671
2034
  #
1672
2035
  # @note When making an API call, you may pass DeletePolicyRequest
@@ -1737,6 +2100,24 @@ module Aws::IoT
1737
2100
 
1738
2101
  class DeleteRoleAliasResponse < Aws::EmptyStructure; end
1739
2102
 
2103
+ # @note When making an API call, you may pass DeleteStreamRequest
2104
+ # data as a hash:
2105
+ #
2106
+ # {
2107
+ # stream_id: "StreamId", # required
2108
+ # }
2109
+ #
2110
+ # @!attribute [rw] stream_id
2111
+ # The stream ID.
2112
+ # @return [String]
2113
+ #
2114
+ class DeleteStreamRequest < Struct.new(
2115
+ :stream_id)
2116
+ include Aws::Structure
2117
+ end
2118
+
2119
+ class DeleteStreamResponse < Aws::EmptyStructure; end
2120
+
1740
2121
  # @note When making an API call, you may pass DeleteThingGroupRequest
1741
2122
  # data as a hash:
1742
2123
  #
@@ -2191,6 +2572,31 @@ module Aws::IoT
2191
2572
  include Aws::Structure
2192
2573
  end
2193
2574
 
2575
+ # @note When making an API call, you may pass DescribeStreamRequest
2576
+ # data as a hash:
2577
+ #
2578
+ # {
2579
+ # stream_id: "StreamId", # required
2580
+ # }
2581
+ #
2582
+ # @!attribute [rw] stream_id
2583
+ # The stream ID.
2584
+ # @return [String]
2585
+ #
2586
+ class DescribeStreamRequest < Struct.new(
2587
+ :stream_id)
2588
+ include Aws::Structure
2589
+ end
2590
+
2591
+ # @!attribute [rw] stream_info
2592
+ # Information about the stream.
2593
+ # @return [Types::StreamInfo]
2594
+ #
2595
+ class DescribeStreamResponse < Struct.new(
2596
+ :stream_info)
2597
+ include Aws::Structure
2598
+ end
2599
+
2194
2600
  # @note When making an API call, you may pass DescribeThingGroupRequest
2195
2601
  # data as a hash:
2196
2602
  #
@@ -2748,6 +3154,22 @@ module Aws::IoT
2748
3154
  include Aws::Structure
2749
3155
  end
2750
3156
 
3157
+ # Error information.
3158
+ #
3159
+ # @!attribute [rw] code
3160
+ # The error code.
3161
+ # @return [String]
3162
+ #
3163
+ # @!attribute [rw] message
3164
+ # The error message.
3165
+ # @return [String]
3166
+ #
3167
+ class ErrorInfo < Struct.new(
3168
+ :code,
3169
+ :message)
3170
+ include Aws::Structure
3171
+ end
3172
+
2751
3173
  # Information that explicitly denies authorization.
2752
3174
  #
2753
3175
  # @!attribute [rw] policies
@@ -2890,6 +3312,31 @@ module Aws::IoT
2890
3312
  include Aws::Structure
2891
3313
  end
2892
3314
 
3315
+ # @note When making an API call, you may pass GetOTAUpdateRequest
3316
+ # data as a hash:
3317
+ #
3318
+ # {
3319
+ # ota_update_id: "OTAUpdateId", # required
3320
+ # }
3321
+ #
3322
+ # @!attribute [rw] ota_update_id
3323
+ # The OTA update ID.
3324
+ # @return [String]
3325
+ #
3326
+ class GetOTAUpdateRequest < Struct.new(
3327
+ :ota_update_id)
3328
+ include Aws::Structure
3329
+ end
3330
+
3331
+ # @!attribute [rw] ota_update_info
3332
+ # The OTA update info.
3333
+ # @return [Types::OTAUpdateInfo]
3334
+ #
3335
+ class GetOTAUpdateResponse < Struct.new(
3336
+ :ota_update_info)
3337
+ include Aws::Structure
3338
+ end
3339
+
2893
3340
  # The input for the GetPolicy operation.
2894
3341
  #
2895
3342
  # @note When making an API call, you may pass GetPolicyRequest
@@ -3953,6 +4400,48 @@ module Aws::IoT
3953
4400
  include Aws::Structure
3954
4401
  end
3955
4402
 
4403
+ # @note When making an API call, you may pass ListOTAUpdatesRequest
4404
+ # data as a hash:
4405
+ #
4406
+ # {
4407
+ # max_results: 1,
4408
+ # next_token: "NextToken",
4409
+ # ota_update_status: "CREATE_PENDING", # accepts CREATE_PENDING, CREATE_IN_PROGRESS, CREATE_COMPLETE, CREATE_FAILED
4410
+ # }
4411
+ #
4412
+ # @!attribute [rw] max_results
4413
+ # The maximum number of results to return at one time.
4414
+ # @return [Integer]
4415
+ #
4416
+ # @!attribute [rw] next_token
4417
+ # A token used to retreive the next set of results.
4418
+ # @return [String]
4419
+ #
4420
+ # @!attribute [rw] ota_update_status
4421
+ # The OTA update job status.
4422
+ # @return [String]
4423
+ #
4424
+ class ListOTAUpdatesRequest < Struct.new(
4425
+ :max_results,
4426
+ :next_token,
4427
+ :ota_update_status)
4428
+ include Aws::Structure
4429
+ end
4430
+
4431
+ # @!attribute [rw] ota_updates
4432
+ # A list of OTA update jobs.
4433
+ # @return [Array<Types::OTAUpdateSummary>]
4434
+ #
4435
+ # @!attribute [rw] next_token
4436
+ # A token to use to get the next set of results.
4437
+ # @return [String]
4438
+ #
4439
+ class ListOTAUpdatesResponse < Struct.new(
4440
+ :ota_updates,
4441
+ :next_token)
4442
+ include Aws::Structure
4443
+ end
4444
+
3956
4445
  # The input to the ListOutgoingCertificates operation.
3957
4446
  #
3958
4447
  # @note When making an API call, you may pass ListOutgoingCertificatesRequest
@@ -4275,6 +4764,48 @@ module Aws::IoT
4275
4764
  include Aws::Structure
4276
4765
  end
4277
4766
 
4767
+ # @note When making an API call, you may pass ListStreamsRequest
4768
+ # data as a hash:
4769
+ #
4770
+ # {
4771
+ # max_results: 1,
4772
+ # next_token: "NextToken",
4773
+ # ascending_order: false,
4774
+ # }
4775
+ #
4776
+ # @!attribute [rw] max_results
4777
+ # The maximum number of results to return at a time.
4778
+ # @return [Integer]
4779
+ #
4780
+ # @!attribute [rw] next_token
4781
+ # A token used to get the next set of results.
4782
+ # @return [String]
4783
+ #
4784
+ # @!attribute [rw] ascending_order
4785
+ # Set to true to return the list of streams in ascending order.
4786
+ # @return [Boolean]
4787
+ #
4788
+ class ListStreamsRequest < Struct.new(
4789
+ :max_results,
4790
+ :next_token,
4791
+ :ascending_order)
4792
+ include Aws::Structure
4793
+ end
4794
+
4795
+ # @!attribute [rw] streams
4796
+ # A list of streams.
4797
+ # @return [Array<Types::StreamSummary>]
4798
+ #
4799
+ # @!attribute [rw] next_token
4800
+ # A token used to get the next set of results.
4801
+ # @return [String]
4802
+ #
4803
+ class ListStreamsResponse < Struct.new(
4804
+ :streams,
4805
+ :next_token)
4806
+ include Aws::Structure
4807
+ end
4808
+
4278
4809
  # @note When making an API call, you may pass ListTargetsForPolicyRequest
4279
4810
  # data as a hash:
4280
4811
  #
@@ -4865,6 +5396,172 @@ module Aws::IoT
4865
5396
  include Aws::Structure
4866
5397
  end
4867
5398
 
5399
+ # Describes a file to be associated with an OTA update.
5400
+ #
5401
+ # @note When making an API call, you may pass OTAUpdateFile
5402
+ # data as a hash:
5403
+ #
5404
+ # {
5405
+ # file_name: "FileName",
5406
+ # file_version: "OTAUpdateFileVersion",
5407
+ # file_source: {
5408
+ # stream_id: "StreamId",
5409
+ # file_id: 1,
5410
+ # },
5411
+ # code_signing: {
5412
+ # aws_signer_job_id: "SigningJobId",
5413
+ # custom_code_signing: {
5414
+ # signature: {
5415
+ # stream: {
5416
+ # stream_id: "StreamId",
5417
+ # file_id: 1,
5418
+ # },
5419
+ # inline_document: "data",
5420
+ # },
5421
+ # certificate_chain: {
5422
+ # stream: {
5423
+ # stream_id: "StreamId",
5424
+ # file_id: 1,
5425
+ # },
5426
+ # certificate_name: "CertificateName",
5427
+ # inline_document: "InlineDocument",
5428
+ # },
5429
+ # hash_algorithm: "HashAlgorithm",
5430
+ # signature_algorithm: "SignatureAlgorithm",
5431
+ # },
5432
+ # },
5433
+ # attributes: {
5434
+ # "Key" => "Value",
5435
+ # },
5436
+ # }
5437
+ #
5438
+ # @!attribute [rw] file_name
5439
+ # The name of the file.
5440
+ # @return [String]
5441
+ #
5442
+ # @!attribute [rw] file_version
5443
+ # The file version.
5444
+ # @return [String]
5445
+ #
5446
+ # @!attribute [rw] file_source
5447
+ # The source of the file.
5448
+ # @return [Types::Stream]
5449
+ #
5450
+ # @!attribute [rw] code_signing
5451
+ # The code signing method of the file.
5452
+ # @return [Types::CodeSigning]
5453
+ #
5454
+ # @!attribute [rw] attributes
5455
+ # A list of name/attribute pairs.
5456
+ # @return [Hash<String,String>]
5457
+ #
5458
+ class OTAUpdateFile < Struct.new(
5459
+ :file_name,
5460
+ :file_version,
5461
+ :file_source,
5462
+ :code_signing,
5463
+ :attributes)
5464
+ include Aws::Structure
5465
+ end
5466
+
5467
+ # Information about an OTA update.
5468
+ #
5469
+ # @!attribute [rw] ota_update_id
5470
+ # The OTA update ID.
5471
+ # @return [String]
5472
+ #
5473
+ # @!attribute [rw] ota_update_arn
5474
+ # The OTA update ARN.
5475
+ # @return [String]
5476
+ #
5477
+ # @!attribute [rw] creation_date
5478
+ # The date when the OTA update was created.
5479
+ # @return [Time]
5480
+ #
5481
+ # @!attribute [rw] last_modified_date
5482
+ # The date when the OTA update was last updated.
5483
+ # @return [Time]
5484
+ #
5485
+ # @!attribute [rw] description
5486
+ # A description of the OTA update.
5487
+ # @return [String]
5488
+ #
5489
+ # @!attribute [rw] targets
5490
+ # The targets of the OTA update.
5491
+ # @return [Array<String>]
5492
+ #
5493
+ # @!attribute [rw] target_selection
5494
+ # Specifies whether the OTA update will continue to run (CONTINUOUS),
5495
+ # or will be complete after all those things specified as targets have
5496
+ # completed the OTA update (SNAPSHOT). If continuous, the OTA update
5497
+ # may also be run on a thing when a change is detected in a target.
5498
+ # For example, an OTA update will run on a thing when the thing is
5499
+ # added to a target group, even after the OTA update was completed by
5500
+ # all things originally in the group.
5501
+ # @return [String]
5502
+ #
5503
+ # @!attribute [rw] ota_update_files
5504
+ # A list of files associated with the OTA update.
5505
+ # @return [Array<Types::OTAUpdateFile>]
5506
+ #
5507
+ # @!attribute [rw] ota_update_status
5508
+ # The status of the OTA update.
5509
+ # @return [String]
5510
+ #
5511
+ # @!attribute [rw] aws_iot_job_id
5512
+ # The AWS IoT job ID associated with the OTA update.
5513
+ # @return [String]
5514
+ #
5515
+ # @!attribute [rw] aws_iot_job_arn
5516
+ # The AWS IoT job ARN associated with the OTA update.
5517
+ # @return [String]
5518
+ #
5519
+ # @!attribute [rw] error_info
5520
+ # Error information associated with the OTA update.
5521
+ # @return [Types::ErrorInfo]
5522
+ #
5523
+ # @!attribute [rw] additional_parameters
5524
+ # A collection of name/value pairs
5525
+ # @return [Hash<String,String>]
5526
+ #
5527
+ class OTAUpdateInfo < Struct.new(
5528
+ :ota_update_id,
5529
+ :ota_update_arn,
5530
+ :creation_date,
5531
+ :last_modified_date,
5532
+ :description,
5533
+ :targets,
5534
+ :target_selection,
5535
+ :ota_update_files,
5536
+ :ota_update_status,
5537
+ :aws_iot_job_id,
5538
+ :aws_iot_job_arn,
5539
+ :error_info,
5540
+ :additional_parameters)
5541
+ include Aws::Structure
5542
+ end
5543
+
5544
+ # An OTA update summary.
5545
+ #
5546
+ # @!attribute [rw] ota_update_id
5547
+ # The OTA update ID.
5548
+ # @return [String]
5549
+ #
5550
+ # @!attribute [rw] ota_update_arn
5551
+ # The OTA update ARN.
5552
+ # @return [String]
5553
+ #
5554
+ # @!attribute [rw] creation_date
5555
+ # The date when the OTA update was created.
5556
+ # @return [Time]
5557
+ #
5558
+ class OTAUpdateSummary < Struct.new(
5559
+ :ota_update_id,
5560
+ :ota_update_arn,
5561
+ :creation_date)
5562
+ include Aws::Structure
5563
+ end
5564
+
4868
5565
  # A certificate that has been transferred but not yet accepted.
4869
5566
  #
4870
5567
  # @!attribute [rw] certificate_arn
@@ -5513,6 +6210,36 @@ module Aws::IoT
5513
6210
  include Aws::Structure
5514
6211
  end
5515
6212
 
6213
+ # The location in S3 the contains the files to stream.
6214
+ #
6215
+ # @note When making an API call, you may pass S3Location
6216
+ # data as a hash:
6217
+ #
6218
+ # {
6219
+ # bucket: "S3Bucket", # required
6220
+ # key: "S3Key", # required
6221
+ # version: "S3Version",
6222
+ # }
6223
+ #
6224
+ # @!attribute [rw] bucket
6225
+ # The S3 bucket that contains the file to stream.
6226
+ # @return [String]
6227
+ #
6228
+ # @!attribute [rw] key
6229
+ # The name of the file within the S3 bucket to stream.
6230
+ # @return [String]
6231
+ #
6232
+ # @!attribute [rw] version
6233
+ # The file version.
6234
+ # @return [String]
6235
+ #
6236
+ class S3Location < Struct.new(
6237
+ :bucket,
6238
+ :key,
6239
+ :version)
6240
+ include Aws::Structure
6241
+ end
6242
+
5516
6243
  # Describes an action to write a message to a Salesforce IoT Cloud Input
5517
6244
  # Stream.
5518
6245
  #
@@ -5859,6 +6586,130 @@ module Aws::IoT
5859
6586
 
5860
6587
  class StopThingRegistrationTaskResponse < Aws::EmptyStructure; end
5861
6588
 
6589
+ # Describes a group of files that can be streamed.
6590
+ #
6591
+ # @note When making an API call, you may pass Stream
6592
+ # data as a hash:
6593
+ #
6594
+ # {
6595
+ # stream_id: "StreamId",
6596
+ # file_id: 1,
6597
+ # }
6598
+ #
6599
+ # @!attribute [rw] stream_id
6600
+ # The stream ID.
6601
+ # @return [String]
6602
+ #
6603
+ # @!attribute [rw] file_id
6604
+ # The ID of a file associated with a stream.
6605
+ # @return [Integer]
6606
+ #
6607
+ class Stream < Struct.new(
6608
+ :stream_id,
6609
+ :file_id)
6610
+ include Aws::Structure
6611
+ end
6612
+
6613
+ # Represents a file to stream.
6614
+ #
6615
+ # @note When making an API call, you may pass StreamFile
6616
+ # data as a hash:
6617
+ #
6618
+ # {
6619
+ # file_id: 1,
6620
+ # s3_location: {
6621
+ # bucket: "S3Bucket", # required
6622
+ # key: "S3Key", # required
6623
+ # version: "S3Version",
6624
+ # },
6625
+ # }
6626
+ #
6627
+ # @!attribute [rw] file_id
6628
+ # The file ID.
6629
+ # @return [Integer]
6630
+ #
6631
+ # @!attribute [rw] s3_location
6632
+ # The location of the file in S3.
6633
+ # @return [Types::S3Location]
6634
+ #
6635
+ class StreamFile < Struct.new(
6636
+ :file_id,
6637
+ :s3_location)
6638
+ include Aws::Structure
6639
+ end
6640
+
6641
+ # Information about a stream.
6642
+ #
6643
+ # @!attribute [rw] stream_id
6644
+ # The stream ID.
6645
+ # @return [String]
6646
+ #
6647
+ # @!attribute [rw] stream_arn
6648
+ # The stream ARN.
6649
+ # @return [String]
6650
+ #
6651
+ # @!attribute [rw] stream_version
6652
+ # The stream version.
6653
+ # @return [Integer]
6654
+ #
6655
+ # @!attribute [rw] description
6656
+ # The description of the stream.
6657
+ # @return [String]
6658
+ #
6659
+ # @!attribute [rw] files
6660
+ # The files to stream.
6661
+ # @return [Array<Types::StreamFile>]
6662
+ #
6663
+ # @!attribute [rw] created_at
6664
+ # The date when the stream was created.
6665
+ # @return [Time]
6666
+ #
6667
+ # @!attribute [rw] last_updated_at
6668
+ # The date when the stream was last updated.
6669
+ # @return [Time]
6670
+ #
6671
+ # @!attribute [rw] role_arn
6672
+ # An IAM role AWS IoT assumes to access your S3 files.
6673
+ # @return [String]
6674
+ #
6675
+ class StreamInfo < Struct.new(
6676
+ :stream_id,
6677
+ :stream_arn,
6678
+ :stream_version,
6679
+ :description,
6680
+ :files,
6681
+ :created_at,
6682
+ :last_updated_at,
6683
+ :role_arn)
6684
+ include Aws::Structure
6685
+ end
6686
+
6687
+ # A summary of a stream.
6688
+ #
6689
+ # @!attribute [rw] stream_id
6690
+ # The stream ID.
6691
+ # @return [String]
6692
+ #
6693
+ # @!attribute [rw] stream_arn
6694
+ # The stream ARN.
6695
+ # @return [String]
6696
+ #
6697
+ # @!attribute [rw] stream_version
6698
+ # The stream version.
6699
+ # @return [Integer]
6700
+ #
6701
+ # @!attribute [rw] description
6702
+ # A description of the stream.
6703
+ # @return [String]
6704
+ #
6705
+ class StreamSummary < Struct.new(
6706
+ :stream_id,
6707
+ :stream_arn,
6708
+ :stream_version,
6709
+ :description)
6710
+ include Aws::Structure
6711
+ end
6712
+
5862
6713
  # @note When making an API call, you may pass TestAuthorizationRequest
5863
6714
  # data as a hash:
5864
6715
  #
@@ -6786,6 +7637,74 @@ module Aws::IoT
6786
7637
  include Aws::Structure
6787
7638
  end
6788
7639
 
7640
+ # @note When making an API call, you may pass UpdateStreamRequest
7641
+ # data as a hash:
7642
+ #
7643
+ # {
7644
+ # stream_id: "StreamId", # required
7645
+ # description: "StreamDescription",
7646
+ # files: [
7647
+ # {
7648
+ # file_id: 1,
7649
+ # s3_location: {
7650
+ # bucket: "S3Bucket", # required
7651
+ # key: "S3Key", # required
7652
+ # version: "S3Version",
7653
+ # },
7654
+ # },
7655
+ # ],
7656
+ # role_arn: "RoleArn",
7657
+ # }
7658
+ #
7659
+ # @!attribute [rw] stream_id
7660
+ # The stream ID.
7661
+ # @return [String]
7662
+ #
7663
+ # @!attribute [rw] description
7664
+ # The description of the stream.
7665
+ # @return [String]
7666
+ #
7667
+ # @!attribute [rw] files
7668
+ # The files associated with the stream.
7669
+ # @return [Array<Types::StreamFile>]
7670
+ #
7671
+ # @!attribute [rw] role_arn
7672
+ # An IAM role that allows the IoT service principal assumes to access
7673
+ # your S3 files.
7674
+ # @return [String]
7675
+ #
7676
+ class UpdateStreamRequest < Struct.new(
7677
+ :stream_id,
7678
+ :description,
7679
+ :files,
7680
+ :role_arn)
7681
+ include Aws::Structure
7682
+ end
7683
+
7684
+ # @!attribute [rw] stream_id
7685
+ # The stream ID.
7686
+ # @return [String]
7687
+ #
7688
+ # @!attribute [rw] stream_arn
7689
+ # The stream ARN.
7690
+ # @return [String]
7691
+ #
7692
+ # @!attribute [rw] description
7693
+ # A description of the stream.
7694
+ # @return [String]
7695
+ #
7696
+ # @!attribute [rw] stream_version
7697
+ # The stream version.
7698
+ # @return [Integer]
7699
+ #
7700
+ class UpdateStreamResponse < Struct.new(
7701
+ :stream_id,
7702
+ :stream_arn,
7703
+ :description,
7704
+ :stream_version)
7705
+ include Aws::Structure
7706
+ end
7707
+
6789
7708
  # @note When making an API call, you may pass UpdateThingGroupRequest
6790
7709
  # data as a hash:
6791
7710
  #