aws-sdk-iot 1.97.0 → 1.99.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 521211841904fbce0e816b01c78a696f7113ba5467ef7a3d57e82448eacdab34
4
- data.tar.gz: c335d4e65417cee60ed113ea5bcb311f479877f59132cbf84dcb02a46da9c8d2
3
+ metadata.gz: 44067f3125ce33aa321e981987eb97ba919ed1638c0367144f9ad24fab9b386a
4
+ data.tar.gz: 3721a84965df24762a2dddd1406200ea405fd068572de94f243a470c99043121
5
5
  SHA512:
6
- metadata.gz: 7b32c2a862b5fcb47f8c4d817c1d102fc0c11dae5d74733929f1672bcc5372122e349a60365c0608cc0e17cb4a79bf42f892d1f432f2c96a9ec6aabf61937e7a
7
- data.tar.gz: 5f1d3f589b05d8674478034b25e5903545be746325a8d48fe9a55718fc379e49e0ff164a35f29cecf47fcf0a32226fe4d2ce08881767460326fad90385d4bfd5
6
+ metadata.gz: d865713df153f2ce1e3460832f77dadcb50a105f6e4113435c4a1b7082fb2d81d4d9a371e2b8e3bc182908d28d9b3b4a88b74b95f9c98adbf0b7913c4b197902
7
+ data.tar.gz: 5de11a6806de24d3fe4cf550c190336a1de7a51125aa5a7cd1336961451bcef71dc43e578432b5058c227ab1d4bf04c4c4f49d84d6d2b1cc2046ef3674d0be69
data/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.99.0 (2023-01-18)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ * Issue - Replace runtime endpoint resolution approach with generated ruby code.
10
+
11
+ 1.98.0 (2022-11-28)
12
+ ------------------
13
+
14
+ * Feature - Job scheduling enables the scheduled rollout of a Job with start and end times and a customizable end behavior when end time is reached. This is available for continuous and snapshot jobs. Added support for MQTT5 properties to AWS IoT TopicRule Republish Action.
15
+
4
16
  1.97.0 (2022-11-11)
5
17
  ------------------
6
18
 
@@ -550,4 +562,4 @@ Unreleased Changes
550
562
  1.0.0.rc1 (2016-12-05)
551
563
  ------------------
552
564
 
553
- * Feature - Initial preview release of the `aws-sdk-iot` gem.
565
+ * Feature - Initial preview release of the `aws-sdk-iot` gem.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.97.0
1
+ 1.99.0
@@ -666,8 +666,8 @@ module Aws::IoT
666
666
  end
667
667
 
668
668
  # Attaches the specified principal to the specified thing. A principal
669
- # can be X.509 certificates, IAM users, groups, and roles, Amazon
670
- # Cognito identities or federated identities.
669
+ # can be X.509 certificates, Amazon Cognito identities or federated
670
+ # identities.
671
671
  #
672
672
  # Requires permission to access the [AttachThingPrincipal][1] action.
673
673
  #
@@ -1793,6 +1793,11 @@ module Aws::IoT
1793
1793
  #
1794
1794
  # </note>
1795
1795
  #
1796
+ # @option params [Types::SchedulingConfig] :scheduling_config
1797
+ # The configuration that allows you to schedule a job for a future date
1798
+ # and time in addition to specifying the end behavior for each job
1799
+ # execution.
1800
+ #
1796
1801
  # @return [Types::CreateJobResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1797
1802
  #
1798
1803
  # * {Types::CreateJobResponse#job_arn #job_arn} => String
@@ -1855,6 +1860,11 @@ module Aws::IoT
1855
1860
  # document_parameters: {
1856
1861
  # "ParameterKey" => "ParameterValue",
1857
1862
  # },
1863
+ # scheduling_config: {
1864
+ # start_time: "StringDateTime",
1865
+ # end_time: "StringDateTime",
1866
+ # end_behavior: "STOP_ROLLOUT", # accepts STOP_ROLLOUT, CANCEL, FORCE_CANCEL
1867
+ # },
1858
1868
  # })
1859
1869
  #
1860
1870
  # @example Response structure
@@ -3213,6 +3223,19 @@ module Aws::IoT
3213
3223
  # role_arn: "AwsArn", # required
3214
3224
  # topic: "TopicPattern", # required
3215
3225
  # qos: 1,
