aws-sdk-iotsecuretunneling 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,248 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws::IoTSecureTunneling
9
+ # @api private
10
+ module ClientApi
11
+
12
+ include Seahorse::Model
13
+
14
+ AmazonResourceName = Shapes::StringShape.new(name: 'AmazonResourceName')
15
+ ClientAccessToken = Shapes::StringShape.new(name: 'ClientAccessToken')
16
+ CloseTunnelRequest = Shapes::StructureShape.new(name: 'CloseTunnelRequest')
17
+ CloseTunnelResponse = Shapes::StructureShape.new(name: 'CloseTunnelResponse')
18
+ ConnectionState = Shapes::StructureShape.new(name: 'ConnectionState')
19
+ ConnectionStatus = Shapes::StringShape.new(name: 'ConnectionStatus')
20
+ DateType = Shapes::TimestampShape.new(name: 'DateType')
21
+ DeleteFlag = Shapes::BooleanShape.new(name: 'DeleteFlag')
22
+ DescribeTunnelRequest = Shapes::StructureShape.new(name: 'DescribeTunnelRequest')
23
+ DescribeTunnelResponse = Shapes::StructureShape.new(name: 'DescribeTunnelResponse')
24
+ Description = Shapes::StringShape.new(name: 'Description')
25
+ DestinationConfig = Shapes::StructureShape.new(name: 'DestinationConfig')
26
+ ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
27
+ LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
28
+ ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
29
+ ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
30
+ ListTunnelsRequest = Shapes::StructureShape.new(name: 'ListTunnelsRequest')
31
+ ListTunnelsResponse = Shapes::StructureShape.new(name: 'ListTunnelsResponse')
32
+ MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
33
+ NextToken = Shapes::StringShape.new(name: 'NextToken')
34
+ OpenTunnelRequest = Shapes::StructureShape.new(name: 'OpenTunnelRequest')
35
+ OpenTunnelResponse = Shapes::StructureShape.new(name: 'OpenTunnelResponse')
36
+ ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
37
+ Service = Shapes::StringShape.new(name: 'Service')
38
+ ServiceList = Shapes::ListShape.new(name: 'ServiceList')
39
+ Tag = Shapes::StructureShape.new(name: 'Tag')
40
+ TagKey = Shapes::StringShape.new(name: 'TagKey')
41
+ TagKeyList = Shapes::ListShape.new(name: 'TagKeyList')
42
+ TagList = Shapes::ListShape.new(name: 'TagList')
43
+ TagResourceRequest = Shapes::StructureShape.new(name: 'TagResourceRequest')
44
+ TagResourceResponse = Shapes::StructureShape.new(name: 'TagResourceResponse')
45
+ TagValue = Shapes::StringShape.new(name: 'TagValue')
46
+ ThingName = Shapes::StringShape.new(name: 'ThingName')
47
+ TimeoutConfig = Shapes::StructureShape.new(name: 'TimeoutConfig')
48
+ TimeoutInMin = Shapes::IntegerShape.new(name: 'TimeoutInMin')
49
+ Tunnel = Shapes::StructureShape.new(name: 'Tunnel')
50
+ TunnelArn = Shapes::StringShape.new(name: 'TunnelArn')
51
+ TunnelId = Shapes::StringShape.new(name: 'TunnelId')
52
+ TunnelStatus = Shapes::StringShape.new(name: 'TunnelStatus')
53
+ TunnelSummary = Shapes::StructureShape.new(name: 'TunnelSummary')
54
+ TunnelSummaryList = Shapes::ListShape.new(name: 'TunnelSummaryList')
55
+ UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
56
+ UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse')
57
+
58
+ CloseTunnelRequest.add_member(:tunnel_id, Shapes::ShapeRef.new(shape: TunnelId, required: true, location_name: "tunnelId"))
59
+ CloseTunnelRequest.add_member(:delete, Shapes::ShapeRef.new(shape: DeleteFlag, location_name: "delete", metadata: {"box"=>true}))
60
+ CloseTunnelRequest.struct_class = Types::CloseTunnelRequest
61
+
62
+ CloseTunnelResponse.struct_class = Types::CloseTunnelResponse
63
+
64
+ ConnectionState.add_member(:status, Shapes::ShapeRef.new(shape: ConnectionStatus, location_name: "status"))
65
+ ConnectionState.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: DateType, location_name: "lastUpdatedAt"))
66
+ ConnectionState.struct_class = Types::ConnectionState
67
+
68
+ DescribeTunnelRequest.add_member(:tunnel_id, Shapes::ShapeRef.new(shape: TunnelId, required: true, location_name: "tunnelId"))
69
+ DescribeTunnelRequest.struct_class = Types::DescribeTunnelRequest
70
+
71
+ DescribeTunnelResponse.add_member(:tunnel, Shapes::ShapeRef.new(shape: Tunnel, location_name: "tunnel"))
72
+ DescribeTunnelResponse.struct_class = Types::DescribeTunnelResponse
73
+
74
+ DestinationConfig.add_member(:thing_name, Shapes::ShapeRef.new(shape: ThingName, required: true, location_name: "thingName"))
75
+ DestinationConfig.add_member(:services, Shapes::ShapeRef.new(shape: ServiceList, required: true, location_name: "services"))
76
+ DestinationConfig.struct_class = Types::DestinationConfig
77
+
78
+ LimitExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
79
+ LimitExceededException.struct_class = Types::LimitExceededException
80
+
81
+ ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, required: true, location_name: "resourceArn"))
82
+ ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest
83
+
84
+ ListTagsForResourceResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
85
+ ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse
86
+
87
+ ListTunnelsRequest.add_member(:thing_name, Shapes::ShapeRef.new(shape: ThingName, location_name: "thingName"))
88
+ ListTunnelsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "maxResults", metadata: {"box"=>true}))
89
+ ListTunnelsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
90
+ ListTunnelsRequest.struct_class = Types::ListTunnelsRequest
91
+
92
+ ListTunnelsResponse.add_member(:tunnel_summaries, Shapes::ShapeRef.new(shape: TunnelSummaryList, location_name: "tunnelSummaries"))
93
+ ListTunnelsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
94
+ ListTunnelsResponse.struct_class = Types::ListTunnelsResponse
95
+
96
+ OpenTunnelRequest.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "description"))
97
+ OpenTunnelRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
98
+ OpenTunnelRequest.add_member(:destination_config, Shapes::ShapeRef.new(shape: DestinationConfig, location_name: "destinationConfig"))
99
+ OpenTunnelRequest.add_member(:timeout_config, Shapes::ShapeRef.new(shape: TimeoutConfig, location_name: "timeoutConfig"))
100
+ OpenTunnelRequest.struct_class = Types::OpenTunnelRequest
101
+
102
+ OpenTunnelResponse.add_member(:tunnel_id, Shapes::ShapeRef.new(shape: TunnelId, location_name: "tunnelId"))
103
+ OpenTunnelResponse.add_member(:tunnel_arn, Shapes::ShapeRef.new(shape: TunnelArn, location_name: "tunnelArn"))
104
+ OpenTunnelResponse.add_member(:source_access_token, Shapes::ShapeRef.new(shape: ClientAccessToken, location_name: "sourceAccessToken"))
105
+ OpenTunnelResponse.add_member(:destination_access_token, Shapes::ShapeRef.new(shape: ClientAccessToken, location_name: "destinationAccessToken"))
106
+ OpenTunnelResponse.struct_class = Types::OpenTunnelResponse
107
+
108
+ ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
109
+ ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
110
+
111
+ ServiceList.member = Shapes::ShapeRef.new(shape: Service)
112
+
113
+ Tag.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "key"))
114
+ Tag.add_member(:value, Shapes::ShapeRef.new(shape: TagValue, required: true, location_name: "value"))
115
+ Tag.struct_class = Types::Tag
116
+
117
+ TagKeyList.member = Shapes::ShapeRef.new(shape: TagKey)
118
+
119
+ TagList.member = Shapes::ShapeRef.new(shape: Tag)
120
+
121
+ TagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, required: true, location_name: "resourceArn"))
122
+ TagResourceRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, required: true, location_name: "tags"))
123
+ TagResourceRequest.struct_class = Types::TagResourceRequest
124
+
125
+ TagResourceResponse.struct_class = Types::TagResourceResponse
126
+
127
+ TimeoutConfig.add_member(:max_lifetime_timeout_minutes, Shapes::ShapeRef.new(shape: TimeoutInMin, location_name: "maxLifetimeTimeoutMinutes", metadata: {"box"=>true}))
128
+ TimeoutConfig.struct_class = Types::TimeoutConfig
129
+
130
+ Tunnel.add_member(:tunnel_id, Shapes::ShapeRef.new(shape: TunnelId, location_name: "tunnelId"))
131
+ Tunnel.add_member(:tunnel_arn, Shapes::ShapeRef.new(shape: TunnelArn, location_name: "tunnelArn"))
132
+ Tunnel.add_member(:status, Shapes::ShapeRef.new(shape: TunnelStatus, location_name: "status"))
133
+ Tunnel.add_member(:source_connection_state, Shapes::ShapeRef.new(shape: ConnectionState, location_name: "sourceConnectionState"))
134
+ Tunnel.add_member(:destination_connection_state, Shapes::ShapeRef.new(shape: ConnectionState, location_name: "destinationConnectionState"))
135
+ Tunnel.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "description"))
136
+ Tunnel.add_member(:destination_config, Shapes::ShapeRef.new(shape: DestinationConfig, location_name: "destinationConfig"))
137
+ Tunnel.add_member(:timeout_config, Shapes::ShapeRef.new(shape: TimeoutConfig, location_name: "timeoutConfig"))
138
+ Tunnel.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
139
+ Tunnel.add_member(:created_at, Shapes::ShapeRef.new(shape: DateType, location_name: "createdAt"))
140
+ Tunnel.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: DateType, location_name: "lastUpdatedAt"))
141
+ Tunnel.struct_class = Types::Tunnel
142
+
143
+ TunnelSummary.add_member(:tunnel_id, Shapes::ShapeRef.new(shape: TunnelId, location_name: "tunnelId"))
144
+ TunnelSummary.add_member(:tunnel_arn, Shapes::ShapeRef.new(shape: TunnelArn, location_name: "tunnelArn"))
145
+ TunnelSummary.add_member(:status, Shapes::ShapeRef.new(shape: TunnelStatus, location_name: "status"))
146
+ TunnelSummary.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "description"))
147
+ TunnelSummary.add_member(:created_at, Shapes::ShapeRef.new(shape: DateType, location_name: "createdAt"))
148
+ TunnelSummary.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: DateType, location_name: "lastUpdatedAt"))
149
+ TunnelSummary.struct_class = Types::TunnelSummary
150
+
151
+ TunnelSummaryList.member = Shapes::ShapeRef.new(shape: TunnelSummary)
152
+
153
+ UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: AmazonResourceName, required: true, location_name: "resourceArn"))
154
+ UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location_name: "tagKeys"))
155
+ UntagResourceRequest.struct_class = Types::UntagResourceRequest
156
+
157
+ UntagResourceResponse.struct_class = Types::UntagResourceResponse
158
+
159
+
160
+ # @api private
161
+ API = Seahorse::Model::Api.new.tap do |api|
162
+
163
+ api.version = "2018-10-05"
164
+
165
+ api.metadata = {
166
+ "apiVersion" => "2018-10-05",
167
+ "endpointPrefix" => "api.tunneling.iot",
168
+ "jsonVersion" => "1.1",
169
+ "protocol" => "json",
170
+ "serviceFullName" => "AWS IoT Secure Tunneling",
171
+ "serviceId" => "IoTSecureTunneling",
172
+ "signatureVersion" => "v4",
173
+ "signingName" => "IoTSecuredTunneling",
174
+ "targetPrefix" => "IoTSecuredTunneling",
175
+ "uid" => "iotsecuretunneling-2018-10-05",
176
+ }
177
+
178
+ api.add_operation(:close_tunnel, Seahorse::Model::Operation.new.tap do |o|
179
+ o.name = "CloseTunnel"
180
+ o.http_method = "POST"
181
+ o.http_request_uri = "/"
182
+ o.input = Shapes::ShapeRef.new(shape: CloseTunnelRequest)
183
+ o.output = Shapes::ShapeRef.new(shape: CloseTunnelResponse)
184
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
185
+ end)
186
+
187
+ api.add_operation(:describe_tunnel, Seahorse::Model::Operation.new.tap do |o|
188
+ o.name = "DescribeTunnel"
189
+ o.http_method = "POST"
190
+ o.http_request_uri = "/"
191
+ o.input = Shapes::ShapeRef.new(shape: DescribeTunnelRequest)
192
+ o.output = Shapes::ShapeRef.new(shape: DescribeTunnelResponse)
193
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
194
+ end)
195
+
196
+ api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
197
+ o.name = "ListTagsForResource"
198
+ o.http_method = "POST"
199
+ o.http_request_uri = "/"
200
+ o.input = Shapes::ShapeRef.new(shape: ListTagsForResourceRequest)
201
+ o.output = Shapes::ShapeRef.new(shape: ListTagsForResourceResponse)
202
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
203
+ end)
204
+
205
+ api.add_operation(:list_tunnels, Seahorse::Model::Operation.new.tap do |o|
206
+ o.name = "ListTunnels"
207
+ o.http_method = "POST"
208
+ o.http_request_uri = "/"
209
+ o.input = Shapes::ShapeRef.new(shape: ListTunnelsRequest)
210
+ o.output = Shapes::ShapeRef.new(shape: ListTunnelsResponse)
211
+ o[:pager] = Aws::Pager.new(
212
+ limit_key: "max_results",
213
+ tokens: {
214
+ "next_token" => "next_token"
215
+ }
216
+ )
217
+ end)
218
+
219
+ api.add_operation(:open_tunnel, Seahorse::Model::Operation.new.tap do |o|
220
+ o.name = "OpenTunnel"
221
+ o.http_method = "POST"
222
+ o.http_request_uri = "/"
223
+ o.input = Shapes::ShapeRef.new(shape: OpenTunnelRequest)
224
+ o.output = Shapes::ShapeRef.new(shape: OpenTunnelResponse)
225
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
226
+ end)
227
+
228
+ api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
229
+ o.name = "TagResource"
230
+ o.http_method = "POST"
231
+ o.http_request_uri = "/"
232
+ o.input = Shapes::ShapeRef.new(shape: TagResourceRequest)
233
+ o.output = Shapes::ShapeRef.new(shape: TagResourceResponse)
234
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
235
+ end)
236
+
237
+ api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o|
238
+ o.name = "UntagResource"
239
+ o.http_method = "POST"
240
+ o.http_request_uri = "/"
241
+ o.input = Shapes::ShapeRef.new(shape: UntagResourceRequest)
242
+ o.output = Shapes::ShapeRef.new(shape: UntagResourceResponse)
243
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
244
+ end)
245
+ end
246
+
247
+ end
248
+ end
@@ -0,0 +1,68 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws::IoTSecureTunneling
9
+
10
+ # When IoTSecureTunneling returns an error response, the Ruby SDK constructs and raises an error.
11
+ # These errors all extend Aws::IoTSecureTunneling::Errors::ServiceError < {Aws::Errors::ServiceError}
12
+ #
13
+ # You can rescue all IoTSecureTunneling errors using ServiceError:
14
+ #
15
+ # begin
16
+ # # do stuff
17
+ # rescue Aws::IoTSecureTunneling::Errors::ServiceError
18
+ # # rescues all IoTSecureTunneling API errors
19
+ # end
20
+ #
21
+ #
22
+ # ## Request Context
23
+ # ServiceError objects have a {Aws::Errors::ServiceError#context #context} method that returns
24
+ # information about the request that generated the error.
25
+ # See {Seahorse::Client::RequestContext} for more information.
26
+ #
27
+ # ## Error Classes
28
+ # * {LimitExceededException}
29
+ # * {ResourceNotFoundException}
30
+ #
31
+ # Additionally, error classes are dynamically generated for service errors based on the error code
32
+ # if they are not defined above.
33
+ module Errors
34
+
35
+ extend Aws::Errors::DynamicErrors
36
+
37
+ class LimitExceededException < ServiceError
38
+
39
+ # @param [Seahorse::Client::RequestContext] context
40
+ # @param [String] message
41
+ # @param [Aws::IoTSecureTunneling::Types::LimitExceededException] data
42
+ def initialize(context, message, data = Aws::EmptyStructure.new)
43
+ super(context, message, data)
44
+ end
45
+
46
+ # @return [String]
47
+ def message
48
+ @message || @data[:message]
49
+ end
50
+ end
51
+
52
+ class ResourceNotFoundException < ServiceError
53
+
54
+ # @param [Seahorse::Client::RequestContext] context
55
+ # @param [String] message
56
+ # @param [Aws::IoTSecureTunneling::Types::ResourceNotFoundException] data
57
+ def initialize(context, message, data = Aws::EmptyStructure.new)
58
+ super(context, message, data)
59
+ end
60
+
61
+ # @return [String]
62
+ def message
63
+ @message || @data[:message]
64
+ end
65
+ end
66
+
67
+ end
68
+ end
@@ -0,0 +1,24 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws::IoTSecureTunneling
9
+
10
+ class Resource
11
+
12
+ # @param options ({})
13
+ # @option options [Client] :client
14
+ def initialize(options = {})
15
+ @client = options[:client] || Client.new(options)
16
+ end
17
+
18
+ # @return [Client]
19
+ def client
20
+ @client
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,466 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws::IoTSecureTunneling
9
+ module Types
10
+
11
+ # @note When making an API call, you may pass CloseTunnelRequest
12
+ # data as a hash:
13
+ #
14
+ # {
15
+ # tunnel_id: "TunnelId", # required
16
+ # delete: false,
17
+ # }
18
+ #
19
+ # @!attribute [rw] tunnel_id
20
+ # The ID of the tunnel to close.
21
+ # @return [String]
22
+ #
23
+ # @!attribute [rw] delete
24
+ # When set to true, AWS IoT Secure Tunneling deletes the tunnel data
25
+ # immediately.
26
+ # @return [Boolean]
27
+ #
28
+ class CloseTunnelRequest < Struct.new(
29
+ :tunnel_id,
30
+ :delete)
31
+ include Aws::Structure
32
+ end
33
+
34
+ class CloseTunnelResponse < Aws::EmptyStructure; end
35
+
36
+ # The state of a connection.
37
+ #
38
+ # @!attribute [rw] status
39
+ # The connection status of the tunnel. Valid values are `CONNECTED`
40
+ # and `DISCONNECTED`.
41
+ # @return [String]
42
+ #
43
+ # @!attribute [rw] last_updated_at
44
+ # The last time the connection status was updated.
45
+ # @return [Time]
46
+ #
47
+ class ConnectionState < Struct.new(
48
+ :status,
49
+ :last_updated_at)
50
+ include Aws::Structure
51
+ end
52
+
53
+ # @note When making an API call, you may pass DescribeTunnelRequest
54
+ # data as a hash:
55
+ #
56
+ # {
57
+ # tunnel_id: "TunnelId", # required
58
+ # }
59
+ #
60
+ # @!attribute [rw] tunnel_id
61
+ # The tunnel to describe.
62
+ # @return [String]
63
+ #
64
+ class DescribeTunnelRequest < Struct.new(
65
+ :tunnel_id)
66
+ include Aws::Structure
67
+ end
68
+
69
+ # @!attribute [rw] tunnel
70
+ # The tunnel being described.
71
+ # @return [Types::Tunnel]
72
+ #
73
+ class DescribeTunnelResponse < Struct.new(
74
+ :tunnel)
75
+ include Aws::Structure
76
+ end
77
+
78
+ # The destination configuration.
79
+ #
80
+ # @note When making an API call, you may pass DestinationConfig
81
+ # data as a hash:
82
+ #
83
+ # {
84
+ # thing_name: "ThingName", # required
85
+ # services: ["Service"], # required
86
+ # }
87
+ #
88
+ # @!attribute [rw] thing_name
89
+ # The name of the IoT thing to which you want to connect.
90
+ # @return [String]
91
+ #
92
+ # @!attribute [rw] services
93
+ # A list of service names that identity the target application.
94
+ # Currently, you can only specify a single name. The AWS IoT client
95
+ # running on the destination device reads this value and uses it to
96
+ # look up a port or an IP address and a port. The AWS IoT client
97
+ # instantiates the local proxy which uses this information to connect
98
+ # to the destination application.
99
+ # @return [Array<String>]
100
+ #
101
+ class DestinationConfig < Struct.new(
102
+ :thing_name,
103
+ :services)
104
+ include Aws::Structure
105
+ end
106
+
107
+ # Thrown when a tunnel limit is exceeded.
108
+ #
109
+ # @!attribute [rw] message
110
+ # @return [String]
111
+ #
112
+ class LimitExceededException < Struct.new(
113
+ :message)
114
+ include Aws::Structure
115
+ end
116
+
117
+ # @note When making an API call, you may pass ListTagsForResourceRequest
118
+ # data as a hash:
119
+ #
120
+ # {
121
+ # resource_arn: "AmazonResourceName", # required
122
+ # }
123
+ #
124
+ # @!attribute [rw] resource_arn
125
+ # The resource ARN.
126
+ # @return [String]
127
+ #
128
+ class ListTagsForResourceRequest < Struct.new(
129
+ :resource_arn)
130
+ include Aws::Structure
131
+ end
132
+
133
+ # @!attribute [rw] tags
134
+ # The tags for the specified resource.
135
+ # @return [Array<Types::Tag>]
136
+ #
137
+ class ListTagsForResourceResponse < Struct.new(
138
+ :tags)
139
+ include Aws::Structure
140
+ end
141
+
142
+ # @note When making an API call, you may pass ListTunnelsRequest
143
+ # data as a hash:
144
+ #
145
+ # {
146
+ # thing_name: "ThingName",
147
+ # max_results: 1,
148
+ # next_token: "NextToken",
149
+ # }
150
+ #
151
+ # @!attribute [rw] thing_name
152
+ # The name of the IoT thing associated with the destination device.
153
+ # @return [String]
154
+ #
155
+ # @!attribute [rw] max_results
156
+ # The maximum number of results to return at once.
157
+ # @return [Integer]
158
+ #
159
+ # @!attribute [rw] next_token
160
+ # A token to retrieve the next set of results.
161
+ # @return [String]
162
+ #
163
+ class ListTunnelsRequest < Struct.new(
164
+ :thing_name,
165
+ :max_results,
166
+ :next_token)
167
+ include Aws::Structure
168
+ end
169
+
170
+ # @!attribute [rw] tunnel_summaries
171
+ # A short description of the tunnels in an AWS account.
172
+ # @return [Array<Types::TunnelSummary>]
173
+ #
174
+ # @!attribute [rw] next_token
175
+ # A token to used to retrieve the next set of results.
176
+ # @return [String]
177
+ #
178
+ class ListTunnelsResponse < Struct.new(
179
+ :tunnel_summaries,
180
+ :next_token)
181
+ include Aws::Structure
182
+ end
183
+
184
+ # @note When making an API call, you may pass OpenTunnelRequest
185
+ # data as a hash:
186
+ #
187
+ # {
188
+ # description: "Description",
189
+ # tags: [
190
+ # {
191
+ # key: "TagKey", # required
192
+ # value: "TagValue", # required
193
+ # },
194
+ # ],
195
+ # destination_config: {
196
+ # thing_name: "ThingName", # required
197
+ # services: ["Service"], # required
198
+ # },
199
+ # timeout_config: {
200
+ # max_lifetime_timeout_minutes: 1,
201
+ # },
202
+ # }
203
+ #
204
+ # @!attribute [rw] description
205
+ # A short text description of the tunnel.
206
+ # @return [String]
207
+ #
208
+ # @!attribute [rw] tags
209
+ # A collection of tag metadata.
210
+ # @return [Array<Types::Tag>]
211
+ #
212
+ # @!attribute [rw] destination_config
213
+ # The destination configuration for the OpenTunnel request.
214
+ # @return [Types::DestinationConfig]
215
+ #
216
+ # @!attribute [rw] timeout_config
217
+ # Timeout configuration for a tunnel.
218
+ # @return [Types::TimeoutConfig]
219
+ #
220
+ class OpenTunnelRequest < Struct.new(
221
+ :description,
222
+ :tags,
223
+ :destination_config,
224
+ :timeout_config)
225
+ include Aws::Structure
226
+ end
227
+
228
+ # @!attribute [rw] tunnel_id
229
+ # A unique alpha-numeric tunnel ID.
230
+ # @return [String]
231
+ #
232
+ # @!attribute [rw] tunnel_arn
233
+ # The Amazon Resource Name for the tunnel. The tunnel ARN format is
234
+ # `arn:aws:tunnel:<region>:<account-id>:tunnel/<tunnel-id>`
235
+ # @return [String]
236
+ #
237
+ # @!attribute [rw] source_access_token
238
+ # The access token the source local proxy uses to connect to AWS IoT
239
+ # Secure Tunneling.
240
+ # @return [String]
241
+ #
242
+ # @!attribute [rw] destination_access_token
243
+ # The access token the destination local proxy uses to connect to AWS
244
+ # IoT Secure Tunneling.
245
+ # @return [String]
246
+ #
247
+ class OpenTunnelResponse < Struct.new(
248
+ :tunnel_id,
249
+ :tunnel_arn,
250
+ :source_access_token,
251
+ :destination_access_token)
252
+ include Aws::Structure
253
+ end
254
+
255
+ # Thrown when an operation is attempted on a resource that does not
256
+ # exist.
257
+ #
258
+ # @!attribute [rw] message
259
+ # @return [String]
260
+ #
261
+ class ResourceNotFoundException < Struct.new(
262
+ :message)
263
+ include Aws::Structure
264
+ end
265
+
266
+ # An arbitary key/value pair used to add searchable metadata to secure
267
+ # tunnel resources.
268
+ #
269
+ # @note When making an API call, you may pass Tag
270
+ # data as a hash:
271
+ #
272
+ # {
273
+ # key: "TagKey", # required
274
+ # value: "TagValue", # required
275
+ # }
276
+ #
277
+ # @!attribute [rw] key
278
+ # The key of the tag.
279
+ # @return [String]
280
+ #
281
+ # @!attribute [rw] value
282
+ # The value of the tag.
283
+ # @return [String]
284
+ #
285
+ class Tag < Struct.new(
286
+ :key,
287
+ :value)
288
+ include Aws::Structure
289
+ end
290
+
291
+ # @note When making an API call, you may pass TagResourceRequest
292
+ # data as a hash:
293
+ #
294
+ # {
295
+ # resource_arn: "AmazonResourceName", # required
296
+ # tags: [ # required
297
+ # {
298
+ # key: "TagKey", # required
299
+ # value: "TagValue", # required
300
+ # },
301
+ # ],
302
+ # }
303
+ #
304
+ # @!attribute [rw] resource_arn
305
+ # The ARN of the resource.
306
+ # @return [String]
307
+ #
308
+ # @!attribute [rw] tags
309
+ # The tags for the resource.
310
+ # @return [Array<Types::Tag>]
311
+ #
312
+ class TagResourceRequest < Struct.new(
313
+ :resource_arn,
314
+ :tags)
315
+ include Aws::Structure
316
+ end
317
+
318
+ class TagResourceResponse < Aws::EmptyStructure; end
319
+
320
+ # Tunnel timeout configuration.
321
+ #
322
+ # @note When making an API call, you may pass TimeoutConfig
323
+ # data as a hash:
324
+ #
325
+ # {
326
+ # max_lifetime_timeout_minutes: 1,
327
+ # }
328
+ #
329
+ # @!attribute [rw] max_lifetime_timeout_minutes
330
+ # The maximum amount of time (in minutes) a tunnel can remain open. If
331
+ # not specified, maxLifetimeTimeoutMinutes defaults to 720 minutes.
332
+ # Valid values are from 1 minute to 12 hours (720 minutes)
333
+ # @return [Integer]
334
+ #
335
+ class TimeoutConfig < Struct.new(
336
+ :max_lifetime_timeout_minutes)
337
+ include Aws::Structure
338
+ end
339
+
340
+ # A connection between a source computer and a destination device.
341
+ #
342
+ # @!attribute [rw] tunnel_id
343
+ # A unique alpha-numeric ID that identifies a tunnel.
344
+ # @return [String]
345
+ #
346
+ # @!attribute [rw] tunnel_arn
347
+ # The Amazon Resource Name (ARN) of a tunnel. The tunnel ARN format is
348
+ # `arn:aws:tunnel:<region>:<account-id>:tunnel/<tunnel-id>`
349
+ # @return [String]
350
+ #
351
+ # @!attribute [rw] status
352
+ # The status of a tunnel. Valid values are: Open and Closed.
353
+ # @return [String]
354
+ #
355
+ # @!attribute [rw] source_connection_state
356
+ # The connection state of the source application.
357
+ # @return [Types::ConnectionState]
358
+ #
359
+ # @!attribute [rw] destination_connection_state
360
+ # The connection state of the destination application.
361
+ # @return [Types::ConnectionState]
362
+ #
363
+ # @!attribute [rw] description
364
+ # A description of the tunnel.
365
+ # @return [String]
366
+ #
367
+ # @!attribute [rw] destination_config
368
+ # The destination configuration that specifies the thing name of the
369
+ # destination device and a service name that the local proxy uses to
370
+ # connect to the destination application.
371
+ # @return [Types::DestinationConfig]
372
+ #
373
+ # @!attribute [rw] timeout_config
374
+ # Timeout configuration for the tunnel.
375
+ # @return [Types::TimeoutConfig]
376
+ #
377
+ # @!attribute [rw] tags
378
+ # A list of tag metadata associated with the secure tunnel.
379
+ # @return [Array<Types::Tag>]
380
+ #
381
+ # @!attribute [rw] created_at
382
+ # The time when the tunnel was created.
383
+ # @return [Time]
384
+ #
385
+ # @!attribute [rw] last_updated_at
386
+ # The last time the tunnel was updated.
387
+ # @return [Time]
388
+ #
389
+ class Tunnel < Struct.new(
390
+ :tunnel_id,
391
+ :tunnel_arn,
392
+ :status,
393
+ :source_connection_state,
394
+ :destination_connection_state,
395
+ :description,
396
+ :destination_config,
397
+ :timeout_config,
398
+ :tags,
399
+ :created_at,
400
+ :last_updated_at)
401
+ include Aws::Structure
402
+ end
403
+
404
+ # Information about the tunnel.
405
+ #
406
+ # @!attribute [rw] tunnel_id
407
+ # The unique alpha-numeric identifier for the tunnel.
408
+ # @return [String]
409
+ #
410
+ # @!attribute [rw] tunnel_arn
411
+ # The Amazon Resource Name of the tunnel. The tunnel ARN format is
412
+ # `arn:aws:tunnel:<region>:<account-id>:tunnel/<tunnel-id>`
413
+ # @return [String]
414
+ #
415
+ # @!attribute [rw] status
416
+ # The status of a tunnel. Valid values are: Open and Closed.
417
+ # @return [String]
418
+ #
419
+ # @!attribute [rw] description
420
+ # A description of the tunnel.
421
+ # @return [String]
422
+ #
423
+ # @!attribute [rw] created_at
424
+ # The time the tunnel was created.
425
+ # @return [Time]
426
+ #
427
+ # @!attribute [rw] last_updated_at
428
+ # The time the tunnel was last updated.
429
+ # @return [Time]
430
+ #
431
+ class TunnelSummary < Struct.new(
432
+ :tunnel_id,
433
+ :tunnel_arn,
434
+ :status,
435
+ :description,
436
+ :created_at,
437
+ :last_updated_at)
438
+ include Aws::Structure
439
+ end
440
+
441
+ # @note When making an API call, you may pass UntagResourceRequest
442
+ # data as a hash:
443
+ #
444
+ # {
445
+ # resource_arn: "AmazonResourceName", # required
446
+ # tag_keys: ["TagKey"], # required
447
+ # }
448
+ #
449
+ # @!attribute [rw] resource_arn
450
+ # The resource ARN.
451
+ # @return [String]
452
+ #
453
+ # @!attribute [rw] tag_keys
454
+ # The keys of the tags to remove.
455
+ # @return [Array<String>]
456
+ #
457
+ class UntagResourceRequest < Struct.new(
458
+ :resource_arn,
459
+ :tag_keys)
460
+ include Aws::Structure
461
+ end
462
+
463
+ class UntagResourceResponse < Aws::EmptyStructure; end
464
+
465
+ end
466
+ end