aws-sdk-iot 1.97.0 → 1.99.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: 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