3226
+ # headers: {
3227
+ # payload_format_indicator: "PayloadFormatIndicator",
3228
+ # content_type: "ContentType",
3229
+ # response_topic: "ResponseTopic",
3230
+ # correlation_data: "CorrelationData",
3231
+ # message_expiry: "MessageExpiry",
3232
+ # user_properties: [
3233
+ # {
3234
+ # key: "UserPropertyKey", # required
3235
+ # value: "UserPropertyValue", # required
3236
+ # },
3237
+ # ],
3238
+ # },
3216
3239
  # },
3217
3240
  # s3: {
3218
3241
  # role_arn: "AwsArn", # required
@@ -3402,6 +3425,19 @@ module Aws::IoT
3402
3425
  # role_arn: "AwsArn", # required
3403
3426
  # topic: "TopicPattern", # required
3404
3427
  # qos: 1,
3428
+ # headers: {
3429
+ # payload_format_indicator: "PayloadFormatIndicator",
3430
+ # content_type: "ContentType",
3431
+ # response_topic: "ResponseTopic",
3432
+ # correlation_data: "CorrelationData",
3433
+ # message_expiry: "MessageExpiry",
3434
+ # user_properties: [
3435
+ # {
3436
+ # key: "UserPropertyKey", # required
3437
+ # value: "UserPropertyValue", # required
3438
+ # },
3439
+ # ],
3440
+ # },
3405
3441
  # },
3406
3442
  # s3: {
3407
3443
  # role_arn: "AwsArn", # required
@@ -5590,7 +5626,7 @@ module Aws::IoT
5590
5626
  # resp.job.job_arn #=> String
5591
5627
  # resp.job.job_id #=> String
5592
5628
  # resp.job.target_selection #=> String, one of "CONTINUOUS", "SNAPSHOT"
5593
- # resp.job.status #=> String, one of "IN_PROGRESS", "CANCELED", "COMPLETED", "DELETION_IN_PROGRESS"
5629
+ # resp.job.status #=> String, one of "IN_PROGRESS", "CANCELED", "COMPLETED", "DELETION_IN_PROGRESS", "SCHEDULED"
5594
5630
  # resp.job.force_canceled #=> Boolean
5595
5631
  # resp.job.reason_code #=> String
5596
5632
  # resp.job.comment #=> String
@@ -5631,6 +5667,9 @@ module Aws::IoT
5631
5667
  # resp.job.document_parameters #=> Hash
5632
5668
  # resp.job.document_parameters["ParameterKey"] #=> String
5633
5669
  # resp.job.is_concurrent #=> Boolean
5670
+ # resp.job.scheduling_config.start_time #=> String
5671
+ # resp.job.scheduling_config.end_time #=> String
5672
+ # resp.job.scheduling_config.end_behavior #=> String, one of "STOP_ROLLOUT", "CANCEL", "FORCE_CANCEL"
5634
5673
  #
5635
5674
  # @overload describe_job(params = {})
5636
5675
  # @param [Hash] params ({})
@@ -7225,6 +7264,14 @@ module Aws::IoT
7225
7264
  # resp.rule.actions[0].republish.role_arn #=> String
7226
7265
  # resp.rule.actions[0].republish.topic #=> String
7227
7266
  # resp.rule.actions[0].republish.qos #=> Integer
7267
+ # resp.rule.actions[0].republish.headers.payload_format_indicator #=> String
7268
+ # resp.rule.actions[0].republish.headers.content_type #=> String
7269
+ # resp.rule.actions[0].republish.headers.response_topic #=> String
7270
+ # resp.rule.actions[0].republish.headers.correlation_data #=> String
7271
+ # resp.rule.actions[0].republish.headers.message_expiry #=> String
7272
+ # resp.rule.actions[0].republish.headers.user_properties #=> Array
7273
+ # resp.rule.actions[0].republish.headers.user_properties[0].key #=> String
7274
+ # resp.rule.actions[0].republish.headers.user_properties[0].value #=> String
7228
7275
  # resp.rule.actions[0].s3.role_arn #=> String
7229
7276
  # resp.rule.actions[0].s3.bucket_name #=> String
7230
7277
  # resp.rule.actions[0].s3.key #=> String
@@ -7338,6 +7385,14 @@ module Aws::IoT
7338
7385
  # resp.rule.error_action.republish.role_arn #=> String
7339
7386
  # resp.rule.error_action.republish.topic #=> String
