aws_iot_device 0.1.5 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/README.md +155 -148
  4. data/aws_iot_device.gemspec +11 -11
  5. data/codeclimate.yml +6 -0
  6. data/lib/aws_iot_device.rb +2 -1
  7. data/lib/aws_iot_device/mqtt_adapter.rb +1 -2
  8. data/lib/aws_iot_device/mqtt_adapter/client.rb +74 -6
  9. data/lib/aws_iot_device/mqtt_adapter/paho_mqtt_adapter.rb +207 -0
  10. data/lib/aws_iot_device/mqtt_adapter/ruby_mqtt_adapter.rb +10 -4
  11. data/lib/aws_iot_device/mqtt_shadow_client.rb +1 -0
  12. data/lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb +133 -67
  13. data/lib/aws_iot_device/mqtt_shadow_client/shadow_action_manager.rb +229 -146
  14. data/lib/aws_iot_device/mqtt_shadow_client/shadow_client.rb +78 -20
  15. data/lib/aws_iot_device/mqtt_shadow_client/shadow_topic_manager.rb +51 -26
  16. data/lib/aws_iot_device/mqtt_shadow_client/topic_builder.rb +15 -30
  17. data/lib/aws_iot_device/version.rb +1 -1
  18. data/samples/config_shadow.rb +72 -0
  19. data/samples/mqtt_client_samples/mqtt_client_samples.rb +7 -59
  20. data/samples/shadow_action_samples/sample_shadow_action_update.rb +7 -61
  21. data/samples/shadow_client_samples/samples_shadow_client_block.rb +25 -0
  22. data/samples/shadow_client_samples/samples_shadow_client_delete.rb +9 -58
  23. data/samples/shadow_client_samples/samples_shadow_client_description.rb +64 -0
  24. data/samples/shadow_client_samples/samples_shadow_client_get.rb +11 -62
  25. data/samples/shadow_client_samples/samples_shadow_client_getting_started.rb +22 -0
  26. data/samples/shadow_client_samples/samples_shadow_client_update.rb +7 -58
  27. data/samples/shadow_topic_samples/sample_topic_manager.rb +10 -61
  28. metadata +71 -16
  29. data/lib/aws_iot_device/mqtt_adapter/mqtt_adapter.rb +0 -139
