aws-sdk-iotdataplane 1.39.0 → 1.41.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: 67ca8a94ee793ccde51dfc4e3ddc356ba65a58de10f04f522c96be90cabf606b
4
- data.tar.gz: eabe4d46b4594da3e07ce0c73ed589a59a4af1d26ca184aa6e43217bc52eaa94
3
+ metadata.gz: 8d095bdd873c26177dc089f816f0b5517ada0daa223ebbe0025da406749c2616
4
+ data.tar.gz: af36a813f82e02857c329975f364f5f413bbe1442a150aaa61c80a9e60680706
5
5
  SHA512:
6
- metadata.gz: 15e7ead3c85b7cc736a9a27cebd6d981024dad375adf69827a28556817a29a6282c283adefad78bb25b56c98ba4550ad9101e19cf6e11be917407b27865324c3
7
- data.tar.gz: 7b41e1d01c9b7f2c42db0de6b6415b2696d562ba93d31753f84dfabb45c98484868b61ace29ed1be9d92dca34ead4da43d48d24d1acd4e642ad6d1bd7b71d5cd
6
+ metadata.gz: 817e5a65a853f48878639a50ec4a84cc8018173d40a8263c4b0f590542291d1c8d89d46d8609eb2445787359457beb38ff78777287db91e76a57a06150a3ffb7
7
+ data.tar.gz: 93dd2836ad9804cc883f8c351032d837410282d70a068c5db703040e6eab5136b11b8c8b91d1f57a62b2b19d2c9340bac96903d3d0e8cc9da1709610a6ab908b
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.41.0 (2022-11-28)
5
+ ------------------
6
+
7
+ * Feature - This release adds support for MQTT5 properties to AWS IoT HTTP Publish API.
8
+
9
+ 1.40.0 (2022-10-25)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
4
14
  1.39.0 (2022-03-30)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.39.0
1
+ 1.41.0
@@ -30,7 +30,7 @@ require 'aws-sdk-core/plugins/http_checksum.rb'
30
30
  require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
31
  require 'aws-sdk-core/plugins/defaults_mode.rb'
32
32
  require 'aws-sdk-core/plugins/recursion_detection.rb'
33
- require 'aws-sdk-core/plugins/signature_v4.rb'
33
+ require 'aws-sdk-core/plugins/sign.rb'
34
34
  require 'aws-sdk-core/plugins/protocols/rest_json.rb'
35
35
 
36
36
  Aws::Plugins::GlobalConfiguration.add_identifier(:iotdataplane)
@@ -79,8 +79,9 @@ module Aws::IoTDataPlane
79
79
  add_plugin(Aws::Plugins::ChecksumAlgorithm)
80
80
  add_plugin(Aws::Plugins::DefaultsMode)
81
81
  add_plugin(Aws::Plugins::RecursionDetection)
82
- add_plugin(Aws::Plugins::SignatureV4)
82
+ add_plugin(Aws::Plugins::Sign)
83
83
  add_plugin(Aws::Plugins::Protocols::RestJson)