7340
7387
  # resp.rule.error_action.republish.qos #=> Integer
7388
+ # resp.rule.error_action.republish.headers.payload_format_indicator #=> String
7389
+ # resp.rule.error_action.republish.headers.content_type #=> String
7390
+ # resp.rule.error_action.republish.headers.response_topic #=> String
7391
+ # resp.rule.error_action.republish.headers.correlation_data #=> String
7392
+ # resp.rule.error_action.republish.headers.message_expiry #=> String
7393
+ # resp.rule.error_action.republish.headers.user_properties #=> Array
7394
+ # resp.rule.error_action.republish.headers.user_properties[0].key #=> String
7395
+ # resp.rule.error_action.republish.headers.user_properties[0].value #=> String
7341
7396
  # resp.rule.error_action.s3.role_arn #=> String
7342
7397
  # resp.rule.error_action.s3.bucket_name #=> String
7343
7398
  # resp.rule.error_action.s3.key #=> String
@@ -8964,7 +9019,7 @@ module Aws::IoT
8964
9019
  # @example Request syntax with placeholder values
8965
9020
  #
8966
9021
  # resp = client.list_jobs({
8967
- # status: "IN_PROGRESS", # accepts IN_PROGRESS, CANCELED, COMPLETED, DELETION_IN_PROGRESS
9022
+ # status: "IN_PROGRESS", # accepts IN_PROGRESS, CANCELED, COMPLETED, DELETION_IN_PROGRESS, SCHEDULED
8968
9023
  # target_selection: "CONTINUOUS", # accepts CONTINUOUS, SNAPSHOT
8969
9024
  # max_results: 1,
8970
9025
  # next_token: "NextToken",
@@ -8980,7 +9035,7 @@ module Aws::IoT
8980
9035
  # resp.jobs[0].job_id #=> String
8981
9036
  # resp.jobs[0].thing_group_id #=> String
8982
9037
  # resp.jobs[0].target_selection #=> String, one of "CONTINUOUS", "SNAPSHOT"
8983
- # resp.jobs[0].status #=> String, one of "IN_PROGRESS", "CANCELED", "COMPLETED", "DELETION_IN_PROGRESS"
9038
+ # resp.jobs[0].status #=> String, one of "IN_PROGRESS", "CANCELED", "COMPLETED", "DELETION_IN_PROGRESS", "SCHEDULED"
8984
9039
  # resp.jobs[0].created_at #=> Time
8985
9040
  # resp.jobs[0].last_updated_at #=> Time
8986
9041
  # resp.jobs[0].completed_at #=> Time
@@ -11306,6 +11361,19 @@ module Aws::IoT
11306
11361
  # role_arn: "AwsArn", # required
11307
11362
  # topic: "TopicPattern", # required
11308
11363
  # qos: 1,
11364
+ # headers: {
11365
+ # payload_format_indicator: "PayloadFormatIndicator",
11366
+ # content_type: "ContentType",
11367
+ # response_topic: "ResponseTopic",
11368
+ # correlation_data: "CorrelationData",
11369
+ # message_expiry: "MessageExpiry",
11370
+ # user_properties: [
11371
+ # {
11372
+ # key: "UserPropertyKey", # required
11373
+ # value: "UserPropertyValue", # required
11374
+ # },
11375
+ # ],
11376
+ # },
11309
11377
  # },
11310
11378
  # s3: {
11311
11379
  # role_arn: "AwsArn", # required
@@ -11495,6 +11563,19 @@ module Aws::IoT
11495
11563
  # role_arn: "AwsArn", # required
11496
11564
  # topic: "TopicPattern", # required
11497
11565
  # qos: 1,
11566
+ # headers: {
11567
+ # payload_format_indicator: "PayloadFormatIndicator",
11568
+ # content_type: "ContentType",
11569
+ # response_topic: "ResponseTopic",
11570
+ # correlation_data: "CorrelationData",
11571
+ # message_expiry: "MessageExpiry",
11572
+ # user_properties: [
11573
+ # {
11574
+ # key: "UserPropertyKey", # required
11575
+ # value: "UserPropertyValue", # required
11576
+ # },
11577
+ # ],
11578
+ # },
11498
11579
  # },
11499
11580
  # s3: {
11500
11581
  # role_arn: "AwsArn", # required
@@ -13980,7 +14061,7 @@ module Aws::IoT
13980
14061
  params: params,
13981
14062
  config: config)