@@ -0,0 +1,64 @@
1
+ require "aws_iot_device"
2
+
3
+ host = "AWS IoT endpoint"
4
+ port = 8883
5
+ thing = "Thing Name"
6
+ root_ca_path = "Path to your CA certificate"
7
+ private_key_path = "Path to your private key"
8
+ certificate_path = "Path to your certificate"
9
+
10
+ # Create a new client with empty arguments
11
+ shadow_client = AwsIotDevice::MqttShadowClient::ShadowClient.new
12
+
13
+ # Configure the endpoint and the port the client would connect
14
+ shadow_client.configure_endpoint(host, port)
15
+
16
+ # Configure the credentials to enable a connection over TLS/SSL encryption
17
+ shadow_client.configure_credentials(root_ca_path, private_key_path, certificate_path)
18
+
19
+ # Create an event handler to bind the client with the remote thing in a persistent mode
20
+ shadow_client.create_shadow_handler_with_name(thing, true)
21
+
22
+ # Local timeout used for operation
23
+ timeout = 4
24
+
25
+ # Send a connect request to the AWS IoT platform
26
+ shadow_client.connect
27
+
28
+ # Register a callback for the get action as a block
29
+ shadow_client.register_get_callback do
30
+ puts "generic callback for get action"
31
+ end
32
+
33
+ # Register a callback for the delete action as a proc
34
+ shadow_client.register_delete_callback(proc { puts "generic callback for delete action"})
35
+
36
+ # Register a callback for the update action as a lambda
37
+ shadow_client.register_update_callback(lambda {|_message| puts "generic callback for update action"})
38
+
39
+ # Register a callback for the delta events
40
+ shadow_client.register_delta_callback do
41
+ puts "delta have been catch in a callback"
42
+ end
43
+
44
+ # Send a get request with an associated callback in a block
45
+ shadow_client.get_shadow do
46
+ puts "get thing"
47
+ end
48
+
49
+ # Send a delete request with an associated callback in a proc
50
+ shadow_client.delete_shadow(timeout, proc {puts "delete thing"})
51
+
52
+ # Send a udpate request with an associated callback in a lambda
53
+ shadow_client.update_shadow("{\"state\":{\"desired\":{\"message\":\"Hello\"}}}", timeout, lambda {|_message| puts "update thing"})
54
+
55
+ # Sleep to assert all opereation have been processed
56
+ sleep timeout
57
+
58
+ # Clear out the previously registered callback for each action
59
+ shadow_client.remove_get_callback
60
+ shadow_client.remove_update_callback
61
+ shadow_client.remove_delete_callback
62
+
63
+ # Explicit disconnect from the AWS IoT platform
64
+ shadow_client.disconnect
@@ -1,74 +1,23 @@
1
- require 'aws_iot_device'
2
- require 'optparse'
3
-
4
- options = {}
5
-
6
- OptionParser.new do |opts|
7
- opts.banner = "Basic usage basic_greeting.rb -c \"YOUR_CERTIFICATE_PATH\" -k \"YOUR_KEY_FILE_PATH\" -ca \"YOUR_ROOT_CA_PATH -H \"YOUR_ENDPOINT\" -p 8883\n"
8
-
9
- opts.separator ""
10
- opts.separator "Common options"
11
- opts.on_tail("-h", "--help", "--usage", "Show this message") do
12
- puts opts
13
- exit
14
- end
15
-
16
- opts.on("-H", "--host [END_POINT]", "The endpoint where you want to connect") do |host|
17
- options[:host] = host
18
- end
19
-
20
- opts.on("-p", "--port [MQTT_PORT]", "The port used for the connection Default is 8883") do |port|
21
- options[:port] = port
22
- end
23
-
24
- opts.on("-c", "--cert [CERT_FILE_PATH]", "The path to the certificate file of the private key.") do |cert|
25
- options[:cert] = cert
26
- end
27
-
28
- opts.on("-k", "--key [KEY_FILE_PATH]", "The path to private key file that would be used for encryption") do |key|
29
- options[:key] = key
30
- end
31
-
32
- opts.on("-a", "--root_ca [ROOT_CA_PATH]", "The path to the authority certification file") do |root_ca|
33
- options[:root_ca] = root_ca
34
- end
35
-
36
- opts.on("-t", "--thing [THING_NAME]", "The Thing name on which the action would be done") do |thing|
37
- options[:things] = thing
38
- end
39
- end.parse!(ARGV)
40
-
41
-
42
- host = options[:host]
43
- port = options[:port] || 8883
44
- certificate_path = options[:cert]
45
- private_key_path = options[:key]
46
- root_ca_path = options[:root_ca]
47
- thing = options[:things]
48
-
49
- my_shadow_client = AwsIotDevice::MqttShadowClient::ShadowClient.new
50
- my_shadow_client.configure_endpoint(host, port)
51
- my_shadow_client.configure_credentials(root_ca_path, private_key_path, certificate_path)
52
-
53
- my_shadow_client.connect
54
-
55
- my_shadow_client.create_shadow_handler_with_name(thing ,false)
1
+ $:.unshift(File.expand_path("../../../samples", __FILE__))
56
2
 
3
+ require 'aws_iot_device'
4
+ require 'config_shadow'
57
5
 
58
6
  filter_callback = Proc.new do |message|
59
7
  puts "Executing the specific callback for topic: #{message.topic}\n##########################################\n"
60
8
  end
61
9
 
10
+ my_shadow_client = setting_shadow
11
+
62
12
  puts "##### Starting test_shadow_client_get ######"
63
- my_shadow_client.get_shadow(filter_callback, 4)
64
- sleep 5
13
+ my_shadow_client.get_shadow(2, filter_callback)
65
14
 
66
15
  puts "##### Starting test_shadow_client_get ######"