84
+ add_plugin(Aws::IoTDataPlane::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -287,6 +288,19 @@ module Aws::IoTDataPlane
287
288
  # ** Please note ** When response stubbing is enabled, no HTTP
288
289
  # requests are made, and retries are disabled.
289
290
  #
291
+ # @option options [Aws::TokenProvider] :token_provider
292
+ # A Bearer Token Provider. This can be an instance of any one of the
293
+ # following classes:
294
+ #
295
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
296
+ # tokens.
297
+ #
298
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
299
+ # access token generated from `aws login`.
300
+ #
301
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
302
+ # will be used to search for tokens configured for your profile in shared configuration files.
303
+ #
290
304
  # @option options [Boolean] :use_dualstack_endpoint
291
305
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
292
306
  # will be used if available.
@@ -300,6 +314,9 @@ module Aws::IoTDataPlane
300
314
  # When `true`, request parameters are validated before
301
315
  # sending the request.
302
316
  #
317
+ # @option options [Aws::IoTDataPlane::EndpointProvider] :endpoint_provider
318
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::IoTDataPlane::EndpointParameters`
319
+ #
303
320
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
304
321
  # requests through. Formatted like 'http://proxy.com:123'.
305
322
  #
@@ -603,7 +620,7 @@ module Aws::IoTDataPlane
603
620
  # The name of the MQTT topic.
604
621
  #
605
622
  # @option params [Integer] :qos
606
- # The Quality of Service (QoS) level.
623
+ # The Quality of Service (QoS) level. The default QoS level is 0.
607
624
  #
608
625
  # @option params [Boolean] :retain
609
626
  # A Boolean value that determines whether to set the RETAIN flag when
@@ -624,6 +641,52 @@ module Aws::IoTDataPlane
624
641
  # the retained message identified by **topic** from Amazon Web Services
625
642
  # IoT Core.
626
643
  #
644
+ # @option params [String] :user_properties
645
+ # A JSON string that contains an array of JSON objects. If you don’t use
646
+ # Amazon Web Services SDK or CLI, you must encode the JSON string to
647
+ # base64 format before adding it to the HTTP header. `userProperties` is
648
+ # an HTTP header value in the API.
649
+ #
650
+ # The following example `userProperties` parameter is a JSON string
651
+ # which represents two User Properties. Note that it needs to be
652
+ # base64-encoded:
653
+ #
654
+ # `[\{"deviceName": "alpha"\}, \{"deviceCnt": "45"\}]`
655
+ #
656
+ # **SDK automatically handles json encoding and base64 encoding for you
657
+ # when the required value (Hash, Array, etc.) is provided according to
658
+ # the description.**
659
+ #
660
+ # @option params [String] :payload_format_indicator
661
+ # An `Enum` string value that indicates whether the payload is formatted
662
+ # as UTF-8. `payloadFormatIndicator` is an HTTP header value in the API.
663
+ #
664
+ # @option params [String] :content_type
665
+ # A UTF-8 encoded string that describes the content of the publishing
666
+ # message.
667
+ #
668
+ # @option params [String] :response_topic
669
+ # A UTF-8 encoded string that's used as the topic name for a response
670
+ # message. The response topic is used to describe the topic which the
671
+ # receiver should publish to as part of the request-response flow. The
672
+ # topic must not contain wildcard characters.
673
+ #
674
+ # @option params [String] :correlation_data
675
+ # The base64-encoded binary data used by the sender of the request
676
+ # message to identify which request the response message is for when
677
+ # it's received. `correlationData` is an HTTP header value in the API.
678
+ #
679
+ # @option params [Integer] :message_expiry
680
+ # A user-defined integer value that represents the message expiry
681
+ # interval in seconds. If absent, the message doesn't expire. For more
682
+ # information about the limits of `messageExpiry`, see [Amazon Web
683
+ # Services IoT Core message broker and protocol limits and quotas ][1]
684
+ # from the Amazon Web Services Reference Guide.
685
+ #
686
+ #
687
+ #
688
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/iot-core.html#message-broker-limits
689
+ #
627
690
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
628
691
  #
629
692
  # @example Request syntax with placeholder values
@@ -633,6 +696,12 @@ module Aws::IoTDataPlane
633
696
  # qos: 1,
634
697
  # retain: false,
635
698
  # payload: "data",
699
+ # user_properties: "UserProperties",
700
+ # payload_format_indicator: "UNSPECIFIED_BYTES", # accepts UNSPECIFIED_BYTES, UTF8_DATA
701
+ # content_type: "ContentType",
702
+ # response_topic: "ResponseTopic",
703
+ # correlation_data: "CorrelationData",
704
+ # message_expiry: 1,
636
705
  # })
637
706
  #
638
707
  # @overload publish(params = {})
@@ -699,7 +768,7 @@ module Aws::IoTDataPlane
699
768
  params: params,
700
769
  config: config)
701
770
  context[:gem_name] = 'aws-sdk-iotdataplane'
702
- context[:gem_version] = '1.39.0'
771
+ context[:gem_version] = '1.41.0'
703
772
  Seahorse::Client::Request.new(handlers, context)
704
773
  end
705
774
 
@@ -14,6 +14,8 @@ module Aws::IoTDataPlane
14
14
  include Seahorse::Model
15
15
 
16
16
  ConflictException = Shapes::StructureShape.new(name: 'ConflictException')
17
+ ContentType = Shapes::StringShape.new(name: 'ContentType')
18
+ CorrelationData = Shapes::StringShape.new(name: 'CorrelationData')
17
19
  DeleteThingShadowRequest = Shapes::StructureShape.new(name: 'DeleteThingShadowRequest')
18
20
  DeleteThingShadowResponse = Shapes::StructureShape.new(name: 'DeleteThingShadowResponse')
19
21
  GetRetainedMessageRequest = Shapes::StructureShape.new(name: 'GetRetainedMessageRequest')
@@ -28,16 +30,19 @@ module Aws::IoTDataPlane
28
30
  ListRetainedMessagesRequest = Shapes::StructureShape.new(name: 'ListRetainedMessagesRequest')
29
31
  ListRetainedMessagesResponse = Shapes::StructureShape.new(name: 'ListRetainedMessagesResponse')
30
32
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
33
+ MessageExpiry = Shapes::IntegerShape.new(name: 'MessageExpiry')
31
34
  MethodNotAllowedException = Shapes::StructureShape.new(name: 'MethodNotAllowedException')
32
35
  NamedShadowList = Shapes::ListShape.new(name: 'NamedShadowList')
33
36
  NextToken = Shapes::StringShape.new(name: 'NextToken')
34
37
  PageSize = Shapes::IntegerShape.new(name: 'PageSize')
35
38
  Payload = Shapes::BlobShape.new(name: 'Payload')
39
+ PayloadFormatIndicator = Shapes::StringShape.new(name: 'PayloadFormatIndicator')
36
40
  PayloadSize = Shapes::IntegerShape.new(name: 'PayloadSize')
37
41
  PublishRequest = Shapes::StructureShape.new(name: 'PublishRequest')
38
42
  Qos = Shapes::IntegerShape.new(name: 'Qos')
39
43
  RequestEntityTooLargeException = Shapes::StructureShape.new(name: 'RequestEntityTooLargeException')
40
44
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
45
+ ResponseTopic = Shapes::StringShape.new(name: 'ResponseTopic')
41
46
  Retain = Shapes::BooleanShape.new(name: 'Retain')
42
47
  RetainedMessageList = Shapes::ListShape.new(name: 'RetainedMessageList')
43
48
  RetainedMessageSummary = Shapes::StructureShape.new(name: 'RetainedMessageSummary')
@@ -51,6 +56,7 @@ module Aws::IoTDataPlane
51
56
  UnsupportedDocumentEncodingException = Shapes::StructureShape.new(name: 'UnsupportedDocumentEncodingException')
52
57
  UpdateThingShadowRequest = Shapes::StructureShape.new(name: 'UpdateThingShadowRequest')
53
58
  UpdateThingShadowResponse = Shapes::StructureShape.new(name: 'UpdateThingShadowResponse')
59
+ UserProperties = Shapes::StringShape.new(name: 'UserProperties')
54
60
  errorMessage = Shapes::StringShape.new(name: 'errorMessage')
55
61
 
56
62
  ConflictException.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
@@ -116,6 +122,12 @@ module Aws::IoTDataPlane
116
122
  PublishRequest.add_member(:qos, Shapes::ShapeRef.new(shape: Qos, location: "querystring", location_name: "qos"))
117
123
  PublishRequest.add_member(:retain, Shapes::ShapeRef.new(shape: Retain, location: "querystring", location_name: "retain"))
118
124
  PublishRequest.add_member(:payload, Shapes::ShapeRef.new(shape: Payload, location_name: "payload"))
125
+ PublishRequest.add_member(:user_properties, Shapes::ShapeRef.new(shape: UserProperties, location: "header", location_name: "x-amz-mqtt5-user-properties", metadata: {"jsonvalue"=>true}))
126
+ PublishRequest.add_member(:payload_format_indicator, Shapes::ShapeRef.new(shape: PayloadFormatIndicator, location: "header", location_name: "x-amz-mqtt5-payload-format-indicator"))
127
+ PublishRequest.add_member(:content_type, Shapes::ShapeRef.new(shape: ContentType, location: "querystring", location_name: "contentType"))
128
+ PublishRequest.add_member(:response_topic, Shapes::ShapeRef.new(shape: ResponseTopic, location: "querystring", location_name: "responseTopic"))
129
+ PublishRequest.add_member(:correlation_data, Shapes::ShapeRef.new(shape: CorrelationData, location: "header", location_name: "x-amz-mqtt5-correlation-data"))
130
+ PublishRequest.add_member(:message_expiry, Shapes::ShapeRef.new(shape: MessageExpiry, location: "querystring", location_name: "messageExpiry"))
119
131
  PublishRequest.struct_class = Types::PublishRequest
120
132
  PublishRequest[:payload] = :payload
121
133
  PublishRequest[:payload_member] = PublishRequest.member(:payload)
@@ -266,6 +278,7 @@ module Aws::IoTDataPlane
266
278
  o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
267
279
  o.errors << Shapes::ShapeRef.new(shape: UnauthorizedException)
268
280
  o.errors << Shapes::ShapeRef.new(shape: MethodNotAllowedException)
281
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
269
282
  end)
270
283
 
271
284
  api.add_operation(:update_thing_shadow, Seahorse::Model::Operation.new.tap do |o|
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::IoTDataPlane
11
+ # Endpoint parameters used to influence endpoints per request.
12
+ #
13
+ # @!attribute region
14
+ # The AWS region used to dispatch the request.
15
+ #
16
+ # @return [String]
17
+ #
18
+ # @!attribute use_dual_stack
19
+ # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
20
+ #
21
+ # @return [Boolean]
22
+ #
23
+ # @!attribute use_fips
24
+ # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
25
+ #
26
+ # @return [Boolean]
27
+ #
28
+ # @!attribute endpoint
29
+ # Override the endpoint used to send this request
30
+ #
31
+ # @return [String]
32
+ #
33
+ EndpointParameters = Struct.new(
34
+ :region,
35
+ :use_dual_stack,
36
+ :use_fips,
37
+ :endpoint,
38
+ ) do
39
+ include Aws::Structure
40
+
41
+ # @api private
42
+ class << self
43
+ PARAM_MAP = {
44
+ 'Region' => :region,
45
+ 'UseDualStack' => :use_dual_stack,
46
+ 'UseFIPS' => :use_fips,
47
+ 'Endpoint' => :endpoint,
48
+ }.freeze
49
+ end
50
+
51
+ def initialize(options = {})
52
+ self[:region] = options[:region]
53
+ self[:use_dual_stack] = options[:use_dual_stack]
54
+ self[:use_dual_stack] = false if self[:use_dual_stack].nil?
55
+ if self[:use_dual_stack].nil?
56
+ raise ArgumentError, "Missing required EndpointParameter: :use_dual_stack"
57
+ end
58
+ self[:use_fips] = options[:use_fips]
59
+ self[:use_fips] = false if self[:use_fips].nil?
60
+ if self[:use_fips].nil?
61
+ raise ArgumentError, "Missing required EndpointParameter: :use_fips"
62
+ end
63
+ self[:endpoint] = options[:endpoint]
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,142 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::IoTDataPlane
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
+ )
21
+ end
22
+ @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
+ end
24
+
25
+ def resolve_endpoint(parameters)
26
+ @provider.resolve_endpoint(parameters)
27
+ 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
+ dCI6eyJ1cmwiOiJodHRwczovL2RhdGEtYXRzLmlvdC1maXBzLntSZWdpb259
77
+ LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3Bl
78
+ cnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0s
79
+ eyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sg
80
+ YXJlIGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBw
81
+ b3J0IG9uZSBvciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlv
82
+ bnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVz
83
+ ZUZJUFMifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25k
84
+ aXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7
85
+ ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3Vs
86
+ dCJ9LCJzdXBwb3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMi
87
+ Olt7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJj
88
+ b25kaXRpb25zIjpbeyJmbiI6InN0cmluZ0VxdWFscyIsImFyZ3YiOlt7InJl
89
+ ZiI6IlJlZ2lvbiJ9LCJ1cy1lYXN0LTEiXX1dLCJlbmRwb2ludCI6eyJ1cmwi
90
+ OiJodHRwczovL2RhdGEuaW90LWZpcHMudXMtZWFzdC0xLmFtYXpvbmF3cy5j
91
+ b20iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5k
92
+ cG9pbnQifSx7ImNvbmRpdGlvbnMiOlt7ImZuIjoic3RyaW5nRXF1YWxzIiwi
93
+ YXJndiI6W3sicmVmIjoiUmVnaW9uIn0sInVzLWVhc3QtMiJdfV0sImVuZHBv
94
+ aW50Ijp7InVybCI6Imh0dHBzOi8vZGF0YS5pb3QtZmlwcy51cy1lYXN0LTIu
95
+ YW1hem9uYXdzLmNvbSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0s
96
+ InR5cGUiOiJlbmRwb2ludCJ9LHsiY29uZGl0aW9ucyI6W3siZm4iOiJzdHJp
97
+ bmdFcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJSZWdpb24ifSwiY2EtY2VudHJh
98
+ bC0xIl19XSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9kYXRhLmlvdC1m
99
+ aXBzLmNhLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwicHJvcGVydGllcyI6
100
+ e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In0seyJjb25kaXRp
101
+ b25zIjpbeyJmbiI6InN0cmluZ0VxdWFscyIsImFyZ3YiOlt7InJlZiI6IlJl
102
+ Z2lvbiJ9LCJ1cy13ZXN0LTEiXX1dLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRw
103
+ czovL2RhdGEuaW90LWZpcHMudXMtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJw
104
+ cm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQi
105
+ fSx7ImNvbmRpdGlvbnMiOlt7ImZuIjoic3RyaW5nRXF1YWxzIiwiYXJndiI6
106
+ W3sicmVmIjoiUmVnaW9uIn0sInVzLXdlc3QtMiJdfV0sImVuZHBvaW50Ijp7
107
+ InVybCI6Imh0dHBzOi8vZGF0YS5pb3QtZmlwcy51cy13ZXN0LTIuYW1hem9u
108
+ YXdzLmNvbSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUi
109
+ OiJlbmRwb2ludCJ9LHsiY29uZGl0aW9ucyI6W3siZm4iOiJzdHJpbmdFcXVh
110
+ bHMiLCJhcmd2IjpbeyJyZWYiOiJSZWdpb24ifSwidXMtZ292LXdlc3QtMSJd
111
+ fV0sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vZGF0YS5pb3QtZmlwcy51
112
+ cy1nb3Ytd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJwcm9wZXJ0aWVzIjp7fSwi
113
+ aGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifSx7ImNvbmRpdGlvbnMi
114
+ Olt7ImZuIjoic3RyaW5nRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiUmVnaW9u
115
+ In0sInVzLWdvdi1lYXN0LTEiXX1dLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRw
116
+ czovL2RhdGEuaW90LWZpcHMudXMtZ292LWVhc3QtMS5hbWF6b25hd3MuY29t
117
+ IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBv
118
+ aW50In0seyJjb25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0
119
+ cHM6Ly9kYXRhLWF0cy5pb3QtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVz
120
+ dWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319
121
+ LCJ0eXBlIjoiZW5kcG9pbnQifV19XX0seyJjb25kaXRpb25zIjpbXSwiZXJy
122
+ b3IiOiJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMg
123
+ bm90IHN1cHBvcnQgRklQUyIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRp
124
+ b25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJV
125
+ c2VEdWFsU3RhY2sifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpb
126
+ eyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2Ijpb
127
+ dHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlv
128
+ blJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFjayJdfV19XSwidHlwZSI6InRy
129
+ ZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVy
130
+ bCI6Imh0dHBzOi8vZGF0YS1hdHMuaW90LntSZWdpb259LntQYXJ0aXRpb25S
131
+ ZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJo
132
+ ZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25z
133
+ IjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBw
134
+ YXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoi
135
+ ZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6
136
+ Imh0dHBzOi8vZGF0YS1hdHMuaW90LntSZWdpb259LntQYXJ0aXRpb25SZXN1
137
+ bHQjZG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0s
138
+ InR5cGUiOiJlbmRwb2ludCJ9XX1dfQ==
139
+
140
+ JSON
141
+ end
142
+ end
@@ -0,0 +1,113 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+
11
+ module Aws::IoTDataPlane
12
+ module Endpoints
13
+
14
+ class DeleteThingShadow
15
+ def self.build(context)
16
+ unless context.config.regional_endpoint
17
+ endpoint = context.config.endpoint.to_s
18
+ end
19
+ Aws::IoTDataPlane::EndpointParameters.new(
20
+ region: context.config.region,
21
+ use_dual_stack: context.config.use_dualstack_endpoint,
22
+ use_fips: context.config.use_fips_endpoint,
23
+ endpoint: endpoint,
24
+ )
25
+ end
26
+ end
27
+
28
+ class GetRetainedMessage
29
+ def self.build(context)
30
+ unless context.config.regional_endpoint
31
+ endpoint = context.config.endpoint.to_s
32
+ end
33
+ Aws::IoTDataPlane::EndpointParameters.new(
34
+ region: context.config.region,
35
+ use_dual_stack: context.config.use_dualstack_endpoint,
36
+ use_fips: context.config.use_fips_endpoint,
37
+ endpoint: endpoint,
38
+ )
39
+ end
40
+ end
41
+
42
+ class GetThingShadow
43
+ def self.build(context)
44
+ unless context.config.regional_endpoint
45
+ endpoint = context.config.endpoint.to_s
46
+ end
47
+ Aws::IoTDataPlane::EndpointParameters.new(
48
+ region: context.config.region,
49
+ use_dual_stack: context.config.use_dualstack_endpoint,
50
+ use_fips: context.config.use_fips_endpoint,
51
+ endpoint: endpoint,
52
+ )
53
+ end
54
+ end
55
+
56
+ class ListNamedShadowsForThing
57
+ def self.build(context)
58
+ unless context.config.regional_endpoint
59
+ endpoint = context.config.endpoint.to_s
60
+ end
61
+ Aws::IoTDataPlane::EndpointParameters.new(
62
+ region: context.config.region,
63
+ use_dual_stack: context.config.use_dualstack_endpoint,
64
+ use_fips: context.config.use_fips_endpoint,
65
+ endpoint: endpoint,
66
+ )
67
+ end
68
+ end
69
+
70
+ class ListRetainedMessages
71
+ def self.build(context)
72
+ unless context.config.regional_endpoint
73
+ endpoint = context.config.endpoint.to_s
74
+ end
75
+ Aws::IoTDataPlane::EndpointParameters.new(
76
+ region: context.config.region,
77
+ use_dual_stack: context.config.use_dualstack_endpoint,
78
+ use_fips: context.config.use_fips_endpoint,
79
+ endpoint: endpoint,
80
+ )
81
+ end
82
+ end
83
+
84
+ class Publish
85
+ def self.build(context)
86
+ unless context.config.regional_endpoint
87
+ endpoint = context.config.endpoint.to_s
88
+ end
89
+ Aws::IoTDataPlane::EndpointParameters.new(
90
+ region: context.config.region,
91
+ use_dual_stack: context.config.use_dualstack_endpoint,
92
+ use_fips: context.config.use_fips_endpoint,
93
+ endpoint: endpoint,
94
+ )
95
+ end
96
+ end
97
+
98
+ class UpdateThingShadow
99
+ def self.build(context)
100
+ unless context.config.regional_endpoint
101
+ endpoint = context.config.endpoint.to_s
102
+ end
103
+ Aws::IoTDataPlane::EndpointParameters.new(
104
+ region: context.config.region,
105
+ use_dual_stack: context.config.use_dualstack_endpoint,
106
+ use_fips: context.config.use_fips_endpoint,
107
+ endpoint: endpoint,
108
+ )
109
+ end
110
+ end
111
+
112
+ end
113
+ end
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+
11
+ module Aws::IoTDataPlane
12
+ module Plugins
13
+ class Endpoints < Seahorse::Client::Plugin
14
+ option(
15
+ :endpoint_provider,
16
+ doc_type: 'Aws::IoTDataPlane::EndpointProvider',
17
+ docstring: 'The endpoint provider used to resolve endpoints. Any '\
18
+ 'object that responds to `#resolve_endpoint(parameters)` '\
19
+ 'where `parameters` is a Struct similar to '\
20
+ '`Aws::IoTDataPlane::EndpointParameters`'
21
+ ) do |cfg|
22
+ Aws::IoTDataPlane::EndpointProvider.new
23
+ end
24
+
25
+ # @api private
26
+ class Handler < Seahorse::Client::Handler
27
+ def call(context)
28
+ # If endpoint was discovered, do not resolve or apply the endpoint.
29
+ unless context[:discovered_endpoint]
30
+ params = parameters_for_operation(context)
31
+ endpoint = context.config.endpoint_provider.resolve_endpoint(params)
32
+
33
+ context.http_request.endpoint = endpoint.url
34
+ apply_endpoint_headers(context, endpoint.headers)
35
+ end
36
+
37
+ context[:endpoint_params] = params
38
+ context[:auth_scheme] =
39
+ Aws::Endpoints.resolve_auth_scheme(context, endpoint)
40
+
41
+ @handler.call(context)
42
+ end
43
+
44
+ private
45
+
46
+ def apply_endpoint_headers(context, headers)
47
+ headers.each do |key, values|
48
+ value = values
49
+ .compact
50
+ .map { |s| Seahorse::Util.escape_header_list_string(s.to_s) }
51
+ .join(',')
52
+
53
+ context.http_request.headers[key] = value
54
+ end
55
+ end
56
+
57
+ def parameters_for_operation(context)
58
+ case context.operation_name
59
+ when :delete_thing_shadow
60
+ Aws::IoTDataPlane::Endpoints::DeleteThingShadow.build(context)
61
+ when :get_retained_message
62
+ Aws::IoTDataPlane::Endpoints::GetRetainedMessage.build(context)
63
+ when :get_thing_shadow
64
+ Aws::IoTDataPlane::Endpoints::GetThingShadow.build(context)
65
+ when :list_named_shadows_for_thing
66
+ Aws::IoTDataPlane::Endpoints::ListNamedShadowsForThing.build(context)
67
+ when :list_retained_messages
68
+ Aws::IoTDataPlane::Endpoints::ListRetainedMessages.build(context)
69
+ when :publish
70
+ Aws::IoTDataPlane::Endpoints::Publish.build(context)
71
+ when :update_thing_shadow
72
+ Aws::IoTDataPlane::Endpoints::UpdateThingShadow.build(context)
73
+ end
74
+ end
75
+ end
76
+
77
+ def add_handlers(handlers, _config)
78
+ handlers.add(Handler, step: :build, priority: 75)
79
+ end
80
+ end
81
+ end
82
+ end
@@ -283,6 +283,12 @@ module Aws::IoTDataPlane
283
283
  # qos: 1,