13982
14063
  context[:gem_name] = 'aws-sdk-iot'
13983
- context[:gem_version] = '1.97.0'
14064
+ context[:gem_version] = '1.99.0'
13984
14065
  Seahorse::Client::Request.new(handlers, context)
13985
14066
  end
13986
14067
 
@@ -232,6 +232,8 @@ module Aws::IoT
232
232
  ConnectivityTimestamp = Shapes::IntegerShape.new(name: 'ConnectivityTimestamp')
233
233
  ConsecutiveDatapointsToAlarm = Shapes::IntegerShape.new(name: 'ConsecutiveDatapointsToAlarm')
234
234
  ConsecutiveDatapointsToClear = Shapes::IntegerShape.new(name: 'ConsecutiveDatapointsToClear')
235
+ ContentType = Shapes::StringShape.new(name: 'ContentType')
236
+ CorrelationData = Shapes::StringShape.new(name: 'CorrelationData')
235
237
  Count = Shapes::IntegerShape.new(name: 'Count')
236
238
  CreateAuditSuppressionRequest = Shapes::StructureShape.new(name: 'CreateAuditSuppressionRequest')
237
239
  CreateAuditSuppressionResponse = Shapes::StructureShape.new(name: 'CreateAuditSuppressionResponse')
@@ -625,6 +627,7 @@ module Aws::IoT
625
627
  JobDescription = Shapes::StringShape.new(name: 'JobDescription')
626
628
  JobDocument = Shapes::StringShape.new(name: 'JobDocument')
627
629
  JobDocumentSource = Shapes::StringShape.new(name: 'JobDocumentSource')
630
+ JobEndBehavior = Shapes::StringShape.new(name: 'JobEndBehavior')
628
631
  JobExecution = Shapes::StructureShape.new(name: 'JobExecution')
629
632
  JobExecutionFailureType = Shapes::StringShape.new(name: 'JobExecutionFailureType')
630
633
  JobExecutionStatus = Shapes::StringShape.new(name: 'JobExecutionStatus')
@@ -797,6 +800,7 @@ module Aws::IoT
797
800
  Maximum = Shapes::FloatShape.new(name: 'Maximum')
798
801
  MaximumPerMinute = Shapes::IntegerShape.new(name: 'MaximumPerMinute')
799
802
  Message = Shapes::StringShape.new(name: 'Message')
803
+ MessageExpiry = Shapes::StringShape.new(name: 'MessageExpiry')
800
804
  MessageFormat = Shapes::StringShape.new(name: 'MessageFormat')
801
805
  MessageId = Shapes::StringShape.new(name: 'MessageId')
802
806
  MetricDatum = Shapes::StructureShape.new(name: 'MetricDatum')
@@ -824,6 +828,7 @@ module Aws::IoT
824
828
  ModelStatus = Shapes::StringShape.new(name: 'ModelStatus')
825
829
  MqttClientId = Shapes::StringShape.new(name: 'MqttClientId')
826
830
  MqttContext = Shapes::StructureShape.new(name: 'MqttContext')
831
+ MqttHeaders = Shapes::StructureShape.new(name: 'MqttHeaders')
827
832
  MqttPassword = Shapes::BlobShape.new(name: 'MqttPassword')
828
833
  MqttUsername = Shapes::StringShape.new(name: 'MqttUsername')
829
834
  NamedShadowIndexingMode = Shapes::StringShape.new(name: 'NamedShadowIndexingMode')
@@ -864,6 +869,7 @@ module Aws::IoT
864
869
  Parameters = Shapes::MapShape.new(name: 'Parameters')
865
870
  PartitionKey = Shapes::StringShape.new(name: 'PartitionKey')
866
871
  PayloadField = Shapes::StringShape.new(name: 'PayloadField')
872
+ PayloadFormatIndicator = Shapes::StringShape.new(name: 'PayloadFormatIndicator')
867
873
  PayloadVersion = Shapes::StringShape.new(name: 'PayloadVersion')
868
874
  Percent = Shapes::FloatShape.new(name: 'Percent')
869
875
  PercentList = Shapes::ListShape.new(name: 'PercentList')
@@ -971,6 +977,7 @@ module Aws::IoT
971
977
  ResourceRegistrationFailureException = Shapes::StructureShape.new(name: 'ResourceRegistrationFailureException')
972
978
  ResourceType = Shapes::StringShape.new(name: 'ResourceType')