67
- my_shadow_client.get_shadow(nil, 4)
68
- sleep 5
16
+ my_shadow_client.get_shadow do
17
+ puts "Block callback for a token"
18
+ end
69
19
 
70
20
  puts "##### Starting test_shadow_client_get ######"
71
- my_shadow_client.get_shadow(filter_callback, 4)
72
- sleep 5
21
+ my_shadow_client.get_shadow(2, filter_callback)
73
22
 
74
- my_shadow_client.disconnect
23
+ sleep 3
@@ -0,0 +1,22 @@
1
+ require "aws_iot_device"
2
+
3
+ host = "AWS IoT endpoint"
4
+ port = 8883
5
+ thing = "Thing Name"
6
+ root_ca_path = "Path to your CA certificate"
7
+ private_key_path = "Path to your private key"
8
+ certificate_path = "Path to your certificate"
9
+
10
+ shadow_client = AwsIotDevice::MqttShadowClient::ShadowClient.new
11
+ shadow_client.configure_endpoint(host, port)
12
+ shadow_client.configure_credentials(root_ca_path, private_key_path, certificate_path)
13
+ shadow_client.create_shadow_handler_with_name(thing, true)
14
+
15
+ shadow_client.connect
16
+ shadow_client.get_shadow do |_message|
17
+ # Do what you want with the get_shadow's answer
18
+ p ":)"
19
+ end
20
+ sleep 2 #Timer to ensure that the answer is received
21
+
22
+ shadow_client.disconnect
@@ -1,59 +1,7 @@
1
- require 'aws_iot_device'
2
- require 'optparse'
3
- require 'json'
4
-
5
- options = {}
6
-
7
- OptionParser.new do |opts|
8
- opts.banner = "Basic usage basic_greeting.rb -c \"YOUR_CERTIFICATE_PATH\" -k \"YOUR_KEY_FILE_PATH\" -ca \"YOUR_ROOT_CA_PATH -H \"YOUR_ENDPOINT\" -p 8883\n"
9
-
10
- opts.separator ""
11
- opts.separator "Common options"
12
- opts.on_tail("-h", "--help", "--usage", "Show this message") do
13
- puts opts
14
- exit
15
- end
16
-
17
- opts.on("-H", "--host [END_POINT]", "The endpoint where you want to connect") do |host|
18
- options[:host] = host
19
- end
20
-
21
- opts.on("-p", "--port [MQTT_PORT]", "The port used for the connection Default is 8883") do |port|
22
- options[:port] = port
23
- end
24
-
25
- opts.on("-c", "--cert [CERT_FILE_PATH]", "The path to the certificate file of the private key.") do |cert|
26
- options[:cert] = cert
27
- end
28
-
29
- opts.on("-k", "--key [KEY_FILE_PATH]", "The path to private key file that would be used for encryption") do |key|
30
- options[:key] = key
31
- end
32
-
33
- opts.on("-a", "--root_ca [ROOT_CA_PATH]", "The path to the authority certification file") do |root_ca|
34
- options[:root_ca] = root_ca
35
- end
36
-
37
- opts.on("-t", "--thing [THING_NAME]", "The Thing name on which the action would be done") do |thing|
38
- options[:things] = thing
39
- end
40
- end.parse!(ARGV)
41
-
1
+ $:.unshift(File.expand_path("../../../samples", __FILE__))
42
2
 
43
- host = options[:host]
44
- port = options[:port] || 8883
45
- certificate_path = options[:cert]
46
- private_key_path = options[:key]
47
- root_ca_path = options[:root_ca]
48
- thing = options[:things]
49
-
50
- my_shadow_client = AwsIotDevice::MqttShadowClient::ShadowClient.new
51
- my_shadow_client.configure_endpoint(host, port)
52
- my_shadow_client.configure_credentials(root_ca_path, private_key_path, certificate_path)
53
-
54
- my_shadow_client.connect
55
-
56
- my_shadow_client.create_shadow_handler_with_name(thing, true)
3
+ require 'aws_iot_device'
4
+ require 'config_shadow'
57
5
 