284
284
  # retain: false,
285
285
  # payload: "data",
286
+ # user_properties: "UserProperties",
287
+ # payload_format_indicator: "UNSPECIFIED_BYTES", # accepts UNSPECIFIED_BYTES, UTF8_DATA
288
+ # content_type: "ContentType",
289
+ # response_topic: "ResponseTopic",
290
+ # correlation_data: "CorrelationData",
291
+ # message_expiry: 1,
286
292
  # }
287
293
  #
288
294
  # @!attribute [rw] topic
@@ -290,7 +296,7 @@ module Aws::IoTDataPlane
290
296
  # @return [String]
291
297
  #
292
298
  # @!attribute [rw] qos
293
- # The Quality of Service (QoS) level.
299
+ # The Quality of Service (QoS) level. The default QoS level is 0.
294
300
  # @return [Integer]
295
301
  #
296
302
  # @!attribute [rw] retain
@@ -314,11 +320,67 @@ module Aws::IoTDataPlane
314
320
  # Services IoT Core.
315
321
  # @return [String]
316
322
  #
323
+ # @!attribute [rw] user_properties
324
+ # A JSON string that contains an array of JSON objects. If you don’t
325
+ # use Amazon Web Services SDK or CLI, you must encode the JSON string
326
+ # to base64 format before adding it to the HTTP header.
327
+ # `userProperties` is an HTTP header value in the API.
328
+ #
329
+ # The following example `userProperties` parameter is a JSON string
330
+ # which represents two User Properties. Note that it needs to be
331
+ # base64-encoded:
332
+ #
333
+ # `[\{"deviceName": "alpha"\}, \{"deviceCnt": "45"\}]`
334
+ # @return [String]
335
+ #
336
+ # @!attribute [rw] payload_format_indicator
337
+ # An `Enum` string value that indicates whether the payload is
338
+ # formatted as UTF-8. `payloadFormatIndicator` is an HTTP header value
339
+ # in the API.
340
+ # @return [String]
341
+ #
342
+ # @!attribute [rw] content_type
343
+ # A UTF-8 encoded string that describes the content of the publishing
344
+ # message.
345
+ # @return [String]
346
+ #
347
+ # @!attribute [rw] response_topic
348
+ # A UTF-8 encoded string that's used as the topic name for a response
349
+ # message. The response topic is used to describe the topic which the
350
+ # receiver should publish to as part of the request-response flow. The
351
+ # topic must not contain wildcard characters.
352
+ # @return [String]
353
+ #
354
+ # @!attribute [rw] correlation_data
355
+ # The base64-encoded binary data used by the sender of the request
356
+ # message to identify which request the response message is for when
357
+ # it's received. `correlationData` is an HTTP header value in the
358
+ # API.
359
+ # @return [String]
360
+ #
361
+ # @!attribute [rw] message_expiry
362
+ # A user-defined integer value that represents the message expiry
363
+ # interval in seconds. If absent, the message doesn't expire. For
364
+ # more information about the limits of `messageExpiry`, see [Amazon
365
+ # Web Services IoT Core message broker and protocol limits and quotas
366
+ # ][1] from the Amazon Web Services Reference Guide.
367
+ #
368
+ #
369
+ #
370
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/iot-core.html#message-broker-limits
371
+ # @return [Integer]
372
+ #
317
373
  class PublishRequest < Struct.new(
318
374
  :topic,
319
375
  :qos,
320
376
  :retain,
321
- :payload)
377
+ :payload,
378
+ :user_properties,
379
+ :payload_format_indicator,
380
+ :content_type,
381
+ :response_topic,
382
+ :correlation_data,
383
+ :message_expiry)
322
384
  SENSITIVE = []