973
979
  Resources = Shapes::ListShape.new(name: 'Resources')
980
+ ResponseTopic = Shapes::StringShape.new(name: 'ResponseTopic')
974
981
  RetryAttempt = Shapes::IntegerShape.new(name: 'RetryAttempt')
975
982
  RetryCriteria = Shapes::StructureShape.new(name: 'RetryCriteria')
976
983
  RetryCriteriaList = Shapes::ListShape.new(name: 'RetryCriteriaList')
@@ -999,6 +1006,7 @@ module Aws::IoT
999
1006
  ScheduledAuditMetadata = Shapes::StructureShape.new(name: 'ScheduledAuditMetadata')
1000
1007
  ScheduledAuditMetadataList = Shapes::ListShape.new(name: 'ScheduledAuditMetadataList')
1001
1008
  ScheduledAuditName = Shapes::StringShape.new(name: 'ScheduledAuditName')
1009
+ SchedulingConfig = Shapes::StructureShape.new(name: 'SchedulingConfig')
1002
1010
  SearchIndexRequest = Shapes::StructureShape.new(name: 'SearchIndexRequest')
1003
1011
  SearchIndexResponse = Shapes::StructureShape.new(name: 'SearchIndexResponse')
1004
1012
  SearchableAttributes = Shapes::ListShape.new(name: 'SearchableAttributes')
@@ -1078,6 +1086,7 @@ module Aws::IoT
1078
1086
  StreamVersion = Shapes::IntegerShape.new(name: 'StreamVersion')
1079
1087
  StreamsSummary = Shapes::ListShape.new(name: 'StreamsSummary')
1080
1088
  String = Shapes::StringShape.new(name: 'String')
1089
+ StringDateTime = Shapes::StringShape.new(name: 'StringDateTime')
1081
1090
  StringList = Shapes::ListShape.new(name: 'StringList')
1082
1091
  StringMap = Shapes::MapShape.new(name: 'StringMap')
1083
1092
  SubnetId = Shapes::StringShape.new(name: 'SubnetId')
@@ -1246,6 +1255,10 @@ module Aws::IoT
1246
1255
  UpdateTopicRuleDestinationResponse = Shapes::StructureShape.new(name: 'UpdateTopicRuleDestinationResponse')
1247
1256
  Url = Shapes::StringShape.new(name: 'Url')
1248
1257
  UseBase64 = Shapes::BooleanShape.new(name: 'UseBase64')
1258
+ UserProperties = Shapes::ListShape.new(name: 'UserProperties')
1259
+ UserProperty = Shapes::StructureShape.new(name: 'UserProperty')
1260
+ UserPropertyKey = Shapes::StringShape.new(name: 'UserPropertyKey')
1261
+ UserPropertyValue = Shapes::StringShape.new(name: 'UserPropertyValue')
1249
1262
  Valid = Shapes::BooleanShape.new(name: 'Valid')
1250
1263
  ValidateSecurityProfileBehaviorsRequest = Shapes::StructureShape.new(name: 'ValidateSecurityProfileBehaviorsRequest')
1251
1264
  ValidateSecurityProfileBehaviorsResponse = Shapes::StructureShape.new(name: 'ValidateSecurityProfileBehaviorsResponse')
@@ -1911,6 +1924,7 @@ module Aws::IoT
1911
1924
  CreateJobRequest.add_member(:job_template_arn, Shapes::ShapeRef.new(shape: JobTemplateArn, location_name: "jobTemplateArn"))
1912
1925
  CreateJobRequest.add_member(:job_executions_retry_config, Shapes::ShapeRef.new(shape: JobExecutionsRetryConfig, location_name: "jobExecutionsRetryConfig"))
1913
1926
  CreateJobRequest.add_member(:document_parameters, Shapes::ShapeRef.new(shape: ParameterMap, location_name: "documentParameters"))
1927
+ CreateJobRequest.add_member(:scheduling_config, Shapes::ShapeRef.new(shape: SchedulingConfig, location_name: "schedulingConfig"))
1914
1928
  CreateJobRequest.struct_class = Types::CreateJobRequest
1915
1929
 
1916
1930
  CreateJobResponse.add_member(:job_arn, Shapes::ShapeRef.new(shape: JobArn, location_name: "jobArn"))