58
6
  filter_callback = Proc.new do |message|
59
7
  puts "Executing the specific callback for topic: #{message.topic}\n##########################################\n"
@@ -64,18 +12,19 @@ delta_callback = Proc.new do |delta|
64
12
  puts "Catching a new message : #{message["state"]["message"]}\n##########################################\n"
65
13
  end
66
14
 
15
+ my_shadow_client = setting_shadow
67
16
  my_shadow_client.register_delta_callback(delta_callback)
68
17
 
69
18
  n = 1
70
19
  3.times do
71
- puts "Type the message that you want to register in the thing [#{thing}]:"
20
+ puts "Type the message that you want to register in the thing:"
72
21
  entry = $stdin.readline()
73
22
  json_payload = "{\"state\":{\"desired\":{\"message\":\"#{entry.delete!("\n")}\"}}}"
74
- my_shadow_client.update_shadow(json_payload, filter_callback, 5)
23
+ my_shadow_client.update_shadow(json_payload, 5, filter_callback)
75
24
  puts "#{3 - n} Message(s) left"
76
- sleep 2
77
25
  n += 1
78
26
  end
79
27
 
28
+ sleep 3
80
29
 
81
30
  my_shadow_client.disconnect
@@ -1,61 +1,11 @@
1
- require "aws_iot_device"
2
- require 'optparse'
1
+ $:.unshift(File.expand_path("../../../samples", __FILE__))
3
2
 
4
- options = {}
3
+ require 'aws_iot_device'
4
+ require 'config_shadow'
5
5
 
6
- OptionParser.new do |opts|
7
- opts.banner = "Basic usage basic_greeting.rb -c \"YOUR_CERTIFICATE_PATH\" -k \"YOUR_KEY_FILE_PATH\" -ca \"YOUR_ROOT_CA_PATH -H \"YOUR_ENDPOINT\" -p 8883\n"
8
-
9
- opts.separator ""
10
- opts.separator "Common options"
11
- opts.on_tail("-h", "--help", "--usage", "Show this message") do
12
- puts opts
13
- exit
14
- end
15
-
16
- opts.on("-H", "--host [END_POINT]", "The endpoint where you want to connect") do |host|
17
- options[:host] = host
18
- end
19
-
20
- opts.on("-p", "--port [MQTT_PORT]", "The port used for the connection Default is 8883") do |port|
21
- options[:port] = port
22
- end
23
-
24
- opts.on("-c", "--cert [CERT_FILE_PATH]", "The path to the certificate file of the private key.") do |cert|
25
- options[:cert] = cert
26
- end
27
-
28
- opts.on("-k", "--key [KEY_FILE_PATH]", "The path to private key file that would be used for encryption") do |key|
29
- options[:key] = key
30
- end
31
-
32
- opts.on("-a", "--root_ca [ROOT_CA_PATH]", "The path to the authority certification file") do |root_ca|
33
- options[:root_ca] = root_ca
34
- end
6
+ mqtt_client = setting_mqtt_client
35
7
 
36
- opts.on("-t", "--thing [THING_NAME]", "The Thing name on which the action would be done") do |thing|
37
- options[:things] = thing
38
- end
39
- end.parse!(ARGV)
40
-
41
-
42
- host = options[:host]
43
- port = options[:port] || 8883
44
- certificate_path = options[:cert]
45
- private_key_path = options[:key]
46
- root_ca_path = options[:root_ca]
47
- thing = options[:things]
48
-
49
- manager = AwsIotDevice::MqttShadowClient::MqttManager.new(host: host,
50
- port: port,
51
- ssl: true,
52
- cert_file: certificate_path,
53
- key_file: private_key_path,
54
- ca_file: root_ca_path)
55
-
56
- manager.connect
57
-
58
- cli = AwsIotDevice::MqttShadowClient::ShadowTopicManager.new(manager)
8
+ topic_client = setting_topic_manager(mqtt_client)
59
9
 
60
10
  filter_callback = Proc.new do |message|
