aws-sdk-greengrassv2 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,220 @@
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/master/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::GreengrassV2
11
+
12
+ # When GreengrassV2 returns an error response, the Ruby SDK constructs and raises an error.
13
+ # These errors all extend Aws::GreengrassV2::Errors::ServiceError < {Aws::Errors::ServiceError}
14
+ #
15
+ # You can rescue all GreengrassV2 errors using ServiceError:
16
+ #
17
+ # begin
18
+ # # do stuff
19
+ # rescue Aws::GreengrassV2::Errors::ServiceError
20
+ # # rescues all GreengrassV2 API errors
21
+ # end
22
+ #
23
+ #
24
+ # ## Request Context
25
+ # ServiceError objects have a {Aws::Errors::ServiceError#context #context} method that returns
26
+ # information about the request that generated the error.
27
+ # See {Seahorse::Client::RequestContext} for more information.
28
+ #
29
+ # ## Error Classes
30
+ # * {AccessDeniedException}
31
+ # * {ConflictException}
32
+ # * {InternalServerException}
33
+ # * {ResourceNotFoundException}
34
+ # * {ServiceQuotaExceededException}
35
+ # * {ThrottlingException}
36
+ # * {ValidationException}
37
+ #
38
+ # Additionally, error classes are dynamically generated for service errors based on the error code
39
+ # if they are not defined above.
40
+ module Errors
41
+
42
+ extend Aws::Errors::DynamicErrors
43
+
44
+ class AccessDeniedException < ServiceError
45
+
46
+ # @param [Seahorse::Client::RequestContext] context
47
+ # @param [String] message
48
+ # @param [Aws::GreengrassV2::Types::AccessDeniedException] data
49
+ def initialize(context, message, data = Aws::EmptyStructure.new)
50
+ super(context, message, data)
51
+ end
52
+
53
+ # @return [String]
54
+ def message
55
+ @message || @data[:message]
56
+ end
57
+ end
58
+
59
+ class ConflictException < ServiceError
60
+
61
+ # @param [Seahorse::Client::RequestContext] context
62
+ # @param [String] message
63
+ # @param [Aws::GreengrassV2::Types::ConflictException] data
64
+ def initialize(context, message, data = Aws::EmptyStructure.new)
65
+ super(context, message, data)
66
+ end
67
+
68
+ # @return [String]
69
+ def message
70
+ @message || @data[:message]
71
+ end
72
+
73
+ # @return [String]
74
+ def resource_id
75
+ @data[:resource_id]
76
+ end
77
+
78
+ # @return [String]
79
+ def resource_type
80
+ @data[:resource_type]
81
+ end
82
+ end
83
+
84
+ class InternalServerException < ServiceError
85
+
86
+ # @param [Seahorse::Client::RequestContext] context
87
+ # @param [String] message
88
+ # @param [Aws::GreengrassV2::Types::InternalServerException] data
89
+ def initialize(context, message, data = Aws::EmptyStructure.new)
90
+ super(context, message, data)
91
+ end
92
+
93
+ # @return [String]
94
+ def message
95
+ @message || @data[:message]
96
+ end
97
+
98
+ # @return [String]
99
+ def retry_after_seconds
100
+ @data[:retry_after_seconds]
101
+ end
102
+ end
103
+
104
+ class ResourceNotFoundException < ServiceError
105
+
106
+ # @param [Seahorse::Client::RequestContext] context
107
+ # @param [String] message
108
+ # @param [Aws::GreengrassV2::Types::ResourceNotFoundException] data
109
+ def initialize(context, message, data = Aws::EmptyStructure.new)
110
+ super(context, message, data)
111
+ end
112
+
113
+ # @return [String]
114
+ def message
115
+ @message || @data[:message]
116
+ end
117
+
118
+ # @return [String]
119
+ def resource_id
120
+ @data[:resource_id]
121
+ end
122
+
123
+ # @return [String]
124
+ def resource_type
125
+ @data[:resource_type]
126
+ end
127
+ end
128
+
129
+ class ServiceQuotaExceededException < ServiceError
130
+
131
+ # @param [Seahorse::Client::RequestContext] context
132
+ # @param [String] message
133
+ # @param [Aws::GreengrassV2::Types::ServiceQuotaExceededException] data
134
+ def initialize(context, message, data = Aws::EmptyStructure.new)
135
+ super(context, message, data)
136
+ end
137
+
138
+ # @return [String]
139
+ def message
140
+ @message || @data[:message]
141
+ end
142
+
143
+ # @return [String]
144
+ def resource_id
145
+ @data[:resource_id]
146
+ end
147
+
148
+ # @return [String]
149
+ def resource_type
150
+ @data[:resource_type]
151
+ end
152
+
153
+ # @return [String]
154
+ def quota_code
155
+ @data[:quota_code]
156
+ end
157
+
158
+ # @return [String]
159
+ def service_code
160
+ @data[:service_code]
161
+ end
162
+ end
163
+
164
+ class ThrottlingException < ServiceError
165
+
166
+ # @param [Seahorse::Client::RequestContext] context
167
+ # @param [String] message
168
+ # @param [Aws::GreengrassV2::Types::ThrottlingException] data
169
+ def initialize(context, message, data = Aws::EmptyStructure.new)
170
+ super(context, message, data)
171
+ end
172
+
173
+ # @return [String]
174
+ def message
175
+ @message || @data[:message]
176
+ end
177
+
178
+ # @return [String]
179
+ def quota_code
180
+ @data[:quota_code]
181
+ end
182
+
183
+ # @return [String]
184
+ def service_code
185
+ @data[:service_code]
186
+ end
187
+
188
+ # @return [String]
189
+ def retry_after_seconds
190
+ @data[:retry_after_seconds]
191
+ end
192
+ end
193
+
194
+ class ValidationException < ServiceError
195
+
196
+ # @param [Seahorse::Client::RequestContext] context
197
+ # @param [String] message
198
+ # @param [Aws::GreengrassV2::Types::ValidationException] data
199
+ def initialize(context, message, data = Aws::EmptyStructure.new)
200
+ super(context, message, data)
201
+ end
202
+
203
+ # @return [String]
204
+ def message
205
+ @message || @data[:message]
206
+ end
207
+
208
+ # @return [String]
209
+ def reason
210
+ @data[:reason]
211
+ end
212
+
213
+ # @return [String]
214
+ def fields
215
+ @data[:fields]
216
+ end
217
+ end
218
+
219
+ end
220
+ end
@@ -0,0 +1,26 @@
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/master/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::GreengrassV2
11
+
12
+ class Resource
13
+
14
+ # @param options ({})
15
+ # @option options [Client] :client
16
+ def initialize(options = {})
17
+ @client = options[:client] || Client.new(options)
18
+ end
19
+
20
+ # @return [Client]
21
+ def client
22
+ @client
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,3018 @@
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/master/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::GreengrassV2
11
+ module Types
12
+
13
+ # You don't have permission to perform the action.
14
+ #
15
+ # @!attribute [rw] message
16
+ # @return [String]
17
+ #
18
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/AccessDeniedException AWS API Documentation
19
+ #
20
+ class AccessDeniedException < Struct.new(
21
+ :message)
22
+ SENSITIVE = []
23
+ include Aws::Structure
24
+ end
25
+
26
+ # @note When making an API call, you may pass CancelDeploymentRequest
27
+ # data as a hash:
28
+ #
29
+ # {
30
+ # deployment_id: "NonEmptyString", # required
31
+ # }
32
+ #
33
+ # @!attribute [rw] deployment_id
34
+ # The ID of the deployment.
35
+ # @return [String]
36
+ #
37
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CancelDeploymentRequest AWS API Documentation
38
+ #
39
+ class CancelDeploymentRequest < Struct.new(
40
+ :deployment_id)
41
+ SENSITIVE = []
42
+ include Aws::Structure
43
+ end
44
+
45
+ # @!attribute [rw] message
46
+ # A message that communicates if the cancel was successful.
47
+ # @return [String]
48
+ #
49
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CancelDeploymentResponse AWS API Documentation
50
+ #
51
+ class CancelDeploymentResponse < Struct.new(
52
+ :message)
53
+ SENSITIVE = []
54
+ include Aws::Structure
55
+ end
56
+
57
+ # Contains the status of a component in the AWS IoT Greengrass service.
58
+ #
59
+ # @!attribute [rw] component_state
60
+ # The state of the component.
61
+ # @return [String]
62
+ #
63
+ # @!attribute [rw] message
64
+ # A message that communicates details, such as errors, about the
65
+ # status of the component.
66
+ # @return [String]
67
+ #
68
+ # @!attribute [rw] errors
69
+ # A dictionary of errors that communicate why the component is in an
70
+ # error state. For example, if AWS IoT Greengrass can't access an
71
+ # artifact for the component, then `errors` contains the artifact's
72
+ # URI as a key, and the error message as the value for that key.
73
+ # @return [Hash<String,String>]
74
+ #
75
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CloudComponentStatus AWS API Documentation
76
+ #
77
+ class CloudComponentStatus < Struct.new(
78
+ :component_state,
79
+ :message,
80
+ :errors)
81
+ SENSITIVE = []
82
+ include Aws::Structure
83
+ end
84
+
85
+ # Contains information about a component.
86
+ #
87
+ # @!attribute [rw] arn
88
+ # The [ARN][1] of the component version.
89
+ #
90
+ #
91
+ #
92
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
93
+ # @return [String]
94
+ #
95
+ # @!attribute [rw] component_name
96
+ # The name of the component.
97
+ # @return [String]
98
+ #
99
+ # @!attribute [rw] latest_version
100
+ # The latest version of the component and its details.
101
+ # @return [Types::ComponentLatestVersion]
102
+ #
103
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/Component AWS API Documentation
104
+ #
105
+ class Component < Struct.new(
106
+ :arn,
107
+ :component_name,
108
+ :latest_version)
109
+ SENSITIVE = []
110
+ include Aws::Structure
111
+ end
112
+
113
+ # Contains information about a component that is a candidate to deploy
114
+ # to a AWS IoT Greengrass core device.
115
+ #
116
+ # @note When making an API call, you may pass ComponentCandidate
117
+ # data as a hash:
118
+ #
119
+ # {
120
+ # component_name: "ComponentNameString",
121
+ # component_version: "ComponentVersionString",
122
+ # version_requirements: {
123
+ # "NonEmptyString" => "NonEmptyString",
124
+ # },
125
+ # }
126
+ #
127
+ # @!attribute [rw] component_name
128
+ # The name of the component.
129
+ # @return [String]
130
+ #
131
+ # @!attribute [rw] component_version
132
+ # The version of the component.
133
+ # @return [String]
134
+ #
135
+ # @!attribute [rw] version_requirements
136
+ # The version requirements for the component's dependencies. AWS IoT
137
+ # Greengrass core devices get the version requirements from component
138
+ # recipes.
139
+ #
140
+ # AWS IoT Greengrass V2 uses semantic version constraints. For more
141
+ # information, see [Semantic Versioning][1].
142
+ #
143
+ #
144
+ #
145
+ # [1]: https://semver.org/
146
+ # @return [Hash<String,String>]
147
+ #
148
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ComponentCandidate AWS API Documentation
149
+ #
150
+ class ComponentCandidate < Struct.new(
151
+ :component_name,
152
+ :component_version,
153
+ :version_requirements)
154
+ SENSITIVE = []
155
+ include Aws::Structure
156
+ end
157
+
158
+ # Contains information about a deployment's update to a component's
159
+ # configuration on Greengrass core devices. For more information, see
160
+ # [Update component configurations][1] in the *AWS IoT Greengrass V2
161
+ # Developer Guide*.
162
+ #
163
+ #
164
+ #
165
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html
166
+ #
167
+ # @note When making an API call, you may pass ComponentConfigurationUpdate
168
+ # data as a hash:
169
+ #
170
+ # {
171
+ # merge: "ComponentConfigurationString",
172
+ # reset: ["ComponentConfigurationPath"],
173
+ # }
174
+ #
175
+ # @!attribute [rw] merge
176
+ # A serialized JSON string that contains the configuration object to
177
+ # merge to target devices. The core device merges this configuration
178
+ # with the component's existing configuration. If this is the first
179
+ # time a component deploys on a device, the core device merges this
180
+ # configuration with the component's default configuration. This
181
+ # means that the core device keeps it's existing configuration for
182
+ # keys and values that you don't specify in this object. For more
183
+ # information, see [Merge configuration updates][1] in the *AWS IoT
184
+ # Greengrass V2 Developer Guide*.
185
+ #
186
+ #
187
+ #
188
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html#merge-configuration-update
189
+ # @return [String]
190
+ #
191
+ # @!attribute [rw] reset
192
+ # The list of configuration nodes to reset to default values on target
193
+ # devices. Use JSON pointers to specify each node to reset. JSON
194
+ # pointers start with a forward slash (`/`) and use forward slashes to
195
+ # separate the key for each level in the object. For more information,
196
+ # see the [JSON pointer specification][1] and [Reset configuration
197
+ # updates][2] in the *AWS IoT Greengrass V2 Developer Guide*.
198
+ #
199
+ #
200
+ #
201
+ # [1]: https://tools.ietf.org/html/rfc6901
202
+ # [2]: https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html#reset-configuration-update
203
+ # @return [Array<String>]
204
+ #
205
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ComponentConfigurationUpdate AWS API Documentation
206
+ #
207
+ class ComponentConfigurationUpdate < Struct.new(
208
+ :merge,
209
+ :reset)
210
+ SENSITIVE = []
211
+ include Aws::Structure
212
+ end
213
+
214
+ # Contains information about a component dependency for a Lambda
215
+ # function component.
216
+ #
217
+ # @note When making an API call, you may pass ComponentDependencyRequirement
218
+ # data as a hash:
219
+ #
220
+ # {
221
+ # version_requirement: "NonEmptyString",
222
+ # dependency_type: "HARD", # accepts HARD, SOFT
223
+ # }
224
+ #
225
+ # @!attribute [rw] version_requirement
226
+ # The component version requirement for the component dependency.
227
+ #
228
+ # AWS IoT Greengrass V2 uses semantic version constraints. For more
229
+ # information, see [Semantic Versioning][1].
230
+ #
231
+ #
232
+ #
233
+ # [1]: https://semver.org/
234
+ # @return [String]
235
+ #
236
+ # @!attribute [rw] dependency_type
237
+ # The type of this dependency. Choose from the following options:
238
+ #
239
+ # * `SOFT` – The component doesn't restart if the dependency changes
240
+ # state.
241
+ #
242
+ # * `HARD` – The component restarts if the dependency changes state.
243
+ #
244
+ # Default: `HARD`
245
+ # @return [String]
246
+ #
247
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ComponentDependencyRequirement AWS API Documentation
248
+ #
249
+ class ComponentDependencyRequirement < Struct.new(
250
+ :version_requirement,
251
+ :dependency_type)
252
+ SENSITIVE = []
253
+ include Aws::Structure
254
+ end
255
+
256
+ # Contains information about a component to deploy.
257
+ #
258
+ # @note When making an API call, you may pass ComponentDeploymentSpecification
259
+ # data as a hash:
260
+ #
261
+ # {
262
+ # component_version: "ComponentVersionString",
263
+ # configuration_update: {
264
+ # merge: "ComponentConfigurationString",
265
+ # reset: ["ComponentConfigurationPath"],
266
+ # },
267
+ # run_with: {
268
+ # posix_user: "NonEmptyString",
269
+ # },
270
+ # }
271
+ #
272
+ # @!attribute [rw] component_version
273
+ # The version of the component.
274
+ # @return [String]
275
+ #
276
+ # @!attribute [rw] configuration_update
277
+ # The configuration updates to deploy for the component. You can
278
+ # define *reset* updates and *merge* updates. A reset updates the keys
279
+ # that you specify to the default configuration for the component. A
280
+ # merge updates the core device's component configuration with the
281
+ # keys and values that you specify. The AWS IoT Greengrass Core
282
+ # software applies reset updates before it applies merge updates. For
283
+ # more information, see [Update component configurations][1] in the
284
+ # *AWS IoT Greengrass V2 Developer Guide*.
285
+ #
286
+ #
287
+ #
288
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html
289
+ # @return [Types::ComponentConfigurationUpdate]
290
+ #
291
+ # @!attribute [rw] run_with
292
+ # The system user and group that the AWS IoT Greengrass Core software
293
+ # uses to run component processes on the core device. If you omit this
294
+ # parameter, the AWS IoT Greengrass Core software uses the system user
295
+ # and group that you configure for the core device. For more
296
+ # information, see [Configure the user and group that run
297
+ # components][1] in the *AWS IoT Greengrass V2 Developer Guide*.
298
+ #
299
+ #
300
+ #
301
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user
302
+ # @return [Types::ComponentRunWith]
303
+ #
304
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ComponentDeploymentSpecification AWS API Documentation
305
+ #
306
+ class ComponentDeploymentSpecification < Struct.new(
307
+ :component_version,
308
+ :configuration_update,
309
+ :run_with)
310
+ SENSITIVE = []
311
+ include Aws::Structure
312
+ end
313
+
314
+ # Contains information about the latest version of a component.
315
+ #
316
+ # @!attribute [rw] arn
317
+ # The [ARN][1] of the component version.
318
+ #
319
+ #
320
+ #
321
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
322
+ # @return [String]
323
+ #
324
+ # @!attribute [rw] component_version
325
+ # The version of the component.
326
+ # @return [String]
327
+ #
328
+ # @!attribute [rw] creation_timestamp
329
+ # The time at which the component was created, expressed in ISO 8601
330
+ # format.
331
+ # @return [Time]
332
+ #
333
+ # @!attribute [rw] description
334
+ # The description of the component version.
335
+ # @return [String]
336
+ #
337
+ # @!attribute [rw] publisher
338
+ # The publisher of the component version.
339
+ # @return [String]
340
+ #
341
+ # @!attribute [rw] platforms
342
+ # The platforms that the component version supports.
343
+ # @return [Array<Types::ComponentPlatform>]
344
+ #
345
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ComponentLatestVersion AWS API Documentation
346
+ #
347
+ class ComponentLatestVersion < Struct.new(
348
+ :arn,
349
+ :component_version,
350
+ :creation_timestamp,
351
+ :description,
352
+ :publisher,
353
+ :platforms)
354
+ SENSITIVE = []
355
+ include Aws::Structure
356
+ end
357
+
358
+ # Contains information about a platform that a component supports.
359
+ #
360
+ # @note When making an API call, you may pass ComponentPlatform
361
+ # data as a hash:
362
+ #
363
+ # {
364
+ # name: "NonEmptyString",
365
+ # attributes: {
366
+ # "NonEmptyString" => "NonEmptyString",
367
+ # },
368
+ # }
369
+ #
370
+ # @!attribute [rw] name
371
+ # The friendly name of the platform. This name helps you identify the
372
+ # platform.
373
+ #
374
+ # If you omit this parameter, AWS IoT Greengrass creates a friendly
375
+ # name from the `os` and `architecture` of the platform.
376
+ # @return [String]
377
+ #
378
+ # @!attribute [rw] attributes
379
+ # A dictionary of attributes for the platform. The AWS IoT Greengrass
380
+ # Core software defines the `os` and `platform` by default. You can
381
+ # specify additional platform attributes for a core device when you
382
+ # deploy the AWS IoT Greengrass nucleus component. For more
383
+ # information, see the [AWS IoT Greengrass nucleus component][1] in
384
+ # the *AWS IoT Greengrass V2 Developer Guide*.
385
+ #
386
+ #
387
+ #
388
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html
389
+ # @return [Hash<String,String>]
390
+ #
391
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ComponentPlatform AWS API Documentation
392
+ #
393
+ class ComponentPlatform < Struct.new(
394
+ :name,
395
+ :attributes)
396
+ SENSITIVE = []
397
+ include Aws::Structure
398
+ end
399
+
400
+ # Contains information system user and group that the AWS IoT Greengrass
401
+ # Core software uses to run component processes on the core device. For
402
+ # more information, see [Configure the user and group that run
403
+ # components][1] in the *AWS IoT Greengrass V2 Developer Guide*.
404
+ #
405
+ #
406
+ #
407
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user
408
+ #
409
+ # @note When making an API call, you may pass ComponentRunWith
410
+ # data as a hash:
411
+ #
412
+ # {
413
+ # posix_user: "NonEmptyString",
414
+ # }
415
+ #
416
+ # @!attribute [rw] posix_user
417
+ # The POSIX system user and (optional) group to use to run this
418
+ # component. Specify the user and group separated by a colon (`:`) in
419
+ # the following format: `user:group`. The group is optional. If you
420
+ # don't specify a group, the AWS IoT Greengrass Core software uses
421
+ # the primary user for the group.
422
+ # @return [String]
423
+ #
424
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ComponentRunWith AWS API Documentation
425
+ #
426
+ class ComponentRunWith < Struct.new(
427
+ :posix_user)
428
+ SENSITIVE = []
429
+ include Aws::Structure
430
+ end
431
+
432
+ # Contains information about a component version in a list.
433
+ #
434
+ # @!attribute [rw] component_name
435
+ # The name of the component.
436
+ # @return [String]
437
+ #
438
+ # @!attribute [rw] component_version
439
+ # The version of the component.
440
+ # @return [String]
441
+ #
442
+ # @!attribute [rw] arn
443
+ # The [ARN][1] of the component version.
444
+ #
445
+ #
446
+ #
447
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
448
+ # @return [String]
449
+ #
450
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ComponentVersionListItem AWS API Documentation
451
+ #
452
+ class ComponentVersionListItem < Struct.new(
453
+ :component_name,
454
+ :component_version,
455
+ :arn)
456
+ SENSITIVE = []
457
+ include Aws::Structure
458
+ end
459
+
460
+ # Your request has conflicting operations. This can occur if you're
461
+ # trying to perform more than one operation on the same resource at the
462
+ # same time.
463
+ #
464
+ # @!attribute [rw] message
465
+ # @return [String]
466
+ #
467
+ # @!attribute [rw] resource_id
468
+ # The ID of the resource that conflicts with the request.
469
+ # @return [String]
470
+ #
471
+ # @!attribute [rw] resource_type
472
+ # The type of the resource that conflicts with the request.
473
+ # @return [String]
474
+ #
475
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ConflictException AWS API Documentation
476
+ #
477
+ class ConflictException < Struct.new(
478
+ :message,
479
+ :resource_id,
480
+ :resource_type)
481
+ SENSITIVE = []
482
+ include Aws::Structure
483
+ end
484
+
485
+ # Contains information about a AWS IoT Greengrass core device, which is
486
+ # an AWS IoT thing that runs the AWS IoT Greengrass Core software.
487
+ #
488
+ # @!attribute [rw] core_device_thing_name
489
+ # The name of the core device. This is also the name of the AWS IoT
490
+ # thing.
491
+ # @return [String]
492
+ #
493
+ # @!attribute [rw] status
494
+ # The status of the core device. Core devices can have the following
495
+ # statuses:
496
+ #
497
+ # * `HEALTHY` – The AWS IoT Greengrass Core software and all
498
+ # components run on the core device without issue.
499
+ #
500
+ # * `UNHEALTHY` – The AWS IoT Greengrass Core software or a component
501
+ # is in a failed state on the core device.
502
+ # @return [String]
503
+ #
504
+ # @!attribute [rw] last_status_update_timestamp
505
+ # The time at which the core device's status last updated, expressed
506
+ # in ISO 8601 format.
507
+ # @return [Time]
508
+ #
509
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CoreDevice AWS API Documentation
510
+ #
511
+ class CoreDevice < Struct.new(
512
+ :core_device_thing_name,
513
+ :status,
514
+ :last_status_update_timestamp)
515
+ SENSITIVE = []
516
+ include Aws::Structure
517
+ end
518
+
519
+ # @note When making an API call, you may pass CreateComponentVersionRequest
520
+ # data as a hash:
521
+ #
522
+ # {
523
+ # inline_recipe: "data",
524
+ # lambda_function: {
525
+ # lambda_arn: "LambdaFunctionARNWithVersionNumber", # required
526
+ # component_name: "ComponentNameString",
527
+ # component_version: "ComponentVersionString",
528
+ # component_platforms: [
529
+ # {
530
+ # name: "NonEmptyString",
531
+ # attributes: {
532
+ # "NonEmptyString" => "NonEmptyString",
533
+ # },
534
+ # },
535
+ # ],
536
+ # component_dependencies: {
537
+ # "NonEmptyString" => {
538
+ # version_requirement: "NonEmptyString",
539
+ # dependency_type: "HARD", # accepts HARD, SOFT
540
+ # },
541
+ # },
542
+ # component_lambda_parameters: {
543
+ # event_sources: [
544
+ # {
545
+ # topic: "TopicString", # required
546
+ # type: "PUB_SUB", # required, accepts PUB_SUB, IOT_CORE
547
+ # },
548
+ # ],
549
+ # max_queue_size: 1,
550
+ # max_instances_count: 1,
551
+ # max_idle_time_in_seconds: 1,
552
+ # timeout_in_seconds: 1,
553
+ # status_timeout_in_seconds: 1,
554
+ # pinned: false,
555
+ # input_payload_encoding_type: "json", # accepts json, binary
556
+ # exec_args: ["LambdaExecArg"],
557
+ # environment_variables: {
558
+ # "NonEmptyString" => "String",
559
+ # },
560
+ # linux_process_params: {
561
+ # isolation_mode: "GreengrassContainer", # accepts GreengrassContainer, NoContainer
562
+ # container_params: {
563
+ # memory_size_in_kb: 1,
564
+ # mount_ro_sysfs: false,
565
+ # volumes: [
566
+ # {
567
+ # source_path: "FileSystemPath", # required
568
+ # destination_path: "FileSystemPath", # required
569
+ # permission: "ro", # accepts ro, rw
570
+ # add_group_owner: false,
571
+ # },
572
+ # ],
573
+ # devices: [
574
+ # {
575
+ # path: "FileSystemPath", # required
576
+ # permission: "ro", # accepts ro, rw
577
+ # add_group_owner: false,
578
+ # },
579
+ # ],
580
+ # },
581
+ # },
582
+ # },
583
+ # },
584
+ # tags: {
585
+ # "TagKey" => "TagValue",
586
+ # },
587
+ # }
588
+ #
589
+ # @!attribute [rw] inline_recipe
590
+ # The recipe to use to create the component. The recipe defines the
591
+ # component's metadata, parameters, dependencies, lifecycle,
592
+ # artifacts, and platform compatibility.
593
+ #
594
+ # You must specify either `inlineRecipe` or `lambdaFunction`.
595
+ # @return [String]
596
+ #
597
+ # @!attribute [rw] lambda_function
598
+ # The parameters to create a component from a Lambda function.
599
+ #
600
+ # You must specify either `inlineRecipe` or `lambdaFunction`.
601
+ # @return [Types::LambdaFunctionRecipeSource]
602
+ #
603
+ # @!attribute [rw] tags
604
+ # A list of key-value pairs that contain metadata for the resource.
605
+ # For more information, see [Tag your resources][1] in the *AWS IoT
606
+ # Greengrass V2 Developer Guide*.
607
+ #
608
+ #
609
+ #
610
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/tag-resources.html
611
+ # @return [Hash<String,String>]
612
+ #
613
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CreateComponentVersionRequest AWS API Documentation
614
+ #
615
+ class CreateComponentVersionRequest < Struct.new(
616
+ :inline_recipe,
617
+ :lambda_function,
618
+ :tags)
619
+ SENSITIVE = []
620
+ include Aws::Structure
621
+ end
622
+
623
+ # @!attribute [rw] arn
624
+ # The [ARN][1] of the component version.
625
+ #
626
+ #
627
+ #
628
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
629
+ # @return [String]
630
+ #
631
+ # @!attribute [rw] component_name
632
+ # The name of the component.
633
+ # @return [String]
634
+ #
635
+ # @!attribute [rw] component_version
636
+ # The version of the component.
637
+ # @return [String]
638
+ #
639
+ # @!attribute [rw] creation_timestamp
640
+ # The time at which the component was created, expressed in ISO 8601
641
+ # format.
642
+ # @return [Time]
643
+ #
644
+ # @!attribute [rw] status
645
+ # The status of the component version in AWS IoT Greengrass V2. This
646
+ # status is different from the status of the component on a core
647
+ # device.
648
+ # @return [Types::CloudComponentStatus]
649
+ #
650
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CreateComponentVersionResponse AWS API Documentation
651
+ #
652
+ class CreateComponentVersionResponse < Struct.new(
653
+ :arn,
654
+ :component_name,
655
+ :component_version,
656
+ :creation_timestamp,
657
+ :status)
658
+ SENSITIVE = []
659
+ include Aws::Structure
660
+ end
661
+
662
+ # @note When making an API call, you may pass CreateDeploymentRequest
663
+ # data as a hash:
664
+ #
665
+ # {
666
+ # target_arn: "TargetARN", # required
667
+ # deployment_name: "NonEmptyString",
668
+ # components: {
669
+ # "NonEmptyString" => {
670
+ # component_version: "ComponentVersionString",
671
+ # configuration_update: {
672
+ # merge: "ComponentConfigurationString",
673
+ # reset: ["ComponentConfigurationPath"],
674
+ # },
675
+ # run_with: {
676
+ # posix_user: "NonEmptyString",
677
+ # },
678
+ # },
679
+ # },
680
+ # iot_job_configuration: {
681
+ # job_executions_rollout_config: {
682
+ # exponential_rate: {
683
+ # base_rate_per_minute: 1, # required
684
+ # increment_factor: 1.0, # required
685
+ # rate_increase_criteria: { # required
686
+ # number_of_notified_things: 1,
687
+ # number_of_succeeded_things: 1,
688
+ # },
689
+ # },
690
+ # maximum_per_minute: 1,
691
+ # },
692
+ # abort_config: {
693
+ # criteria_list: [ # required
694
+ # {
695
+ # failure_type: "FAILED", # required, accepts FAILED, REJECTED, TIMED_OUT, ALL
696
+ # action: "CANCEL", # required, accepts CANCEL
697
+ # threshold_percentage: 1.0, # required
698
+ # min_number_of_executed_things: 1, # required
699
+ # },
700
+ # ],
701
+ # },
702
+ # timeout_config: {
703
+ # in_progress_timeout_in_minutes: 1,
704
+ # },
705
+ # },
706
+ # deployment_policies: {
707
+ # failure_handling_policy: "ROLLBACK", # accepts ROLLBACK, DO_NOTHING
708
+ # component_update_policy: {
709
+ # timeout_in_seconds: 1,
710
+ # action: "NOTIFY_COMPONENTS", # accepts NOTIFY_COMPONENTS, SKIP_NOTIFY_COMPONENTS
711
+ # },
712
+ # configuration_validation_policy: {
713
+ # timeout_in_seconds: 1,
714
+ # },
715
+ # },
716
+ # tags: {
717
+ # "TagKey" => "TagValue",
718
+ # },
719
+ # }
720
+ #
721
+ # @!attribute [rw] target_arn
722
+ # The [ARN][1] of the target AWS IoT thing or thing group.
723
+ #
724
+ #
725
+ #
726
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
727
+ # @return [String]
728
+ #
729
+ # @!attribute [rw] deployment_name
730
+ # The name of the deployment.
731
+ #
732
+ # You can create deployments without names. If you create a deployment
733
+ # without a name, the AWS IoT Greengrass V2 console shows the
734
+ # deployment name as `<targetType>:<targetName>`, where `targetType`
735
+ # and `targetName` are the type and name of the deployment target.
736
+ # @return [String]
737
+ #
738
+ # @!attribute [rw] components
739
+ # The components to deploy. This is a dictionary, where each key is
740
+ # the name of a component, and each key's value is the version and
741
+ # configuration to deploy for that component.
742
+ # @return [Hash<String,Types::ComponentDeploymentSpecification>]
743
+ #
744
+ # @!attribute [rw] iot_job_configuration
745
+ # The job configuration for the deployment configuration. The job
746
+ # configuration specifies the rollout, timeout, and stop
747
+ # configurations for the deployment configuration.
748
+ # @return [Types::DeploymentIoTJobConfiguration]
749
+ #
750
+ # @!attribute [rw] deployment_policies
751
+ # The deployment policies for the deployment. These policies define
752
+ # how the deployment updates components and handles failure.
753
+ # @return [Types::DeploymentPolicies]
754
+ #
755
+ # @!attribute [rw] tags
756
+ # A list of key-value pairs that contain metadata for the resource.
757
+ # For more information, see [Tag your resources][1] in the *AWS IoT
758
+ # Greengrass V2 Developer Guide*.
759
+ #
760
+ #
761
+ #
762
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/tag-resources.html
763
+ # @return [Hash<String,String>]
764
+ #
765
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CreateDeploymentRequest AWS API Documentation
766
+ #
767
+ class CreateDeploymentRequest < Struct.new(
768
+ :target_arn,
769
+ :deployment_name,
770
+ :components,
771
+ :iot_job_configuration,
772
+ :deployment_policies,
773
+ :tags)
774
+ SENSITIVE = []
775
+ include Aws::Structure
776
+ end
777
+
778
+ # @!attribute [rw] deployment_id
779
+ # The ID of the deployment.
780
+ # @return [String]
781
+ #
782
+ # @!attribute [rw] iot_job_id
783
+ # The ID of the AWS IoT job that applies the deployment to target
784
+ # devices.
785
+ # @return [String]
786
+ #
787
+ # @!attribute [rw] iot_job_arn
788
+ # The [ARN][1] of the AWS IoT job that applies the deployment to
789
+ # target devices.
790
+ #
791
+ #
792
+ #
793
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
794
+ # @return [String]
795
+ #
796
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CreateDeploymentResponse AWS API Documentation
797
+ #
798
+ class CreateDeploymentResponse < Struct.new(
799
+ :deployment_id,
800
+ :iot_job_id,
801
+ :iot_job_arn)
802
+ SENSITIVE = []
803
+ include Aws::Structure
804
+ end
805
+
806
+ # @note When making an API call, you may pass DeleteComponentRequest
807
+ # data as a hash:
808
+ #
809
+ # {
810
+ # arn: "ComponentVersionARN", # required
811
+ # }
812
+ #
813
+ # @!attribute [rw] arn
814
+ # The [ARN][1] of the component version.
815
+ #
816
+ #
817
+ #
818
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
819
+ # @return [String]
820
+ #
821
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DeleteComponentRequest AWS API Documentation
822
+ #
823
+ class DeleteComponentRequest < Struct.new(
824
+ :arn)
825
+ SENSITIVE = []
826
+ include Aws::Structure
827
+ end
828
+
829
+ # @note When making an API call, you may pass DeleteCoreDeviceRequest
830
+ # data as a hash:
831
+ #
832
+ # {
833
+ # core_device_thing_name: "CoreDeviceThingName", # required
834
+ # }
835
+ #
836
+ # @!attribute [rw] core_device_thing_name
837
+ # The name of the core device. This is also the name of the AWS IoT
838
+ # thing.
839
+ # @return [String]
840
+ #
841
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DeleteCoreDeviceRequest AWS API Documentation
842
+ #
843
+ class DeleteCoreDeviceRequest < Struct.new(
844
+ :core_device_thing_name)
845
+ SENSITIVE = []
846
+ include Aws::Structure
847
+ end
848
+
849
+ # Contains information about a deployment.
850
+ #
851
+ # @!attribute [rw] target_arn
852
+ # The [ARN][1] of the target AWS IoT thing or thing group.
853
+ #
854
+ #
855
+ #
856
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
857
+ # @return [String]
858
+ #
859
+ # @!attribute [rw] revision_id
860
+ # The revision number of the deployment.
861
+ # @return [String]
862
+ #
863
+ # @!attribute [rw] deployment_id
864
+ # The ID of the deployment.
865
+ # @return [String]
866
+ #
867
+ # @!attribute [rw] deployment_name
868
+ # The name of the deployment.
869
+ #
870
+ # You can create deployments without names. If you create a deployment
871
+ # without a name, the AWS IoT Greengrass V2 console shows the
872
+ # deployment name as `<targetType>:<targetName>`, where `targetType`
873
+ # and `targetName` are the type and name of the deployment target.
874
+ # @return [String]
875
+ #
876
+ # @!attribute [rw] creation_timestamp
877
+ # The time at which the deployment was created, expressed in ISO 8601
878
+ # format.
879
+ # @return [Time]
880
+ #
881
+ # @!attribute [rw] deployment_status
882
+ # The status of the deployment.
883
+ # @return [String]
884
+ #
885
+ # @!attribute [rw] is_latest_for_target
886
+ # Whether or not the deployment is the latest revision for its target.
887
+ # @return [Boolean]
888
+ #
889
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/Deployment AWS API Documentation
890
+ #
891
+ class Deployment < Struct.new(
892
+ :target_arn,
893
+ :revision_id,
894
+ :deployment_id,
895
+ :deployment_name,
896
+ :creation_timestamp,
897
+ :deployment_status,
898
+ :is_latest_for_target)
899
+ SENSITIVE = []
900
+ include Aws::Structure
901
+ end
902
+
903
+ # Contains information about a deployment's policy that defines when
904
+ # components are safe to update.
905
+ #
906
+ # Each component on a device can report whether or not it's ready to
907
+ # update. After a component and its dependencies are ready, they can
908
+ # apply the update in the deployment. You can configure whether or not
909
+ # the deployment notifies components of an update and waits for a
910
+ # response. You specify the amount of time each component has to respond
911
+ # to the update notification.
912
+ #
913
+ # @note When making an API call, you may pass DeploymentComponentUpdatePolicy
914
+ # data as a hash:
915
+ #
916
+ # {
917
+ # timeout_in_seconds: 1,
918
+ # action: "NOTIFY_COMPONENTS", # accepts NOTIFY_COMPONENTS, SKIP_NOTIFY_COMPONENTS
919
+ # }
920
+ #
921
+ # @!attribute [rw] timeout_in_seconds
922
+ # The amount of time in seconds that each component on a device has to
923
+ # report that it's safe to update. If the component waits for longer
924
+ # than this timeout, then the deployment proceeds on the device.
925
+ #
926
+ # Default: `60`
927
+ # @return [Integer]
928
+ #
929
+ # @!attribute [rw] action
930
+ # Whether or not to notify components and wait for components to
931
+ # become safe to update. Choose from the following options:
932
+ #
933
+ # * `NOTIFY_COMPONENTS` – The deployment notifies each component
934
+ # before it stops and updates that component. Components can use the
935
+ # [SubscribeToComponentUpdates][1] IPC operation to receive these
936
+ # notifications. Then, components can respond with the
937
+ # [DeferComponentUpdate][2] IPC operation. For more information, see
938
+ # the [Create deployments][3] in the *AWS IoT Greengrass V2
939
+ # Developer Guide*.
940
+ #
941
+ # * `SKIP_NOTIFY_COMPONENTS` – The deployment doesn't notify
942
+ # components or wait for them to be safe to update.
943
+ #
944
+ # Default: `NOTIFY_COMPONENTS`
945
+ #
946
+ #
947
+ #
948
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates
949
+ # [2]: https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate
950
+ # [3]: https://docs.aws.amazon.com/greengrass/v2/latest/developerguide/create-deployments.html
951
+ # @return [String]
952
+ #
953
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DeploymentComponentUpdatePolicy AWS API Documentation
954
+ #
955
+ class DeploymentComponentUpdatePolicy < Struct.new(
956
+ :timeout_in_seconds,
957
+ :action)
958
+ SENSITIVE = []
959
+ include Aws::Structure
960
+ end
961
+
962
+ # Contains information about how long a component on a core device can
963
+ # validate its configuration updates before it times out. Components can
964
+ # use the [SubscribeToValidateConfigurationUpdates][1] IPC operation to
965
+ # receive notifications when a deployment specifies a configuration
966
+ # update. Then, components can respond with the
967
+ # [SendConfigurationValidityReport][2] IPC operation. For more
968
+ # information, see the [Create deployments][3] in the *AWS IoT
969
+ # Greengrass V2 Developer Guide*.
970
+ #
971
+ #
972
+ #
973
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetovalidateconfigurationupdates
974
+ # [2]: https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-sendconfigurationvalidityreport
975
+ # [3]: https://docs.aws.amazon.com/greengrass/v2/latest/developerguide/create-deployments.html
976
+ #
977
+ # @note When making an API call, you may pass DeploymentConfigurationValidationPolicy
978
+ # data as a hash:
979
+ #
980
+ # {
981
+ # timeout_in_seconds: 1,
982
+ # }
983
+ #
984
+ # @!attribute [rw] timeout_in_seconds
985
+ # The amount of time in seconds that a component can validate its
986
+ # configuration updates. If the validation time exceeds this timeout,
987
+ # then the deployment proceeds for the device.
988
+ #
989
+ # Default: `30`
990
+ # @return [Integer]
991
+ #
992
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DeploymentConfigurationValidationPolicy AWS API Documentation
993
+ #
994
+ class DeploymentConfigurationValidationPolicy < Struct.new(
995
+ :timeout_in_seconds)
996
+ SENSITIVE = []
997
+ include Aws::Structure
998
+ end
999
+
1000
+ # Contains information about an AWS IoT job configuration.
1001
+ #
1002
+ # @note When making an API call, you may pass DeploymentIoTJobConfiguration
1003
+ # data as a hash:
1004
+ #
1005
+ # {
1006
+ # job_executions_rollout_config: {
1007
+ # exponential_rate: {
1008
+ # base_rate_per_minute: 1, # required
1009
+ # increment_factor: 1.0, # required
1010
+ # rate_increase_criteria: { # required
1011
+ # number_of_notified_things: 1,
1012
+ # number_of_succeeded_things: 1,
1013
+ # },
1014
+ # },
1015
+ # maximum_per_minute: 1,
1016
+ # },
1017
+ # abort_config: {
1018
+ # criteria_list: [ # required
1019
+ # {
1020
+ # failure_type: "FAILED", # required, accepts FAILED, REJECTED, TIMED_OUT, ALL
1021
+ # action: "CANCEL", # required, accepts CANCEL
1022
+ # threshold_percentage: 1.0, # required
1023
+ # min_number_of_executed_things: 1, # required
1024
+ # },
1025
+ # ],
1026
+ # },
1027
+ # timeout_config: {
1028
+ # in_progress_timeout_in_minutes: 1,
1029
+ # },
1030
+ # }
1031
+ #
1032
+ # @!attribute [rw] job_executions_rollout_config
1033
+ # The rollout configuration for the job. This configuration defines
1034
+ # the rate at which the job rolls out to the fleet of target devices.
1035
+ # @return [Types::IoTJobExecutionsRolloutConfig]
1036
+ #
1037
+ # @!attribute [rw] abort_config
1038
+ # The stop configuration for the job. This configuration defines when
1039
+ # and how to stop a job rollout.
1040
+ # @return [Types::IoTJobAbortConfig]
1041
+ #
1042
+ # @!attribute [rw] timeout_config
1043
+ # The timeout configuration for the job. This configuration defines
1044
+ # the amount of time each device has to complete the job.
1045
+ # @return [Types::IoTJobTimeoutConfig]
1046
+ #
1047
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DeploymentIoTJobConfiguration AWS API Documentation
1048
+ #
1049
+ class DeploymentIoTJobConfiguration < Struct.new(
1050
+ :job_executions_rollout_config,
1051
+ :abort_config,
1052
+ :timeout_config)
1053
+ SENSITIVE = []
1054
+ include Aws::Structure
1055
+ end
1056
+
1057
+ # Contains information about policies that define how a deployment
1058
+ # updates components and handles failure.
1059
+ #
1060
+ # @note When making an API call, you may pass DeploymentPolicies
1061
+ # data as a hash:
1062
+ #
1063
+ # {
1064
+ # failure_handling_policy: "ROLLBACK", # accepts ROLLBACK, DO_NOTHING
1065
+ # component_update_policy: {
1066
+ # timeout_in_seconds: 1,
1067
+ # action: "NOTIFY_COMPONENTS", # accepts NOTIFY_COMPONENTS, SKIP_NOTIFY_COMPONENTS
1068
+ # },
1069
+ # configuration_validation_policy: {
1070
+ # timeout_in_seconds: 1,
1071
+ # },
1072
+ # }
1073
+ #
1074
+ # @!attribute [rw] failure_handling_policy
1075
+ # The failure handling policy for the configuration deployment. This
1076
+ # policy defines what to do if the deployment fails.
1077
+ #
1078
+ # Default: `ROLLBACK`
1079
+ # @return [String]
1080
+ #
1081
+ # @!attribute [rw] component_update_policy
1082
+ # The component update policy for the configuration deployment. This
1083
+ # policy defines when it's safe to deploy the configuration to
1084
+ # devices.
1085
+ # @return [Types::DeploymentComponentUpdatePolicy]
1086
+ #
1087
+ # @!attribute [rw] configuration_validation_policy
1088
+ # The configuration validation policy for the configuration
1089
+ # deployment. This policy defines how long each component has to
1090
+ # validate its configure updates.
1091
+ # @return [Types::DeploymentConfigurationValidationPolicy]
1092
+ #
1093
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DeploymentPolicies AWS API Documentation
1094
+ #
1095
+ class DeploymentPolicies < Struct.new(
1096
+ :failure_handling_policy,
1097
+ :component_update_policy,
1098
+ :configuration_validation_policy)
1099
+ SENSITIVE = []
1100
+ include Aws::Structure
1101
+ end
1102
+
1103
+ # @note When making an API call, you may pass DescribeComponentRequest
1104
+ # data as a hash:
1105
+ #
1106
+ # {
1107
+ # arn: "ComponentVersionARN", # required
1108
+ # }
1109
+ #
1110
+ # @!attribute [rw] arn
1111
+ # The [ARN][1] of the component version.
1112
+ #
1113
+ #
1114
+ #
1115
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
1116
+ # @return [String]
1117
+ #
1118
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DescribeComponentRequest AWS API Documentation
1119
+ #
1120
+ class DescribeComponentRequest < Struct.new(
1121
+ :arn)
1122
+ SENSITIVE = []
1123
+ include Aws::Structure
1124
+ end
1125
+
1126
+ # @!attribute [rw] arn
1127
+ # The [ARN][1] of the component version.
1128
+ #
1129
+ #
1130
+ #
1131
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
1132
+ # @return [String]
1133
+ #
1134
+ # @!attribute [rw] component_name
1135
+ # The name of the component.
1136
+ # @return [String]
1137
+ #
1138
+ # @!attribute [rw] component_version
1139
+ # The version of the component.
1140
+ # @return [String]
1141
+ #
1142
+ # @!attribute [rw] creation_timestamp
1143
+ # The time at which the component was created, expressed in ISO 8601
1144
+ # format.
1145
+ # @return [Time]
1146
+ #
1147
+ # @!attribute [rw] publisher
1148
+ # The publisher of the component version.
1149
+ # @return [String]
1150
+ #
1151
+ # @!attribute [rw] description
1152
+ # The description of the component version.
1153
+ # @return [String]
1154
+ #
1155
+ # @!attribute [rw] status
1156
+ # The status of the component version in AWS IoT Greengrass V2. This
1157
+ # status is different from the status of the component on a core
1158
+ # device.
1159
+ # @return [Types::CloudComponentStatus]
1160
+ #
1161
+ # @!attribute [rw] platforms
1162
+ # The platforms that the component version supports.
1163
+ # @return [Array<Types::ComponentPlatform>]
1164
+ #
1165
+ # @!attribute [rw] tags
1166
+ # A list of key-value pairs that contain metadata for the resource.
1167
+ # For more information, see [Tag your resources][1] in the *AWS IoT
1168
+ # Greengrass V2 Developer Guide*.
1169
+ #
1170
+ #
1171
+ #
1172
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/tag-resources.html
1173
+ # @return [Hash<String,String>]
1174
+ #
1175
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DescribeComponentResponse AWS API Documentation
1176
+ #
1177
+ class DescribeComponentResponse < Struct.new(
1178
+ :arn,
1179
+ :component_name,
1180
+ :component_version,
1181
+ :creation_timestamp,
1182
+ :publisher,
1183
+ :description,
1184
+ :status,
1185
+ :platforms,
1186
+ :tags)
1187
+ SENSITIVE = []
1188
+ include Aws::Structure
1189
+ end
1190
+
1191
+ # Contains information about a deployment job that AWS IoT Greengrass
1192
+ # sends to a AWS IoT Greengrass core device.
1193
+ #
1194
+ # @!attribute [rw] deployment_id
1195
+ # The ID of the deployment.
1196
+ # @return [String]
1197
+ #
1198
+ # @!attribute [rw] deployment_name
1199
+ # The name of the deployment.
1200
+ #
1201
+ # You can create deployments without names. If you create a deployment
1202
+ # without a name, the AWS IoT Greengrass V2 console shows the
1203
+ # deployment name as `<targetType>:<targetName>`, where `targetType`
1204
+ # and `targetName` are the type and name of the deployment target.
1205
+ # @return [String]
1206
+ #
1207
+ # @!attribute [rw] iot_job_id
1208
+ # The ID of the AWS IoT job that applies the deployment to target
1209
+ # devices.
1210
+ # @return [String]
1211
+ #
1212
+ # @!attribute [rw] iot_job_arn
1213
+ # The [ARN][1] of the AWS IoT job that applies the deployment to
1214
+ # target devices.
1215
+ #
1216
+ #
1217
+ #
1218
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
1219
+ # @return [String]
1220
+ #
1221
+ # @!attribute [rw] description
1222
+ # The description of the deployment job.
1223
+ # @return [String]
1224
+ #
1225
+ # @!attribute [rw] target_arn
1226
+ # The [ARN][1] of the target AWS IoT thing or thing group.
1227
+ #
1228
+ #
1229
+ #
1230
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
1231
+ # @return [String]
1232
+ #
1233
+ # @!attribute [rw] core_device_execution_status
1234
+ # The status of the deployment job on the AWS IoT Greengrass core
1235
+ # device.
1236
+ # @return [String]
1237
+ #
1238
+ # @!attribute [rw] reason
1239
+ # The reason code for the update, if the job was updated.
1240
+ # @return [String]
1241
+ #
1242
+ # @!attribute [rw] creation_timestamp
1243
+ # The time at which the deployment was created, expressed in ISO 8601
1244
+ # format.
1245
+ # @return [Time]
1246
+ #
1247
+ # @!attribute [rw] modified_timestamp
1248
+ # The time at which the deployment job was last modified, expressed in
1249
+ # ISO 8601 format.
1250
+ # @return [Time]
1251
+ #
1252
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/EffectiveDeployment AWS API Documentation
1253
+ #
1254
+ class EffectiveDeployment < Struct.new(
1255
+ :deployment_id,
1256
+ :deployment_name,
1257
+ :iot_job_id,
1258
+ :iot_job_arn,
1259
+ :description,
1260
+ :target_arn,
1261
+ :core_device_execution_status,
1262
+ :reason,
1263
+ :creation_timestamp,
1264
+ :modified_timestamp)
1265
+ SENSITIVE = []
1266
+ include Aws::Structure
1267
+ end
1268
+
1269
+ # @note When making an API call, you may pass GetComponentRequest
1270
+ # data as a hash:
1271
+ #
1272
+ # {
1273
+ # recipe_output_format: "JSON", # accepts JSON, YAML
1274
+ # arn: "ComponentVersionARN", # required
1275
+ # }
1276
+ #
1277
+ # @!attribute [rw] recipe_output_format
1278
+ # The format of the recipe.
1279
+ # @return [String]
1280
+ #
1281
+ # @!attribute [rw] arn
1282
+ # The [ARN][1] of the component version.
1283
+ #
1284
+ #
1285
+ #
1286
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
1287
+ # @return [String]
1288
+ #
1289
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetComponentRequest AWS API Documentation
1290
+ #
1291
+ class GetComponentRequest < Struct.new(
1292
+ :recipe_output_format,
1293
+ :arn)
1294
+ SENSITIVE = []
1295
+ include Aws::Structure
1296
+ end
1297
+
1298
+ # @!attribute [rw] recipe_output_format
1299
+ # The format of the recipe.
1300
+ # @return [String]
1301
+ #
1302
+ # @!attribute [rw] recipe
1303
+ # The recipe of the component version.
1304
+ # @return [String]
1305
+ #
1306
+ # @!attribute [rw] tags
1307
+ # A list of key-value pairs that contain metadata for the resource.
1308
+ # For more information, see [Tag your resources][1] in the *AWS IoT
1309
+ # Greengrass V2 Developer Guide*.
1310
+ #
1311
+ #
1312
+ #
1313
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/tag-resources.html
1314
+ # @return [Hash<String,String>]
1315
+ #
1316
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetComponentResponse AWS API Documentation
1317
+ #
1318
+ class GetComponentResponse < Struct.new(
1319
+ :recipe_output_format,
1320
+ :recipe,
1321
+ :tags)
1322
+ SENSITIVE = []
1323
+ include Aws::Structure
1324
+ end
1325
+
1326
+ # @note When making an API call, you may pass GetComponentVersionArtifactRequest
1327
+ # data as a hash:
1328
+ #
1329
+ # {
1330
+ # arn: "ComponentVersionARN", # required
1331
+ # artifact_name: "NonEmptyString", # required
1332
+ # }
1333
+ #
1334
+ # @!attribute [rw] arn
1335
+ # The [ARN][1] of the component version.
1336
+ #
1337
+ #
1338
+ #
1339
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
1340
+ # @return [String]
1341
+ #
1342
+ # @!attribute [rw] artifact_name
1343
+ # The name of the artifact.
1344
+ # @return [String]
1345
+ #
1346
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetComponentVersionArtifactRequest AWS API Documentation
1347
+ #
1348
+ class GetComponentVersionArtifactRequest < Struct.new(
1349
+ :arn,
1350
+ :artifact_name)
1351
+ SENSITIVE = []
1352
+ include Aws::Structure
1353
+ end
1354
+
1355
+ # @!attribute [rw] pre_signed_url
1356
+ # The URL to the artifact.
1357
+ # @return [String]
1358
+ #
1359
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetComponentVersionArtifactResponse AWS API Documentation
1360
+ #
1361
+ class GetComponentVersionArtifactResponse < Struct.new(
1362
+ :pre_signed_url)
1363
+ SENSITIVE = []
1364
+ include Aws::Structure
1365
+ end
1366
+
1367
+ # @note When making an API call, you may pass GetCoreDeviceRequest
1368
+ # data as a hash:
1369
+ #
1370
+ # {
1371
+ # core_device_thing_name: "CoreDeviceThingName", # required
1372
+ # }
1373
+ #
1374
+ # @!attribute [rw] core_device_thing_name
1375
+ # The name of the core device. This is also the name of the AWS IoT
1376
+ # thing.
1377
+ # @return [String]
1378
+ #
1379
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetCoreDeviceRequest AWS API Documentation
1380
+ #
1381
+ class GetCoreDeviceRequest < Struct.new(
1382
+ :core_device_thing_name)
1383
+ SENSITIVE = []
1384
+ include Aws::Structure
1385
+ end
1386
+
1387
+ # @!attribute [rw] core_device_thing_name
1388
+ # The name of the core device. This is also the name of the AWS IoT
1389
+ # thing.
1390
+ # @return [String]
1391
+ #
1392
+ # @!attribute [rw] core_version
1393
+ # The version of the AWS IoT Greengrass Core software that the core
1394
+ # device runs. This version is equivalent to the version of the AWS
1395
+ # IoT Greengrass nucleus component that runs on the core device. For
1396
+ # more information, see the [AWS IoT Greengrass nucleus component][1]
1397
+ # in the *AWS IoT Greengrass V2 Developer Guide*.
1398
+ #
1399
+ #
1400
+ #
1401
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html
1402
+ # @return [String]
1403
+ #
1404
+ # @!attribute [rw] platform
1405
+ # The operating system platform that the core device runs.
1406
+ # @return [String]
1407
+ #
1408
+ # @!attribute [rw] architecture
1409
+ # The computer architecture of the core device.
1410
+ # @return [String]
1411
+ #
1412
+ # @!attribute [rw] status
1413
+ # The status of the core device. The core device status can be:
1414
+ #
1415
+ # * `HEALTHY` – The AWS IoT Greengrass Core software and all
1416
+ # components run on the core device without issue.
1417
+ #
1418
+ # * `UNHEALTHY` – The AWS IoT Greengrass Core software or a component
1419
+ # is in a failed state on the core device.
1420
+ # @return [String]
1421
+ #
1422
+ # @!attribute [rw] last_status_update_timestamp
1423
+ # The time at which the core device's status last updated, expressed
1424
+ # in ISO 8601 format.
1425
+ # @return [Time]
1426
+ #
1427
+ # @!attribute [rw] tags
1428
+ # A list of key-value pairs that contain metadata for the resource.
1429
+ # For more information, see [Tag your resources][1] in the *AWS IoT
1430
+ # Greengrass V2 Developer Guide*.
1431
+ #
1432
+ #
1433
+ #
1434
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/tag-resources.html
1435
+ # @return [Hash<String,String>]
1436
+ #
1437
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetCoreDeviceResponse AWS API Documentation
1438
+ #
1439
+ class GetCoreDeviceResponse < Struct.new(
1440
+ :core_device_thing_name,
1441
+ :core_version,
1442
+ :platform,
1443
+ :architecture,
1444
+ :status,
1445
+ :last_status_update_timestamp,
1446
+ :tags)
1447
+ SENSITIVE = []
1448
+ include Aws::Structure
1449
+ end
1450
+
1451
+ # @note When making an API call, you may pass GetDeploymentRequest
1452
+ # data as a hash:
1453
+ #
1454
+ # {
1455
+ # deployment_id: "NonEmptyString", # required
1456
+ # }
1457
+ #
1458
+ # @!attribute [rw] deployment_id
1459
+ # The ID of the deployment.
1460
+ # @return [String]
1461
+ #
1462
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetDeploymentRequest AWS API Documentation
1463
+ #
1464
+ class GetDeploymentRequest < Struct.new(
1465
+ :deployment_id)
1466
+ SENSITIVE = []
1467
+ include Aws::Structure
1468
+ end
1469
+
1470
+ # @!attribute [rw] target_arn
1471
+ # The [ARN][1] of the target AWS IoT thing or thing group.
1472
+ #
1473
+ #
1474
+ #
1475
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
1476
+ # @return [String]
1477
+ #
1478
+ # @!attribute [rw] revision_id
1479
+ # The revision number of the deployment.
1480
+ # @return [String]
1481
+ #
1482
+ # @!attribute [rw] deployment_id
1483
+ # The ID of the deployment.
1484
+ # @return [String]
1485
+ #
1486
+ # @!attribute [rw] deployment_name
1487
+ # The name of the deployment.
1488
+ #
1489
+ # You can create deployments without names. If you create a deployment
1490
+ # without a name, the AWS IoT Greengrass V2 console shows the
1491
+ # deployment name as `<targetType>:<targetName>`, where `targetType`
1492
+ # and `targetName` are the type and name of the deployment target.
1493
+ # @return [String]
1494
+ #
1495
+ # @!attribute [rw] deployment_status
1496
+ # The status of the deployment.
1497
+ # @return [String]
1498
+ #
1499
+ # @!attribute [rw] iot_job_id
1500
+ # The ID of the AWS IoT job that applies the deployment to target
1501
+ # devices.
1502
+ # @return [String]
1503
+ #
1504
+ # @!attribute [rw] iot_job_arn
1505
+ # The [ARN][1] of the AWS IoT job that applies the deployment to
1506
+ # target devices.
1507
+ #
1508
+ #
1509
+ #
1510
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
1511
+ # @return [String]
1512
+ #
1513
+ # @!attribute [rw] components
1514
+ # The components to deploy. This is a dictionary, where each key is
1515
+ # the name of a component, and each key's value is the version and
1516
+ # configuration to deploy for that component.
1517
+ # @return [Hash<String,Types::ComponentDeploymentSpecification>]
1518
+ #
1519
+ # @!attribute [rw] deployment_policies
1520
+ # The deployment policies for the deployment. These policies define
1521
+ # how the deployment updates components and handles failure.
1522
+ # @return [Types::DeploymentPolicies]
1523
+ #
1524
+ # @!attribute [rw] iot_job_configuration
1525
+ # The job configuration for the deployment configuration. The job
1526
+ # configuration specifies the rollout, timeout, and stop
1527
+ # configurations for the deployment configuration.
1528
+ # @return [Types::DeploymentIoTJobConfiguration]
1529
+ #
1530
+ # @!attribute [rw] creation_timestamp
1531
+ # The time at which the deployment was created, expressed in ISO 8601
1532
+ # format.
1533
+ # @return [Time]
1534
+ #
1535
+ # @!attribute [rw] is_latest_for_target
1536
+ # Whether or not the deployment is the latest revision for its target.
1537
+ # @return [Boolean]
1538
+ #
1539
+ # @!attribute [rw] tags
1540
+ # A list of key-value pairs that contain metadata for the resource.
1541
+ # For more information, see [Tag your resources][1] in the *AWS IoT
1542
+ # Greengrass V2 Developer Guide*.
1543
+ #
1544
+ #
1545
+ #
1546
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/tag-resources.html
1547
+ # @return [Hash<String,String>]
1548
+ #
1549
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetDeploymentResponse AWS API Documentation
1550
+ #
1551
+ class GetDeploymentResponse < Struct.new(
1552
+ :target_arn,
1553
+ :revision_id,
1554
+ :deployment_id,
1555
+ :deployment_name,
1556
+ :deployment_status,
1557
+ :iot_job_id,
1558
+ :iot_job_arn,
1559
+ :components,
1560
+ :deployment_policies,
1561
+ :iot_job_configuration,
1562
+ :creation_timestamp,
1563
+ :is_latest_for_target,
1564
+ :tags)
1565
+ SENSITIVE = []
1566
+ include Aws::Structure
1567
+ end
1568
+
1569
+ # Contains information about a component on a AWS IoT Greengrass core
1570
+ # device.
1571
+ #
1572
+ # @!attribute [rw] component_name
1573
+ # The name of the component.
1574
+ # @return [String]
1575
+ #
1576
+ # @!attribute [rw] component_version
1577
+ # The version of the component.
1578
+ # @return [String]
1579
+ #
1580
+ # @!attribute [rw] lifecycle_state
1581
+ # The lifecycle state of the component.
1582
+ # @return [String]
1583
+ #
1584
+ # @!attribute [rw] lifecycle_state_details
1585
+ # The details about the lifecycle state of the component.
1586
+ # @return [String]
1587
+ #
1588
+ # @!attribute [rw] is_root
1589
+ # Whether or not the component is a root component.
1590
+ # @return [Boolean]
1591
+ #
1592
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/InstalledComponent AWS API Documentation
1593
+ #
1594
+ class InstalledComponent < Struct.new(
1595
+ :component_name,
1596
+ :component_version,
1597
+ :lifecycle_state,
1598
+ :lifecycle_state_details,
1599
+ :is_root)
1600
+ SENSITIVE = []
1601
+ include Aws::Structure
1602
+ end
1603
+
1604
+ # AWS IoT Greengrass can't process your request right now. Try again
1605
+ # later.
1606
+ #
1607
+ # @!attribute [rw] message
1608
+ # @return [String]
1609
+ #
1610
+ # @!attribute [rw] retry_after_seconds
1611
+ # The amount of time to wait before you retry the request.
1612
+ # @return [Integer]
1613
+ #
1614
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/InternalServerException AWS API Documentation
1615
+ #
1616
+ class InternalServerException < Struct.new(
1617
+ :message,
1618
+ :retry_after_seconds)
1619
+ SENSITIVE = []
1620
+ include Aws::Structure
1621
+ end
1622
+
1623
+ # Contains a list of criteria that define when and how to cancel a
1624
+ # configuration deployment.
1625
+ #
1626
+ # @note When making an API call, you may pass IoTJobAbortConfig
1627
+ # data as a hash:
1628
+ #
1629
+ # {
1630
+ # criteria_list: [ # required
1631
+ # {
1632
+ # failure_type: "FAILED", # required, accepts FAILED, REJECTED, TIMED_OUT, ALL
1633
+ # action: "CANCEL", # required, accepts CANCEL
1634
+ # threshold_percentage: 1.0, # required
1635
+ # min_number_of_executed_things: 1, # required
1636
+ # },
1637
+ # ],
1638
+ # }
1639
+ #
1640
+ # @!attribute [rw] criteria_list
1641
+ # The list of criteria that define when and how to cancel the
1642
+ # configuration deployment.
1643
+ # @return [Array<Types::IoTJobAbortCriteria>]
1644
+ #
1645
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/IoTJobAbortConfig AWS API Documentation
1646
+ #
1647
+ class IoTJobAbortConfig < Struct.new(
1648
+ :criteria_list)
1649
+ SENSITIVE = []
1650
+ include Aws::Structure
1651
+ end
1652
+
1653
+ # Contains criteria that define when and how to cancel a job.
1654
+ #
1655
+ # The deployment stops if the following conditions are true:
1656
+ #
1657
+ # 1. The number of things that receive the deployment exceeds the
1658
+ # `minNumberOfExecutedThings`.
1659
+ #
1660
+ # 2. The percentage of failures with type `failureType` exceeds the
1661
+ # `thresholdPercentage`.
1662
+ #
1663
+ # @note When making an API call, you may pass IoTJobAbortCriteria
1664
+ # data as a hash:
1665
+ #
1666
+ # {
1667
+ # failure_type: "FAILED", # required, accepts FAILED, REJECTED, TIMED_OUT, ALL
1668
+ # action: "CANCEL", # required, accepts CANCEL
1669
+ # threshold_percentage: 1.0, # required
1670
+ # min_number_of_executed_things: 1, # required
1671
+ # }
1672
+ #
1673
+ # @!attribute [rw] failure_type
1674
+ # The type of job deployment failure that can cancel a job.
1675
+ # @return [String]
1676
+ #
1677
+ # @!attribute [rw] action
1678
+ # The action to perform when the criteria are met.
1679
+ # @return [String]
1680
+ #
1681
+ # @!attribute [rw] threshold_percentage
1682
+ # The minimum percentage of `failureType` failures that occur before
1683
+ # the job can cancel.
1684
+ #
1685
+ # This parameter supports up to two digits after the decimal (for
1686
+ # example, you can specify `10.9` or `10.99`, but not `10.999`).
1687
+ # @return [Float]
1688
+ #
1689
+ # @!attribute [rw] min_number_of_executed_things
1690
+ # The minimum number of things that receive the configuration before
1691
+ # the job can cancel.
1692
+ # @return [Integer]
1693
+ #
1694
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/IoTJobAbortCriteria AWS API Documentation
1695
+ #
1696
+ class IoTJobAbortCriteria < Struct.new(
1697
+ :failure_type,
1698
+ :action,
1699
+ :threshold_percentage,
1700
+ :min_number_of_executed_things)
1701
+ SENSITIVE = []
1702
+ include Aws::Structure
1703
+ end
1704
+
1705
+ # Contains information about the rollout configuration for a job. This
1706
+ # configuration defines the rate at which the job deploys a
1707
+ # configuration to a fleet of target devices.
1708
+ #
1709
+ # @note When making an API call, you may pass IoTJobExecutionsRolloutConfig
1710
+ # data as a hash:
1711
+ #
1712
+ # {
1713
+ # exponential_rate: {
1714
+ # base_rate_per_minute: 1, # required
1715
+ # increment_factor: 1.0, # required
1716
+ # rate_increase_criteria: { # required
1717
+ # number_of_notified_things: 1,
1718
+ # number_of_succeeded_things: 1,
1719
+ # },
1720
+ # },
1721
+ # maximum_per_minute: 1,
1722
+ # }
1723
+ #
1724
+ # @!attribute [rw] exponential_rate
1725
+ # The exponential rate to increase the job rollout rate.
1726
+ # @return [Types::IoTJobExponentialRolloutRate]
1727
+ #
1728
+ # @!attribute [rw] maximum_per_minute
1729
+ # The maximum number of devices that receive a pending job
1730
+ # notification, per minute.
1731
+ # @return [Integer]
1732
+ #
1733
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/IoTJobExecutionsRolloutConfig AWS API Documentation
1734
+ #
1735
+ class IoTJobExecutionsRolloutConfig < Struct.new(
1736
+ :exponential_rate,
1737
+ :maximum_per_minute)
1738
+ SENSITIVE = []
1739
+ include Aws::Structure
1740
+ end
1741
+
1742
+ # Contains information about an exponential rollout rate for a
1743
+ # configuration deployment job.
1744
+ #
1745
+ # @note When making an API call, you may pass IoTJobExponentialRolloutRate
1746
+ # data as a hash:
1747
+ #
1748
+ # {
1749
+ # base_rate_per_minute: 1, # required
1750
+ # increment_factor: 1.0, # required
1751
+ # rate_increase_criteria: { # required
1752
+ # number_of_notified_things: 1,
1753
+ # number_of_succeeded_things: 1,
1754
+ # },
1755
+ # }
1756
+ #
1757
+ # @!attribute [rw] base_rate_per_minute
1758
+ # The minimum number of devices that receive a pending job
1759
+ # notification, per minute, when the job starts. This parameter
1760
+ # defines the initial rollout rate of the job.
1761
+ # @return [Integer]
1762
+ #
1763
+ # @!attribute [rw] increment_factor
1764
+ # The exponential factor to increase the rollout rate for the job.
1765
+ #
1766
+ # This parameter supports up to one digit after the decimal (for
1767
+ # example, you can specify `1.5`, but not `1.55`).
1768
+ # @return [Float]
1769
+ #
1770
+ # @!attribute [rw] rate_increase_criteria
1771
+ # The criteria to increase the rollout rate for the job.
1772
+ # @return [Types::IoTJobRateIncreaseCriteria]
1773
+ #
1774
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/IoTJobExponentialRolloutRate AWS API Documentation
1775
+ #
1776
+ class IoTJobExponentialRolloutRate < Struct.new(
1777
+ :base_rate_per_minute,
1778
+ :increment_factor,
1779
+ :rate_increase_criteria)
1780
+ SENSITIVE = []
1781
+ include Aws::Structure
1782
+ end
1783
+
1784
+ # Contains information about criteria to meet before a job increases its
1785
+ # rollout rate. Specify either `numberOfNotifiedThings` or
1786
+ # `numberOfSucceededThings`.
1787
+ #
1788
+ # @note When making an API call, you may pass IoTJobRateIncreaseCriteria
1789
+ # data as a hash:
1790
+ #
1791
+ # {
1792
+ # number_of_notified_things: 1,
1793
+ # number_of_succeeded_things: 1,
1794
+ # }
1795
+ #
1796
+ # @!attribute [rw] number_of_notified_things
1797
+ # The number of devices to receive the job notification before the
1798
+ # rollout rate increases.
1799
+ # @return [Integer]
1800
+ #
1801
+ # @!attribute [rw] number_of_succeeded_things
1802
+ # The number of devices to successfully run the configuration job
1803
+ # before the rollout rate increases.
1804
+ # @return [Integer]
1805
+ #
1806
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/IoTJobRateIncreaseCriteria AWS API Documentation
1807
+ #
1808
+ class IoTJobRateIncreaseCriteria < Struct.new(
1809
+ :number_of_notified_things,
1810
+ :number_of_succeeded_things)
1811
+ SENSITIVE = []
1812
+ include Aws::Structure
1813
+ end
1814
+
1815
+ # Contains information about the timeout configuration for a job.
1816
+ #
1817
+ # @note When making an API call, you may pass IoTJobTimeoutConfig
1818
+ # data as a hash:
1819
+ #
1820
+ # {
1821
+ # in_progress_timeout_in_minutes: 1,
1822
+ # }
1823
+ #
1824
+ # @!attribute [rw] in_progress_timeout_in_minutes
1825
+ # The amount of time, in minutes, that devices have to complete the
1826
+ # job. The timer starts when the job status is set to `IN_PROGRESS`.
1827
+ # If the job status doesn't change to a terminal state before the
1828
+ # time expires, then the job status is set to `TIMED_OUT`.
1829
+ #
1830
+ # The timeout interval must be between 1 minute and 7 days (10080
1831
+ # minutes).
1832
+ # @return [Integer]
1833
+ #
1834
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/IoTJobTimeoutConfig AWS API Documentation
1835
+ #
1836
+ class IoTJobTimeoutConfig < Struct.new(
1837
+ :in_progress_timeout_in_minutes)
1838
+ SENSITIVE = []
1839
+ include Aws::Structure
1840
+ end
1841
+
1842
+ # Contains information about a container in which AWS Lambda functions
1843
+ # run on AWS IoT Greengrass core devices.
1844
+ #
1845
+ # @note When making an API call, you may pass LambdaContainerParams
1846
+ # data as a hash:
1847
+ #
1848
+ # {
1849
+ # memory_size_in_kb: 1,
1850
+ # mount_ro_sysfs: false,
1851
+ # volumes: [
1852
+ # {
1853
+ # source_path: "FileSystemPath", # required
1854
+ # destination_path: "FileSystemPath", # required
1855
+ # permission: "ro", # accepts ro, rw
1856
+ # add_group_owner: false,
1857
+ # },
1858
+ # ],
1859
+ # devices: [
1860
+ # {
1861
+ # path: "FileSystemPath", # required
1862
+ # permission: "ro", # accepts ro, rw
1863
+ # add_group_owner: false,
1864
+ # },
1865
+ # ],
1866
+ # }
1867
+ #
1868
+ # @!attribute [rw] memory_size_in_kb
1869
+ # The memory size of the container, expressed in kilobytes.
1870
+ #
1871
+ # Default: `16384` (16 MB)
1872
+ # @return [Integer]
1873
+ #
1874
+ # @!attribute [rw] mount_ro_sysfs
1875
+ # Whether or not the container can read information from the device's
1876
+ # `/sys` folder.
1877
+ #
1878
+ # Default: `false`
1879
+ # @return [Boolean]
1880
+ #
1881
+ # @!attribute [rw] volumes
1882
+ # The list of volumes that the container can access.
1883
+ # @return [Array<Types::LambdaVolumeMount>]
1884
+ #
1885
+ # @!attribute [rw] devices
1886
+ # The list of system devices that the container can access.
1887
+ # @return [Array<Types::LambdaDeviceMount>]
1888
+ #
1889
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/LambdaContainerParams AWS API Documentation
1890
+ #
1891
+ class LambdaContainerParams < Struct.new(
1892
+ :memory_size_in_kb,
1893
+ :mount_ro_sysfs,
1894
+ :volumes,
1895
+ :devices)
1896
+ SENSITIVE = []
1897
+ include Aws::Structure
1898
+ end
1899
+
1900
+ # Contains information about a device that Linux processes in a
1901
+ # container can access.
1902
+ #
1903
+ # @note When making an API call, you may pass LambdaDeviceMount
1904
+ # data as a hash:
1905
+ #
1906
+ # {
1907
+ # path: "FileSystemPath", # required
1908
+ # permission: "ro", # accepts ro, rw
1909
+ # add_group_owner: false,
1910
+ # }
1911
+ #
1912
+ # @!attribute [rw] path
1913
+ # The mount path for the device in the file system.
1914
+ # @return [String]
1915
+ #
1916
+ # @!attribute [rw] permission
1917
+ # The permission to access the device: read/only (`ro`) or read/write
1918
+ # (`rw`).
1919
+ #
1920
+ # Default: `ro`
1921
+ # @return [String]
1922
+ #
1923
+ # @!attribute [rw] add_group_owner
1924
+ # Whether or not to add the component's system user as an owner of
1925
+ # the device.
1926
+ #
1927
+ # Default: `false`
1928
+ # @return [Boolean]
1929
+ #
1930
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/LambdaDeviceMount AWS API Documentation
1931
+ #
1932
+ class LambdaDeviceMount < Struct.new(
1933
+ :path,
1934
+ :permission,
1935
+ :add_group_owner)
1936
+ SENSITIVE = []
1937
+ include Aws::Structure
1938
+ end
1939
+
1940
+ # Contains information about an event source for an AWS Lambda function.
1941
+ # The event source defines the topics on which this Lambda function
1942
+ # subscribes to receive messages that run the function.
1943
+ #
1944
+ # @note When making an API call, you may pass LambdaEventSource
1945
+ # data as a hash:
1946
+ #
1947
+ # {
1948
+ # topic: "TopicString", # required
1949
+ # type: "PUB_SUB", # required, accepts PUB_SUB, IOT_CORE
1950
+ # }
1951
+ #
1952
+ # @!attribute [rw] topic
1953
+ # The topic to which to subscribe to receive event messages.
1954
+ # @return [String]
1955
+ #
1956
+ # @!attribute [rw] type
1957
+ # The type of event source. Choose from the following options:
1958
+ #
1959
+ # * `PUB_SUB` – Subscribe to local publish/subscribe messages. This
1960
+ # event source type doesn't support MQTT wildcards (`+` and `#`) in
1961
+ # the event source topic.
1962
+ #
1963
+ # * `IOT_CORE` – Subscribe to AWS IoT Core MQTT messages. This event
1964
+ # source type supports MQTT wildcards (`+` and `#`) in the event
1965
+ # source topic.
1966
+ # @return [String]
1967
+ #
1968
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/LambdaEventSource AWS API Documentation
1969
+ #
1970
+ class LambdaEventSource < Struct.new(
1971
+ :topic,
1972
+ :type)
1973
+ SENSITIVE = []
1974
+ include Aws::Structure
1975
+ end
1976
+
1977
+ # Contains parameters for a Lambda function that runs on AWS IoT
1978
+ # Greengrass.
1979
+ #
1980
+ # @note When making an API call, you may pass LambdaExecutionParameters
1981
+ # data as a hash:
1982
+ #
1983
+ # {
1984
+ # event_sources: [
1985
+ # {
1986
+ # topic: "TopicString", # required
1987
+ # type: "PUB_SUB", # required, accepts PUB_SUB, IOT_CORE
1988
+ # },
1989
+ # ],
1990
+ # max_queue_size: 1,
1991
+ # max_instances_count: 1,
1992
+ # max_idle_time_in_seconds: 1,
1993
+ # timeout_in_seconds: 1,
1994
+ # status_timeout_in_seconds: 1,
1995
+ # pinned: false,
1996
+ # input_payload_encoding_type: "json", # accepts json, binary
1997
+ # exec_args: ["LambdaExecArg"],
1998
+ # environment_variables: {
1999
+ # "NonEmptyString" => "String",
2000
+ # },
2001
+ # linux_process_params: {
2002
+ # isolation_mode: "GreengrassContainer", # accepts GreengrassContainer, NoContainer
2003
+ # container_params: {
2004
+ # memory_size_in_kb: 1,
2005
+ # mount_ro_sysfs: false,
2006
+ # volumes: [
2007
+ # {
2008
+ # source_path: "FileSystemPath", # required
2009
+ # destination_path: "FileSystemPath", # required
2010
+ # permission: "ro", # accepts ro, rw
2011
+ # add_group_owner: false,
2012
+ # },
2013
+ # ],
2014
+ # devices: [
2015
+ # {
2016
+ # path: "FileSystemPath", # required
2017
+ # permission: "ro", # accepts ro, rw
2018
+ # add_group_owner: false,
2019
+ # },
2020
+ # ],
2021
+ # },
2022
+ # },
2023
+ # }
2024
+ #
2025
+ # @!attribute [rw] event_sources
2026
+ # The list of event sources to which to subscribe to receive work
2027
+ # messages. The Lambda function runs when it receives a message from
2028
+ # an event source. You can subscribe this function to local
2029
+ # publish/subscribe messages and AWS IoT Core MQTT messages.
2030
+ # @return [Array<Types::LambdaEventSource>]
2031
+ #
2032
+ # @!attribute [rw] max_queue_size
2033
+ # The maximum size of the message queue for the Lambda function
2034
+ # component. The AWS IoT Greengrass core stores messages in a FIFO
2035
+ # (first-in-first-out) queue until it can run the Lambda function to
2036
+ # consume each message.
2037
+ # @return [Integer]
2038
+ #
2039
+ # @!attribute [rw] max_instances_count
2040
+ # The maximum number of instances that a non-pinned Lambda function
2041
+ # can run at the same time.
2042
+ # @return [Integer]
2043
+ #
2044
+ # @!attribute [rw] max_idle_time_in_seconds
2045
+ # The maximum amount of time in seconds that a non-pinned Lambda
2046
+ # function can idle before the AWS IoT Greengrass Core software stops
2047
+ # its process.
2048
+ # @return [Integer]
2049
+ #
2050
+ # @!attribute [rw] timeout_in_seconds
2051
+ # The maximum amount of time in seconds that the Lambda function can
2052
+ # process a work item.
2053
+ # @return [Integer]
2054
+ #
2055
+ # @!attribute [rw] status_timeout_in_seconds
2056
+ # The interval in seconds at which a pinned (also known as long-lived)
2057
+ # Lambda function component sends status updates to the Lambda manager
2058
+ # component.
2059
+ # @return [Integer]
2060
+ #
2061
+ # @!attribute [rw] pinned
2062
+ # Whether or not the Lambda function is pinned, or long-lived.
2063
+ #
2064
+ # * A pinned Lambda function starts when AWS IoT Greengrass starts and
2065
+ # keeps running in its own container.
2066
+ #
2067
+ # * A non-pinned Lambda function starts only when it receives a work
2068
+ # item and exists after it idles for `maxIdleTimeInSeconds`. If the
2069
+ # function has multiple work items, the AWS IoT Greengrass Core
2070
+ # software creates multiple instances of the function.
2071
+ #
2072
+ # Default: `true`
2073
+ # @return [Boolean]
2074
+ #
2075
+ # @!attribute [rw] input_payload_encoding_type
2076
+ # The encoding type that the Lambda function supports.
2077
+ #
2078
+ # Default: `json`
2079
+ # @return [String]
2080
+ #
2081
+ # @!attribute [rw] exec_args
2082
+ # The list of arguments to pass to the Lambda function when it runs.
2083
+ # @return [Array<String>]
2084
+ #
2085
+ # @!attribute [rw] environment_variables
2086
+ # The map of environment variables that are available to the Lambda
2087
+ # function when it runs.
2088
+ # @return [Hash<String,String>]
2089
+ #
2090
+ # @!attribute [rw] linux_process_params
2091
+ # The parameters for the Linux process that contains the Lambda
2092
+ # function.
2093
+ # @return [Types::LambdaLinuxProcessParams]
2094
+ #
2095
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/LambdaExecutionParameters AWS API Documentation
2096
+ #
2097
+ class LambdaExecutionParameters < Struct.new(
2098
+ :event_sources,
2099
+ :max_queue_size,
2100
+ :max_instances_count,
2101
+ :max_idle_time_in_seconds,
2102
+ :timeout_in_seconds,
2103
+ :status_timeout_in_seconds,
2104
+ :pinned,
2105
+ :input_payload_encoding_type,
2106
+ :exec_args,
2107
+ :environment_variables,
2108
+ :linux_process_params)
2109
+ SENSITIVE = []
2110
+ include Aws::Structure
2111
+ end
2112
+
2113
+ # Contains information about an AWS Lambda function to import to create
2114
+ # a component.
2115
+ #
2116
+ # @note When making an API call, you may pass LambdaFunctionRecipeSource
2117
+ # data as a hash:
2118
+ #
2119
+ # {
2120
+ # lambda_arn: "LambdaFunctionARNWithVersionNumber", # required
2121
+ # component_name: "ComponentNameString",
2122
+ # component_version: "ComponentVersionString",
2123
+ # component_platforms: [
2124
+ # {
2125
+ # name: "NonEmptyString",
2126
+ # attributes: {
2127
+ # "NonEmptyString" => "NonEmptyString",
2128
+ # },
2129
+ # },
2130
+ # ],
2131
+ # component_dependencies: {
2132
+ # "NonEmptyString" => {
2133
+ # version_requirement: "NonEmptyString",
2134
+ # dependency_type: "HARD", # accepts HARD, SOFT
2135
+ # },
2136
+ # },
2137
+ # component_lambda_parameters: {
2138
+ # event_sources: [
2139
+ # {
2140
+ # topic: "TopicString", # required
2141
+ # type: "PUB_SUB", # required, accepts PUB_SUB, IOT_CORE
2142
+ # },
2143
+ # ],
2144
+ # max_queue_size: 1,
2145
+ # max_instances_count: 1,
2146
+ # max_idle_time_in_seconds: 1,
2147
+ # timeout_in_seconds: 1,
2148
+ # status_timeout_in_seconds: 1,
2149
+ # pinned: false,
2150
+ # input_payload_encoding_type: "json", # accepts json, binary
2151
+ # exec_args: ["LambdaExecArg"],
2152
+ # environment_variables: {
2153
+ # "NonEmptyString" => "String",
2154
+ # },
2155
+ # linux_process_params: {
2156
+ # isolation_mode: "GreengrassContainer", # accepts GreengrassContainer, NoContainer
2157
+ # container_params: {
2158
+ # memory_size_in_kb: 1,
2159
+ # mount_ro_sysfs: false,
2160
+ # volumes: [
2161
+ # {
2162
+ # source_path: "FileSystemPath", # required
2163
+ # destination_path: "FileSystemPath", # required
2164
+ # permission: "ro", # accepts ro, rw
2165
+ # add_group_owner: false,
2166
+ # },
2167
+ # ],
2168
+ # devices: [
2169
+ # {
2170
+ # path: "FileSystemPath", # required
2171
+ # permission: "ro", # accepts ro, rw
2172
+ # add_group_owner: false,
2173
+ # },
2174
+ # ],
2175
+ # },
2176
+ # },
2177
+ # },
2178
+ # }
2179
+ #
2180
+ # @!attribute [rw] lambda_arn
2181
+ # The [ARN][1] of the Lambda function. The ARN must include the
2182
+ # version of the function to import. You can't use version aliases
2183
+ # like `$LATEST`.
2184
+ #
2185
+ #
2186
+ #
2187
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
2188
+ # @return [String]
2189
+ #
2190
+ # @!attribute [rw] component_name
2191
+ # The name of the component.
2192
+ #
2193
+ # Defaults to the name of the Lambda function.
2194
+ # @return [String]
2195
+ #
2196
+ # @!attribute [rw] component_version
2197
+ # The version of the component.
2198
+ #
2199
+ # Defaults to the version of the Lambda function as a semantic
2200
+ # version. For example, if your function version is `3`, the component
2201
+ # version becomes `3.0.0`.
2202
+ # @return [String]
2203
+ #
2204
+ # @!attribute [rw] component_platforms
2205
+ # The platforms that the component version supports.
2206
+ # @return [Array<Types::ComponentPlatform>]
2207
+ #
2208
+ # @!attribute [rw] component_dependencies
2209
+ # The component versions on which this Lambda function component
2210
+ # depends.
2211
+ # @return [Hash<String,Types::ComponentDependencyRequirement>]
2212
+ #
2213
+ # @!attribute [rw] component_lambda_parameters
2214
+ # The system and runtime parameters for the Lambda function as it runs
2215
+ # on the AWS IoT Greengrass core device.
2216
+ # @return [Types::LambdaExecutionParameters]
2217
+ #
2218
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/LambdaFunctionRecipeSource AWS API Documentation
2219
+ #
2220
+ class LambdaFunctionRecipeSource < Struct.new(
2221
+ :lambda_arn,
2222
+ :component_name,
2223
+ :component_version,
2224
+ :component_platforms,
2225
+ :component_dependencies,
2226
+ :component_lambda_parameters)
2227
+ SENSITIVE = []
2228
+ include Aws::Structure
2229
+ end
2230
+
2231
+ # Contains parameters for a Linux process that contains an AWS Lambda
2232
+ # function.
2233
+ #
2234
+ # @note When making an API call, you may pass LambdaLinuxProcessParams
2235
+ # data as a hash:
2236
+ #
2237
+ # {
2238
+ # isolation_mode: "GreengrassContainer", # accepts GreengrassContainer, NoContainer
2239
+ # container_params: {
2240
+ # memory_size_in_kb: 1,
2241
+ # mount_ro_sysfs: false,
2242
+ # volumes: [
2243
+ # {
2244
+ # source_path: "FileSystemPath", # required
2245
+ # destination_path: "FileSystemPath", # required
2246
+ # permission: "ro", # accepts ro, rw
2247
+ # add_group_owner: false,
2248
+ # },
2249
+ # ],
2250
+ # devices: [
2251
+ # {
2252
+ # path: "FileSystemPath", # required
2253
+ # permission: "ro", # accepts ro, rw
2254
+ # add_group_owner: false,
2255
+ # },
2256
+ # ],
2257
+ # },
2258
+ # }
2259
+ #
2260
+ # @!attribute [rw] isolation_mode
2261
+ # The isolation mode for the process that contains the Lambda
2262
+ # function. The process can run in an isolated runtime environment
2263
+ # inside the AWS IoT Greengrass container, or as a regular process
2264
+ # outside any container.
2265
+ #
2266
+ # Default: `GreengrassContainer`
2267
+ # @return [String]
2268
+ #
2269
+ # @!attribute [rw] container_params
2270
+ # The parameters for the container in which the Lambda function runs.
2271
+ # @return [Types::LambdaContainerParams]
2272
+ #
2273
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/LambdaLinuxProcessParams AWS API Documentation
2274
+ #
2275
+ class LambdaLinuxProcessParams < Struct.new(
2276
+ :isolation_mode,
2277
+ :container_params)
2278
+ SENSITIVE = []
2279
+ include Aws::Structure
2280
+ end
2281
+
2282
+ # Contains information about a volume that Linux processes in a
2283
+ # container can access. When you define a volume, the AWS IoT Greengrass
2284
+ # Core software mounts the source files to the destination inside the
2285
+ # container.
2286
+ #
2287
+ # @note When making an API call, you may pass LambdaVolumeMount
2288
+ # data as a hash:
2289
+ #
2290
+ # {
2291
+ # source_path: "FileSystemPath", # required
2292
+ # destination_path: "FileSystemPath", # required
2293
+ # permission: "ro", # accepts ro, rw
2294
+ # add_group_owner: false,
2295
+ # }
2296
+ #
2297
+ # @!attribute [rw] source_path
2298
+ # The path to the physical volume in the file system.
2299
+ # @return [String]
2300
+ #
2301
+ # @!attribute [rw] destination_path
2302
+ # The path to the logical volume in the file system.
2303
+ # @return [String]
2304
+ #
2305
+ # @!attribute [rw] permission
2306
+ # The permission to access the volume: read/only (`ro`) or read/write
2307
+ # (`rw`).
2308
+ #
2309
+ # Default: `ro`
2310
+ # @return [String]
2311
+ #
2312
+ # @!attribute [rw] add_group_owner
2313
+ # Whether or not to add the AWS IoT Greengrass user group as an owner
2314
+ # of the volume.
2315
+ #
2316
+ # Default: `false`
2317
+ # @return [Boolean]
2318
+ #
2319
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/LambdaVolumeMount AWS API Documentation
2320
+ #
2321
+ class LambdaVolumeMount < Struct.new(
2322
+ :source_path,
2323
+ :destination_path,
2324
+ :permission,
2325
+ :add_group_owner)
2326
+ SENSITIVE = []
2327
+ include Aws::Structure
2328
+ end
2329
+
2330
+ # @note When making an API call, you may pass ListComponentVersionsRequest
2331
+ # data as a hash:
2332
+ #
2333
+ # {
2334
+ # arn: "ComponentARN", # required
2335
+ # max_results: 1,
2336
+ # next_token: "NextTokenString",
2337
+ # }
2338
+ #
2339
+ # @!attribute [rw] arn
2340
+ # The [ARN][1] of the component version.
2341
+ #
2342
+ #
2343
+ #
2344
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
2345
+ # @return [String]
2346
+ #
2347
+ # @!attribute [rw] max_results
2348
+ # The maximum number of results to be returned per paginated request.
2349
+ # @return [Integer]
2350
+ #
2351
+ # @!attribute [rw] next_token
2352
+ # The token to be used for the next set of paginated results.
2353
+ # @return [String]
2354
+ #
2355
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListComponentVersionsRequest AWS API Documentation
2356
+ #
2357
+ class ListComponentVersionsRequest < Struct.new(
2358
+ :arn,
2359
+ :max_results,
2360
+ :next_token)
2361
+ SENSITIVE = []
2362
+ include Aws::Structure
2363
+ end
2364
+
2365
+ # @!attribute [rw] component_versions
2366
+ # A list of versions that exist for the component.
2367
+ # @return [Array<Types::ComponentVersionListItem>]
2368
+ #
2369
+ # @!attribute [rw] next_token
2370
+ # The token for the next set of results, or null if there are no
2371
+ # additional results.
2372
+ # @return [String]
2373
+ #
2374
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListComponentVersionsResponse AWS API Documentation
2375
+ #
2376
+ class ListComponentVersionsResponse < Struct.new(
2377
+ :component_versions,
2378
+ :next_token)
2379
+ SENSITIVE = []
2380
+ include Aws::Structure
2381
+ end
2382
+
2383
+ # @note When making an API call, you may pass ListComponentsRequest
2384
+ # data as a hash:
2385
+ #
2386
+ # {
2387
+ # scope: "PRIVATE", # accepts PRIVATE, PUBLIC
2388
+ # max_results: 1,
2389
+ # next_token: "NextTokenString",
2390
+ # }
2391
+ #
2392
+ # @!attribute [rw] scope
2393
+ # The scope of the components to list.
2394
+ #
2395
+ # Default: `PRIVATE`
2396
+ # @return [String]
2397
+ #
2398
+ # @!attribute [rw] max_results
2399
+ # The maximum number of results to be returned per paginated request.
2400
+ # @return [Integer]
2401
+ #
2402
+ # @!attribute [rw] next_token
2403
+ # The token to be used for the next set of paginated results.
2404
+ # @return [String]
2405
+ #
2406
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListComponentsRequest AWS API Documentation
2407
+ #
2408
+ class ListComponentsRequest < Struct.new(
2409
+ :scope,
2410
+ :max_results,
2411
+ :next_token)
2412
+ SENSITIVE = []
2413
+ include Aws::Structure
2414
+ end
2415
+
2416
+ # @!attribute [rw] components
2417
+ # A list that summarizes each component.
2418
+ # @return [Array<Types::Component>]
2419
+ #
2420
+ # @!attribute [rw] next_token
2421
+ # The token for the next set of results, or null if there are no
2422
+ # additional results.
2423
+ # @return [String]
2424
+ #
2425
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListComponentsResponse AWS API Documentation
2426
+ #
2427
+ class ListComponentsResponse < Struct.new(
2428
+ :components,
2429
+ :next_token)
2430
+ SENSITIVE = []
2431
+ include Aws::Structure
2432
+ end
2433
+
2434
+ # @note When making an API call, you may pass ListCoreDevicesRequest
2435
+ # data as a hash:
2436
+ #
2437
+ # {
2438
+ # thing_group_arn: "ThingGroupARN",
2439
+ # status: "HEALTHY", # accepts HEALTHY, UNHEALTHY
2440
+ # max_results: 1,
2441
+ # next_token: "NextTokenString",
2442
+ # }
2443
+ #
2444
+ # @!attribute [rw] thing_group_arn
2445
+ # The [ARN][1] of the AWS IoT thing group by which to filter. If you
2446
+ # specify this parameter, the list includes only core devices that are
2447
+ # members of this thing group.
2448
+ #
2449
+ #
2450
+ #
2451
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
2452
+ # @return [String]
2453
+ #
2454
+ # @!attribute [rw] status
2455
+ # The core device status by which to filter. If you specify this
2456
+ # parameter, the list includes only core devices that have this
2457
+ # status. Choose one of the following options:
2458
+ #
2459
+ # * `HEALTHY` – The AWS IoT Greengrass Core software and all
2460
+ # components run on the core device without issue.
2461
+ #
2462
+ # * `UNHEALTHY` – The AWS IoT Greengrass Core software or a component
2463
+ # is in a failed state on the core device.
2464
+ # @return [String]
2465
+ #
2466
+ # @!attribute [rw] max_results
2467
+ # The maximum number of results to be returned per paginated request.
2468
+ # @return [Integer]
2469
+ #
2470
+ # @!attribute [rw] next_token
2471
+ # The token to be used for the next set of paginated results.
2472
+ # @return [String]
2473
+ #
2474
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListCoreDevicesRequest AWS API Documentation
2475
+ #
2476
+ class ListCoreDevicesRequest < Struct.new(
2477
+ :thing_group_arn,
2478
+ :status,
2479
+ :max_results,
2480
+ :next_token)
2481
+ SENSITIVE = []
2482
+ include Aws::Structure
2483
+ end
2484
+
2485
+ # @!attribute [rw] core_devices
2486
+ # A list that summarizes each core device.
2487
+ # @return [Array<Types::CoreDevice>]
2488
+ #
2489
+ # @!attribute [rw] next_token
2490
+ # The token for the next set of results, or null if there are no
2491
+ # additional results.
2492
+ # @return [String]
2493
+ #
2494
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListCoreDevicesResponse AWS API Documentation
2495
+ #
2496
+ class ListCoreDevicesResponse < Struct.new(
2497
+ :core_devices,
2498
+ :next_token)
2499
+ SENSITIVE = []
2500
+ include Aws::Structure
2501
+ end
2502
+
2503
+ # @note When making an API call, you may pass ListDeploymentsRequest
2504
+ # data as a hash:
2505
+ #
2506
+ # {
2507
+ # target_arn: "TargetARN",
2508
+ # history_filter: "ALL", # accepts ALL, LATEST_ONLY
2509
+ # max_results: 1,
2510
+ # next_token: "NextTokenString",
2511
+ # }
2512
+ #
2513
+ # @!attribute [rw] target_arn
2514
+ # The [ARN][1] of the target AWS IoT thing or thing group.
2515
+ #
2516
+ #
2517
+ #
2518
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
2519
+ # @return [String]
2520
+ #
2521
+ # @!attribute [rw] history_filter
2522
+ # The filter for the list of deployments. Choose one of the following
2523
+ # options:
2524
+ #
2525
+ # * `ALL` – The list includes all deployments.
2526
+ #
2527
+ # * `LATEST_ONLY` – The list includes only the latest revision of each
2528
+ # deployment.
2529
+ #
2530
+ # Default: `LATEST_ONLY`
2531
+ # @return [String]
2532
+ #
2533
+ # @!attribute [rw] max_results
2534
+ # The maximum number of results to be returned per paginated request.
2535
+ # @return [Integer]
2536
+ #
2537
+ # @!attribute [rw] next_token
2538
+ # The token to be used for the next set of paginated results.
2539
+ # @return [String]
2540
+ #
2541
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListDeploymentsRequest AWS API Documentation
2542
+ #
2543
+ class ListDeploymentsRequest < Struct.new(
2544
+ :target_arn,
2545
+ :history_filter,
2546
+ :max_results,
2547
+ :next_token)
2548
+ SENSITIVE = []
2549
+ include Aws::Structure
2550
+ end
2551
+
2552
+ # @!attribute [rw] deployments
2553
+ # A list that summarizes each deployment.
2554
+ # @return [Array<Types::Deployment>]
2555
+ #
2556
+ # @!attribute [rw] next_token
2557
+ # The token for the next set of results, or null if there are no
2558
+ # additional results.
2559
+ # @return [String]
2560
+ #
2561
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListDeploymentsResponse AWS API Documentation
2562
+ #
2563
+ class ListDeploymentsResponse < Struct.new(
2564
+ :deployments,
2565
+ :next_token)
2566
+ SENSITIVE = []
2567
+ include Aws::Structure
2568
+ end
2569
+
2570
+ # @note When making an API call, you may pass ListEffectiveDeploymentsRequest
2571
+ # data as a hash:
2572
+ #
2573
+ # {
2574
+ # core_device_thing_name: "CoreDeviceThingName", # required
2575
+ # max_results: 1,
2576
+ # next_token: "NextTokenString",
2577
+ # }
2578
+ #
2579
+ # @!attribute [rw] core_device_thing_name
2580
+ # The name of the core device. This is also the name of the AWS IoT
2581
+ # thing.
2582
+ # @return [String]
2583
+ #
2584
+ # @!attribute [rw] max_results
2585
+ # The maximum number of results to be returned per paginated request.
2586
+ # @return [Integer]
2587
+ #
2588
+ # @!attribute [rw] next_token
2589
+ # The token to be used for the next set of paginated results.
2590
+ # @return [String]
2591
+ #
2592
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListEffectiveDeploymentsRequest AWS API Documentation
2593
+ #
2594
+ class ListEffectiveDeploymentsRequest < Struct.new(
2595
+ :core_device_thing_name,
2596
+ :max_results,
2597
+ :next_token)
2598
+ SENSITIVE = []
2599
+ include Aws::Structure
2600
+ end
2601
+
2602
+ # @!attribute [rw] effective_deployments
2603
+ # A list that summarizes each deployment on the core device.
2604
+ # @return [Array<Types::EffectiveDeployment>]
2605
+ #
2606
+ # @!attribute [rw] next_token
2607
+ # The token for the next set of results, or null if there are no
2608
+ # additional results.
2609
+ # @return [String]
2610
+ #
2611
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListEffectiveDeploymentsResponse AWS API Documentation
2612
+ #
2613
+ class ListEffectiveDeploymentsResponse < Struct.new(
2614
+ :effective_deployments,
2615
+ :next_token)
2616
+ SENSITIVE = []
2617
+ include Aws::Structure
2618
+ end
2619
+
2620
+ # @note When making an API call, you may pass ListInstalledComponentsRequest
2621
+ # data as a hash:
2622
+ #
2623
+ # {
2624
+ # core_device_thing_name: "CoreDeviceThingName", # required
2625
+ # max_results: 1,
2626
+ # next_token: "NextTokenString",
2627
+ # }
2628
+ #
2629
+ # @!attribute [rw] core_device_thing_name
2630
+ # The name of the core device. This is also the name of the AWS IoT
2631
+ # thing.
2632
+ # @return [String]
2633
+ #
2634
+ # @!attribute [rw] max_results
2635
+ # The maximum number of results to be returned per paginated request.
2636
+ # @return [Integer]
2637
+ #
2638
+ # @!attribute [rw] next_token
2639
+ # The token to be used for the next set of paginated results.
2640
+ # @return [String]
2641
+ #
2642
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListInstalledComponentsRequest AWS API Documentation
2643
+ #
2644
+ class ListInstalledComponentsRequest < Struct.new(
2645
+ :core_device_thing_name,
2646
+ :max_results,
2647
+ :next_token)
2648
+ SENSITIVE = []
2649
+ include Aws::Structure
2650
+ end
2651
+
2652
+ # @!attribute [rw] installed_components
2653
+ # A list that summarizes each component on the core device.
2654
+ # @return [Array<Types::InstalledComponent>]
2655
+ #
2656
+ # @!attribute [rw] next_token
2657
+ # The token for the next set of results, or null if there are no
2658
+ # additional results.
2659
+ # @return [String]
2660
+ #
2661
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListInstalledComponentsResponse AWS API Documentation
2662
+ #
2663
+ class ListInstalledComponentsResponse < Struct.new(
2664
+ :installed_components,
2665
+ :next_token)
2666
+ SENSITIVE = []
2667
+ include Aws::Structure
2668
+ end
2669
+
2670
+ # @note When making an API call, you may pass ListTagsForResourceRequest
2671
+ # data as a hash:
2672
+ #
2673
+ # {
2674
+ # resource_arn: "GenericV2ARN", # required
2675
+ # }
2676
+ #
2677
+ # @!attribute [rw] resource_arn
2678
+ # The [ARN][1] of the resource.
2679
+ #
2680
+ #
2681
+ #
2682
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
2683
+ # @return [String]
2684
+ #
2685
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListTagsForResourceRequest AWS API Documentation
2686
+ #
2687
+ class ListTagsForResourceRequest < Struct.new(
2688
+ :resource_arn)
2689
+ SENSITIVE = []
2690
+ include Aws::Structure
2691
+ end
2692
+
2693
+ # @!attribute [rw] tags
2694
+ # A list of key-value pairs that contain metadata for the resource.
2695
+ # For more information, see [Tag your resources][1] in the *AWS IoT
2696
+ # Greengrass V2 Developer Guide*.
2697
+ #
2698
+ #
2699
+ #
2700
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/tag-resources.html
2701
+ # @return [Hash<String,String>]
2702
+ #
2703
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListTagsForResourceResponse AWS API Documentation
2704
+ #
2705
+ class ListTagsForResourceResponse < Struct.new(
2706
+ :tags)
2707
+ SENSITIVE = []
2708
+ include Aws::Structure
2709
+ end
2710
+
2711
+ # @note When making an API call, you may pass ResolveComponentCandidatesRequest
2712
+ # data as a hash:
2713
+ #
2714
+ # {
2715
+ # platform: { # required
2716
+ # name: "NonEmptyString",
2717
+ # attributes: {
2718
+ # "NonEmptyString" => "NonEmptyString",
2719
+ # },
2720
+ # },
2721
+ # component_candidates: [ # required
2722
+ # {
2723
+ # component_name: "ComponentNameString",
2724
+ # component_version: "ComponentVersionString",
2725
+ # version_requirements: {
2726
+ # "NonEmptyString" => "NonEmptyString",
2727
+ # },
2728
+ # },
2729
+ # ],
2730
+ # }
2731
+ #
2732
+ # @!attribute [rw] platform
2733
+ # The platform to use to resolve compatible components.
2734
+ # @return [Types::ComponentPlatform]
2735
+ #
2736
+ # @!attribute [rw] component_candidates
2737
+ # The list of components to resolve.
2738
+ # @return [Array<Types::ComponentCandidate>]
2739
+ #
2740
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ResolveComponentCandidatesRequest AWS API Documentation
2741
+ #
2742
+ class ResolveComponentCandidatesRequest < Struct.new(
2743
+ :platform,
2744
+ :component_candidates)
2745
+ SENSITIVE = []
2746
+ include Aws::Structure
2747
+ end
2748
+
2749
+ # @!attribute [rw] resolved_component_versions
2750
+ # A list of components that meet the requirements that you specify in
2751
+ # the request. This list includes each component's recipe that you
2752
+ # can use to install the component.
2753
+ # @return [Array<Types::ResolvedComponentVersion>]
2754
+ #
2755
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ResolveComponentCandidatesResponse AWS API Documentation
2756
+ #
2757
+ class ResolveComponentCandidatesResponse < Struct.new(
2758
+ :resolved_component_versions)
2759
+ SENSITIVE = []
2760
+ include Aws::Structure
2761
+ end
2762
+
2763
+ # Contains information about a component version that is compatible to
2764
+ # run on a AWS IoT Greengrass core device.
2765
+ #
2766
+ # @!attribute [rw] arn
2767
+ # The [ARN][1] of the component version.
2768
+ #
2769
+ #
2770
+ #
2771
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
2772
+ # @return [String]
2773
+ #
2774
+ # @!attribute [rw] component_name
2775
+ # The name of the component.
2776
+ # @return [String]
2777
+ #
2778
+ # @!attribute [rw] component_version
2779
+ # The version of the component.
2780
+ # @return [String]
2781
+ #
2782
+ # @!attribute [rw] recipe
2783
+ # The recipe of the component version.
2784
+ # @return [String]
2785
+ #
2786
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ResolvedComponentVersion AWS API Documentation
2787
+ #
2788
+ class ResolvedComponentVersion < Struct.new(
2789
+ :arn,
2790
+ :component_name,
2791
+ :component_version,
2792
+ :recipe)
2793
+ SENSITIVE = []
2794
+ include Aws::Structure
2795
+ end
2796
+
2797
+ # The requested resource can't be found.
2798
+ #
2799
+ # @!attribute [rw] message
2800
+ # @return [String]
2801
+ #
2802
+ # @!attribute [rw] resource_id
2803
+ # The ID of the resource that isn't found.
2804
+ # @return [String]
2805
+ #
2806
+ # @!attribute [rw] resource_type
2807
+ # The type of the resource that isn't found.
2808
+ # @return [String]
2809
+ #
2810
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ResourceNotFoundException AWS API Documentation
2811
+ #
2812
+ class ResourceNotFoundException < Struct.new(
2813
+ :message,
2814
+ :resource_id,
2815
+ :resource_type)
2816
+ SENSITIVE = []
2817
+ include Aws::Structure
2818
+ end
2819
+
2820
+ # Your request exceeds a service quota. For example, you might have the
2821
+ # maximum number of components that you can create.
2822
+ #
2823
+ # @!attribute [rw] message
2824
+ # @return [String]
2825
+ #
2826
+ # @!attribute [rw] resource_id
2827
+ # The ID of the resource that exceeds the service quota.
2828
+ # @return [String]
2829
+ #
2830
+ # @!attribute [rw] resource_type
2831
+ # The type of the resource that exceeds the service quota.
2832
+ # @return [String]
2833
+ #
2834
+ # @!attribute [rw] quota_code
2835
+ # The code for the quota in [Service Quotas][1].
2836
+ #
2837
+ #
2838
+ #
2839
+ # [1]: https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html
2840
+ # @return [String]
2841
+ #
2842
+ # @!attribute [rw] service_code
2843
+ # The code for the service in [Service Quotas][1].
2844
+ #
2845
+ #
2846
+ #
2847
+ # [1]: https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html
2848
+ # @return [String]
2849
+ #
2850
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ServiceQuotaExceededException AWS API Documentation
2851
+ #
2852
+ class ServiceQuotaExceededException < Struct.new(
2853
+ :message,
2854
+ :resource_id,
2855
+ :resource_type,
2856
+ :quota_code,
2857
+ :service_code)
2858
+ SENSITIVE = []
2859
+ include Aws::Structure
2860
+ end
2861
+
2862
+ # @note When making an API call, you may pass TagResourceRequest
2863
+ # data as a hash:
2864
+ #
2865
+ # {
2866
+ # resource_arn: "GenericV2ARN", # required
2867
+ # tags: { # required
2868
+ # "TagKey" => "TagValue",
2869
+ # },
2870
+ # }
2871
+ #
2872
+ # @!attribute [rw] resource_arn
2873
+ # The [ARN][1] of the resource to tag.
2874
+ #
2875
+ #
2876
+ #
2877
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
2878
+ # @return [String]
2879
+ #
2880
+ # @!attribute [rw] tags
2881
+ # A list of key-value pairs that contain metadata for the resource.
2882
+ # For more information, see [Tag your resources][1] in the *AWS IoT
2883
+ # Greengrass V2 Developer Guide*.
2884
+ #
2885
+ #
2886
+ #
2887
+ # [1]: https://docs.aws.amazon.com/greengrass/v2/tag-resources.html
2888
+ # @return [Hash<String,String>]
2889
+ #
2890
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/TagResourceRequest AWS API Documentation
2891
+ #
2892
+ class TagResourceRequest < Struct.new(
2893
+ :resource_arn,
2894
+ :tags)
2895
+ SENSITIVE = []
2896
+ include Aws::Structure
2897
+ end
2898
+
2899
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/TagResourceResponse AWS API Documentation
2900
+ #
2901
+ class TagResourceResponse < Aws::EmptyStructure; end
2902
+
2903
+ # Your request exceeded a request rate quota. For example, you might
2904
+ # have exceeded the amount of times that you can retrieve device or
2905
+ # deployment status per second.
2906
+ #
2907
+ # @!attribute [rw] message
2908
+ # @return [String]
2909
+ #
2910
+ # @!attribute [rw] quota_code
2911
+ # The code for the quota in [Service Quotas][1].
2912
+ #
2913
+ #
2914
+ #
2915
+ # [1]: https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html
2916
+ # @return [String]
2917
+ #
2918
+ # @!attribute [rw] service_code
2919
+ # The code for the service in [Service Quotas][1].
2920
+ #
2921
+ #
2922
+ #
2923
+ # [1]: https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html
2924
+ # @return [String]
2925
+ #
2926
+ # @!attribute [rw] retry_after_seconds
2927
+ # The amount of time to wait before you retry the request.
2928
+ # @return [Integer]
2929
+ #
2930
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ThrottlingException AWS API Documentation
2931
+ #
2932
+ class ThrottlingException < Struct.new(
2933
+ :message,
2934
+ :quota_code,
2935
+ :service_code,
2936
+ :retry_after_seconds)
2937
+ SENSITIVE = []
2938
+ include Aws::Structure
2939
+ end
2940
+
2941
+ # @note When making an API call, you may pass UntagResourceRequest
2942
+ # data as a hash:
2943
+ #
2944
+ # {
2945
+ # resource_arn: "GenericV2ARN", # required
2946
+ # tag_keys: ["TagKey"], # required
2947
+ # }
2948
+ #
2949
+ # @!attribute [rw] resource_arn
2950
+ # The [ARN][1] of the resource to untag.
2951
+ #
2952
+ #
2953
+ #
2954
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
2955
+ # @return [String]
2956
+ #
2957
+ # @!attribute [rw] tag_keys
2958
+ # A list of keys for tags to remove from the resource.
2959
+ # @return [Array<String>]
2960
+ #
2961
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/UntagResourceRequest AWS API Documentation
2962
+ #
2963
+ class UntagResourceRequest < Struct.new(
2964
+ :resource_arn,
2965
+ :tag_keys)
2966
+ SENSITIVE = []
2967
+ include Aws::Structure
2968
+ end
2969
+
2970
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/UntagResourceResponse AWS API Documentation
2971
+ #
2972
+ class UntagResourceResponse < Aws::EmptyStructure; end
2973
+
2974
+ # The request isn't valid. This can occur if your request contains
2975
+ # malformed JSON or unsupported characters.
2976
+ #
2977
+ # @!attribute [rw] message
2978
+ # @return [String]
2979
+ #
2980
+ # @!attribute [rw] reason
2981
+ # The reason for the validation exception.
2982
+ # @return [String]
2983
+ #
2984
+ # @!attribute [rw] fields
2985
+ # The list of fields that failed to validate.
2986
+ # @return [Array<Types::ValidationExceptionField>]
2987
+ #
2988
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ValidationException AWS API Documentation
2989
+ #
2990
+ class ValidationException < Struct.new(
2991
+ :message,
2992
+ :reason,
2993
+ :fields)
2994
+ SENSITIVE = []
2995
+ include Aws::Structure
2996
+ end
2997
+
2998
+ # Contains information about a validation exception field.
2999
+ #
3000
+ # @!attribute [rw] name
3001
+ # The name of the exception field.
3002
+ # @return [String]
3003
+ #
3004
+ # @!attribute [rw] message
3005
+ # The message of the exception field.
3006
+ # @return [String]
3007
+ #
3008
+ # @see http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ValidationExceptionField AWS API Documentation
3009
+ #
3010
+ class ValidationExceptionField < Struct.new(
3011
+ :name,
3012
+ :message)
3013
+ SENSITIVE = []
3014
+ include Aws::Structure
3015
+ end
3016
+
3017
+ end
3018
+ end