@@ -3048,6 +3062,7 @@ module Aws::IoT
3048
3062
  Job.add_member(:job_executions_retry_config, Shapes::ShapeRef.new(shape: JobExecutionsRetryConfig, location_name: "jobExecutionsRetryConfig"))
3049
3063
  Job.add_member(:document_parameters, Shapes::ShapeRef.new(shape: ParameterMap, location_name: "documentParameters"))
3050
3064
  Job.add_member(:is_concurrent, Shapes::ShapeRef.new(shape: BooleanWrapperObject, location_name: "isConcurrent"))
3065
+ Job.add_member(:scheduling_config, Shapes::ShapeRef.new(shape: SchedulingConfig, location_name: "schedulingConfig"))
3051
3066
  Job.struct_class = Types::Job
3052
3067
 
3053
3068
  JobExecution.add_member(:job_id, Shapes::ShapeRef.new(shape: JobId, location_name: "jobId"))
@@ -3808,6 +3823,14 @@ module Aws::IoT
3808
3823
  MqttContext.add_member(:client_id, Shapes::ShapeRef.new(shape: MqttClientId, location_name: "clientId"))
3809
3824
  MqttContext.struct_class = Types::MqttContext
3810
3825
 
3826
+ MqttHeaders.add_member(:payload_format_indicator, Shapes::ShapeRef.new(shape: PayloadFormatIndicator, location_name: "payloadFormatIndicator"))
3827
+ MqttHeaders.add_member(:content_type, Shapes::ShapeRef.new(shape: ContentType, location_name: "contentType"))
3828
+ MqttHeaders.add_member(:response_topic, Shapes::ShapeRef.new(shape: ResponseTopic, location_name: "responseTopic"))
3829
+ MqttHeaders.add_member(:correlation_data, Shapes::ShapeRef.new(shape: CorrelationData, location_name: "correlationData"))
3830
+ MqttHeaders.add_member(:message_expiry, Shapes::ShapeRef.new(shape: MessageExpiry, location_name: "messageExpiry"))
3831
+ MqttHeaders.add_member(:user_properties, Shapes::ShapeRef.new(shape: UserProperties, location_name: "userProperties"))
3832
+ MqttHeaders.struct_class = Types::MqttHeaders
3833
+
3811
3834
  NamedShadowNamesFilter.member = Shapes::ShapeRef.new(shape: ShadowName)
3812
3835
 
3813
3836
  NonCompliantResource.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "resourceType"))
@@ -4060,6 +4083,7 @@ module Aws::IoT
4060
4083
  RepublishAction.add_member(:role_arn, Shapes::ShapeRef.new(shape: AwsArn, required: true, location_name: "roleArn"))
4061
4084
  RepublishAction.add_member(:topic, Shapes::ShapeRef.new(shape: TopicPattern, required: true, location_name: "topic"))
4062
4085
  RepublishAction.add_member(:qos, Shapes::ShapeRef.new(shape: Qos, location_name: "qos"))
4086
+ RepublishAction.add_member(:headers, Shapes::ShapeRef.new(shape: MqttHeaders, location_name: "headers"))
4063
4087
  RepublishAction.struct_class = Types::RepublishAction
4064
4088
 
4065
4089
  ResourceAlreadyExistsException.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
@@ -4137,6 +4161,11 @@ module Aws::IoT
4137
4161
 
4138
4162
  ScheduledAuditMetadataList.member = Shapes::ShapeRef.new(shape: ScheduledAuditMetadata)
4139
4163
 
4164
+ SchedulingConfig.add_member(:start_time, Shapes::ShapeRef.new(shape: StringDateTime, location_name: "startTime"))
4165
+ SchedulingConfig.add_member(:end_time, Shapes::ShapeRef.new(shape: StringDateTime, location_name: "endTime"))
4166
+ SchedulingConfig.add_member(:end_behavior, Shapes::ShapeRef.new(shape: JobEndBehavior, location_name: "endBehavior"))
4167
+ SchedulingConfig.struct_class = Types::SchedulingConfig
4168
+
4140
4169
  SearchIndexRequest.add_member(:index_name, Shapes::ShapeRef.new(shape: IndexName, location_name: "indexName"))
4141
4170
  SearchIndexRequest.add_member(:query_string, Shapes::ShapeRef.new(shape: QueryString, required: true, location_name: "queryString"))
4142
4171
  SearchIndexRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
@@ -4828,6 +4857,12 @@ module Aws::IoT
4828
4857
 