323
385
  include Aws::Structure
324
386
  end
@@ -13,9 +13,13 @@ require 'aws-sigv4'
13
13
 
14
14
  require_relative 'aws-sdk-iotdataplane/types'
15
15
  require_relative 'aws-sdk-iotdataplane/client_api'
16
+ require_relative 'aws-sdk-iotdataplane/plugins/endpoints.rb'
16
17
  require_relative 'aws-sdk-iotdataplane/client'
17
18
  require_relative 'aws-sdk-iotdataplane/errors'
18
19
  require_relative 'aws-sdk-iotdataplane/resource'
20
+ require_relative 'aws-sdk-iotdataplane/endpoint_parameters'
21
+ require_relative 'aws-sdk-iotdataplane/endpoint_provider'
22
+ require_relative 'aws-sdk-iotdataplane/endpoints'
19
23
  require_relative 'aws-sdk-iotdataplane/customizations'
20
24
 
21
25
  # This module provides support for AWS IoT Data Plane. This module is available in the
@@ -48,6 +52,6 @@ require_relative 'aws-sdk-iotdataplane/customizations'
48
52
  # @!group service
49
53
  module Aws::IoTDataPlane
50
54
 
51
- GEM_VERSION = '1.39.0'
55
+ GEM_VERSION = '1.41.0'
52
56
 
53
57
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-iotdataplane
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.39.0
4
+ version: 1.41.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: 2022-03-30 00:00:00.000000000 Z
11
+ date: 2022-11-28 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.127.0
22
+ version: 3.165.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.127.0
32
+ version: 3.165.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -59,7 +59,11 @@ files:
59
59
  - lib/aws-sdk-iotdataplane/client.rb
60
60
  - lib/aws-sdk-iotdataplane/client_api.rb
61
61
  - lib/aws-sdk-iotdataplane/customizations.rb
62
+ - lib/aws-sdk-iotdataplane/endpoint_parameters.rb
63
+ - lib/aws-sdk-iotdataplane/endpoint_provider.rb
64
+ - lib/aws-sdk-iotdataplane/endpoints.rb
62
65
  - lib/aws-sdk-iotdataplane/errors.rb
66
+ - lib/aws-sdk-iotdataplane/plugins/endpoints.rb
63
67
  - lib/aws-sdk-iotdataplane/resource.rb
64
68
  - lib/aws-sdk-iotdataplane/types.rb
65
69
  homepage: https://github.com/aws/aws-sdk-ruby