61
11
  puts "Received (through filtered callback) : "
@@ -64,14 +14,13 @@ filter_callback = Proc.new do |message|
64
14
  puts "###################"
65
15
  end
66
16
 
67
- cli.shadow_topic_subscribe(thing, "get", filter_callback)
68
-
69
- sleep 1
17
+ topic_client.shadow_topic_subscribe("get", filter_callback)
70
18
 
71
19
  4.times do
72
- cli.shadow_topic_publish(thing, "get", "")
73
- sleep 1
20
+ topic_client.shadow_topic_publish("get", "")
74
21
  end
75
22
 
76
- manager.disconnect
23
+ sleep 2
24
+
25
+ mqtt_client.disconnect
77
26
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws_iot_device
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pierre Goudet
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-09-08 00:00:00.000000000 Z
11
+ date: 2017-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.10'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: '1.10'
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,20 +27,29 @@ dependencies:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
29
  version: '1.10'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '1.10'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: pry
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.10.4
31
40
  - - ">="
32
41
  - !ruby/object:Gem::Version
33
- version: '0'
42
+ version: 0.10.4
34
43
  type: :development
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 0.10.4
38
50
  - - ">="
39
51
  - !ruby/object:Gem::Version
40
- version: '0'
52
+ version: 0.10.4
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: rake
43
55
  requirement: !ruby/object:Gem::Requirement
@@ -45,6 +57,9 @@ dependencies:
45
57
  - - "~>"
46
58
  - !ruby/object:Gem::Version
47
59
  version: '10.0'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '1.10'
48
63
  type: :development
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,20 +67,29 @@ dependencies:
52
67
  - - "~>"
53
68
  - !ruby/object:Gem::Version
54
69
  version: '10.0'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '1.10'
55
73
  - !ruby/object:Gem::Dependency
56
74
  name: rspec
57
75
  requirement: !ruby/object:Gem::Requirement
58
76
  requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: 3.5.0
59
80
  - - ">="
60
81
  - !ruby/object:Gem::Version
61
- version: '0'
82
+ version: 3.5.0
62
83
  type: :development
63
84
  prerelease: false
64
85
  version_requirements: !ruby/object:Gem::Requirement
65
86
  requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 3.5.0
66
90
  - - ">="
67
91
  - !ruby/object:Gem::Version
68
- version: '0'
92
+ version: 3.5.0
69
93
  - !ruby/object:Gem::Dependency
70
94
  name: facets
71
95
  requirement: !ruby/object:Gem::Requirement
@@ -73,6 +97,9 @@ dependencies:
73
97
  - - "~>"
74
98
  - !ruby/object:Gem::Version
75
99
  version: 3.1.0
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 3.1.0
76
103
  type: :runtime
77
104
  prerelease: false
78
105
  version_requirements: !ruby/object:Gem::Requirement
@@ -80,34 +107,49 @@ dependencies:
80
107
  - - "~>"
81
108
  - !ruby/object:Gem::Version
82
109
  version: 3.1.0
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 3.1.0
83
113
  - !ruby/object:Gem::Dependency
84
114
  name: json
85
115
  requirement: !ruby/object:Gem::Requirement
86
116
  requirements:
87
117
  - - "~>"
88
118
  - !ruby/object:Gem::Version
89
- version: 1.8.3
119
+ version: 2.0.2
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 2.0.2
90
123
  type: :runtime
91
124
  prerelease: false
92
125
  version_requirements: !ruby/object:Gem::Requirement
93
126
  requirements:
94
127
  - - "~>"
95
128
  - !ruby/object:Gem::Version
96
- version: 1.8.3
129
+ version: 2.0.2
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: 2.0.2
97
133
  - !ruby/object:Gem::Dependency
98
- name: mqtt
134
+ name: paho-mqtt
99
135
  requirement: !ruby/object:Gem::Requirement
100
136
  requirements:
101
137
  - - "~>"
102
138
  - !ruby/object:Gem::Version