4829
4858
  UpdateTopicRuleDestinationResponse.struct_class = Types::UpdateTopicRuleDestinationResponse
4830
4859
 
4860
+ UserProperties.member = Shapes::ShapeRef.new(shape: UserProperty)
4861
+
4862
+ UserProperty.add_member(:key, Shapes::ShapeRef.new(shape: UserPropertyKey, required: true, location_name: "key"))
4863
+ UserProperty.add_member(:value, Shapes::ShapeRef.new(shape: UserPropertyValue, required: true, location_name: "value"))
4864
+ UserProperty.struct_class = Types::UserProperty
4865
+
4831
4866
  ValidateSecurityProfileBehaviorsRequest.add_member(:behaviors, Shapes::ShapeRef.new(shape: Behaviors, required: true, location_name: "behaviors"))
4832
4867
  ValidateSecurityProfileBehaviorsRequest.struct_class = Types::ValidateSecurityProfileBehaviorsRequest
4833
4868
 
@@ -50,6 +50,9 @@ module Aws::IoT
50
50
 
51
51
  def initialize(options = {})
52
52
  self[:region] = options[:region]
53
+ if self[:region].nil?
54
+ raise ArgumentError, "Missing required EndpointParameter: :region"
55
+ end
53
56
  self[:use_dual_stack] = options[:use_dual_stack]
54
57
  self[:use_dual_stack] = false if self[:use_dual_stack].nil?
55
58
  if self[:use_dual_stack].nil?
@@ -9,103 +9,43 @@
9
9
 
10
10
  module Aws::IoT
11
11
  class EndpointProvider