103
- version: 0.4.0
139
+ version: 1.0.0
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 1.0.0
104
143
  type: :runtime
105
144
  prerelease: false
106
145
  version_requirements: !ruby/object:Gem::Requirement
107
146
  requirements:
108
147
  - - "~>"
109
148
  - !ruby/object:Gem::Version
110
- version: 0.4.0
149
+ version: 1.0.0
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 1.0.0
111
153
  - !ruby/object:Gem::Dependency
112
154
  name: timers
113
155
  requirement: !ruby/object:Gem::Requirement
@@ -115,6 +157,9 @@ dependencies:
115
157
  - - "~>"
116
158
  - !ruby/object:Gem::Version
117
159
  version: 4.1.1
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 4.1.1
118
163
  type: :runtime
119
164
  prerelease: false
120
165
  version_requirements: !ruby/object:Gem::Requirement
@@ -122,8 +167,12 @@ dependencies:
122
167
  - - "~>"
123
168
  - !ruby/object:Gem::Version
124
169
  version: 4.1.1
125
- description: A gem use to communicates with the Aws Iot platform through the MQTT
126
- protocol
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 4.1.1
173
+ description: The gem is using the MQTT protocol to execute the command defined by
174
+ the AWS IoT platform. A default MQTT client is included in the gem, however an adapter
175
+ system enables to plug another MQTT client.
127
176
  email:
128
177
  - p-goudet@ruby-dev.jp
129
178
  executables: []
@@ -139,10 +188,11 @@ files:
139
188
  - aws_iot_device.gemspec
140
189
  - bin/console
141
190
  - bin/setup
191
+ - codeclimate.yml
142
192
  - lib/aws_iot_device.rb
143
193
  - lib/aws_iot_device/mqtt_adapter.rb
144
194
  - lib/aws_iot_device/mqtt_adapter/client.rb
145
- - lib/aws_iot_device/mqtt_adapter/mqtt_adapter.rb
195
+ - lib/aws_iot_device/mqtt_adapter/paho_mqtt_adapter.rb
146
196
  - lib/aws_iot_device/mqtt_adapter/ruby_mqtt_adapter.rb
147
197
  - lib/aws_iot_device/mqtt_shadow_client.rb
148
198
  - lib/aws_iot_device/mqtt_shadow_client/json_payload_parser.rb
@@ -153,15 +203,19 @@ files:
153
203
  - lib/aws_iot_device/mqtt_shadow_client/token_creator.rb
154
204
  - lib/aws_iot_device/mqtt_shadow_client/topic_builder.rb
155
205
  - lib/aws_iot_device/version.rb
206
+ - samples/config_shadow.rb
156
207
  - samples/mqtt_client_samples/mqtt_client_samples.rb
157
208
  - samples/shadow_action_samples/sample_shadow_action_update.rb
209
+ - samples/shadow_client_samples/samples_shadow_client_block.rb
158
210
  - samples/shadow_client_samples/samples_shadow_client_delete.rb
211
+ - samples/shadow_client_samples/samples_shadow_client_description.rb
159
212
  - samples/shadow_client_samples/samples_shadow_client_get.rb
213
+ - samples/shadow_client_samples/samples_shadow_client_getting_started.rb
160
214
  - samples/shadow_client_samples/samples_shadow_client_update.rb
161
215
  - samples/shadow_topic_samples/sample_topic_manager.rb
162
216
  homepage: https://github.com/RubyDevInc/aws-iot-device-sdk-ruby
163
217
  licenses:
164
- - Apache 2.0
218
+ - Apache-2.0
165
219
  metadata: {}
166
220
  post_install_message:
167
221
  rdoc_options: []
@@ -182,5 +236,6 @@ rubyforge_project:
182
236
  rubygems_version: 2.4.5.1
183
237
  signing_key:
184
238
  specification_version: 4
185
- summary: A gem use to communicates with the Aws Iot platform through the MQTT protocol
239
+ summary: The ruby version of the AWS IoT Device SDK. It enables to connect to AWS
240
+ IoT platform and manage Things.
186
241
  test_files: []