12
- def initialize(rule_set = nil)
13
- @@rule_set ||= begin
14
- endpoint_rules = Aws::Json.load(Base64.decode64(RULES))
15
- Aws::Endpoints::RuleSet.new(
16
- version: endpoint_rules['version'],
17
- service_id: endpoint_rules['serviceId'],
18
- parameters: endpoint_rules['parameters'],
19
- rules: endpoint_rules['rules']
20
- )
12
+ def resolve_endpoint(parameters)
13
+ region = parameters.region
14
+ use_dual_stack = parameters.use_dual_stack
15
+ use_fips = parameters.use_fips
16
+ endpoint = parameters.endpoint
17
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
18
+ if Aws::Endpoints::Matchers.set?(endpoint) && (url = Aws::Endpoints::Matchers.parse_url(endpoint))
19
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
20
+ raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
21
+ end
22
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
23
+ raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
24
+ end
25
+ return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
26
+ end
27
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
28
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
29
+ return Aws::Endpoints::Endpoint.new(url: "https://iot-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
30
+ end
31
+ raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
32
+ end
33
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
34
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
35
+ return Aws::Endpoints::Endpoint.new(url: "https://iot-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
36
+ end
37
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
38
+ end
39
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
40
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
41
+ return Aws::Endpoints::Endpoint.new(url: "https://iot.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
42
+ end
43
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
44
+ end
45
+ return Aws::Endpoints::Endpoint.new(url: "https://iot.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
21
46
  end
22
- @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
- end
47
+ raise ArgumentError, 'No endpoint could be resolved'
24
48
 
25
- def resolve_endpoint(parameters)
26
- @provider.resolve_endpoint(parameters)
27
49
  end
28
-
29
- # @api private
30
- RULES = <<-JSON
31
- eyJ2ZXJzaW9uIjoiMS4wIiwicGFyYW1ldGVycyI6eyJSZWdpb24iOnsiYnVp
32
- bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1bWVu
33
- dGF0aW9uIjoiVGhlIEFXUyByZWdpb24gdXNlZCB0byBkaXNwYXRjaCB0aGUg
34
- cmVxdWVzdC4iLCJ0eXBlIjoiU3RyaW5nIn0sIlVzZUR1YWxTdGFjayI6eyJi
35
- dWlsdEluIjoiQVdTOjpVc2VEdWFsU3RhY2siLCJyZXF1aXJlZCI6dHJ1ZSwi
36
- ZGVmYXVsdCI6ZmFsc2UsImRvY3VtZW50YXRpb24iOiJXaGVuIHRydWUsIHVz
37
- ZSB0aGUgZHVhbC1zdGFjayBlbmRwb2ludC4gSWYgdGhlIGNvbmZpZ3VyZWQg
38
- ZW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBkdWFsLXN0YWNrLCBkaXNwYXRj
39
- aGluZyB0aGUgcmVxdWVzdCBNQVkgcmV0dXJuIGFuIGVycm9yLiIsInR5cGUi
40
- OiJCb29sZWFuIn0sIlVzZUZJUFMiOnsiYnVpbHRJbiI6IkFXUzo6VXNlRklQ
41
- UyIsInJlcXVpcmVkIjp0cnVlLCJkZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRh
42
- dGlvbiI6IldoZW4gdHJ1ZSwgc2VuZCB0aGlzIHJlcXVlc3QgdG8gdGhlIEZJ
43
- UFMtY29tcGxpYW50IHJlZ2lvbmFsIGVuZHBvaW50LiBJZiB0aGUgY29uZmln
44
- dXJlZCBlbmRwb2ludCBkb2VzIG5vdCBoYXZlIGEgRklQUyBjb21wbGlhbnQg
45
- ZW5kcG9pbnQsIGRpc3BhdGNoaW5nIHRoZSByZXF1ZXN0IHdpbGwgcmV0dXJu
46
- IGFuIGVycm9yLiIsInR5cGUiOiJCb29sZWFuIn0sIkVuZHBvaW50Ijp7ImJ1
47
- aWx0SW4iOiJTREs6OkVuZHBvaW50IiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1
48
- bWVudGF0aW9uIjoiT3ZlcnJpZGUgdGhlIGVuZHBvaW50IHVzZWQgdG8gc2Vu
49
- ZCB0aGlzIHJlcXVlc3QiLCJ0eXBlIjoiU3RyaW5nIn19LCJydWxlcyI6W3si
50
- Y29uZGl0aW9ucyI6W3siZm4iOiJhd3MucGFydGl0aW9uIiwiYXJndiI6W3si
51
- cmVmIjoiUmVnaW9uIn1dLCJhc3NpZ24iOiJQYXJ0aXRpb25SZXN1bHQifV0s
52
- InR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoi
53
- aXNTZXQiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XX0seyJmbiI6InBh
54
- cnNlVVJMIiwiYXJndiI6W3sicmVmIjoiRW5kcG9pbnQifV0sImFzc2lnbiI6
55
- InVybCJ9XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
56
- W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQ
57
- UyJ9LHRydWVdfV0sImVycm9yIjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBG
58
- SVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0
59
- eXBlIjoiZXJyb3IifSx7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIs
60
- InJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
61
- LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJlcnJv
62
- ciI6IkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0
63
- b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0eXBlIjoiZXJyb3Ii
64
- fSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOnsicmVmIjoi
65
- RW5kcG9pbnQifSwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlw
66
- ZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29s
67
- ZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQUyJ9LHRydWVdfSx7
68
- ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxT
69
- dGFjayJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
70
- dGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsi
71
- Zm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0
72
- In0sInN1cHBvcnRzRklQUyJdfV19LHsiZm4iOiJib29sZWFuRXF1YWxzIiwi
73
- YXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQ
74
- YXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5
75
- cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2lu
76
- dCI6eyJ1cmwiOiJodHRwczovL2lvdC1maXBzLntSZWdpb259LntQYXJ0aXRp
77
- b25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9
78
- LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRp
79
- b25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJs
80
- ZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBv
81
- ciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7ImZu
82
- IjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJUFMifSx0
83
- cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpb
84
- eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0
85
- QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBw
86
- b3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
87
- dGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25z
88
- IjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9pb3QtZmlwcy57UmVn
89
- aW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVz
90
- Ijp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19XX0seyJj
91
- b25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGlzIGVuYWJsZWQgYnV0IHRo
92
- aXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQUyIsInR5cGUiOiJl
93
- cnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
94
- LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJ0eXBl
95
- IjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xl
96
- YW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3Yi
97
- Olt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFj
98
- ayJdfV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
99
- W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vaW90LntSZWdpb259LntQ
100
- YXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRp
101
- ZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJj
102
- b25kaXRpb25zIjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBi
103
- dXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2si
104
- LCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50
105
- Ijp7InVybCI6Imh0dHBzOi8vaW90LntSZWdpb259LntQYXJ0aXRpb25SZXN1
106
- bHQjZG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0s
107
- InR5cGUiOiJlbmRwb2ludCJ9XX1dfQ==
108
-
109
- JSON
110
50
  end
111
51
  end