aws-sdk-iotsecuretunneling 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,46 @@
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 Errors
10
+
11
+ extend Aws::Errors::DynamicErrors
12
+
13
+ class LimitExceededException < ServiceError
14
+
15
+ # @param [Seahorse::Client::RequestContext] context
16
+ # @param [String] message
17
+ # @param [Aws::IoTSecureTunneling::Types::LimitExceededException] data
18
+ def initialize(context, message, data = Aws::EmptyStructure.new)
19
+ super(context, message, data)
20
+ end
21
+
22
+ # @return [String]
23
+ def message
24
+ @message || @data[:message]
25
+ end
26
+
27
+ end
28
+
29
+ class ResourceNotFoundException < ServiceError
30
+
31
+ # @param [Seahorse::Client::RequestContext] context
32
+ # @param [String] message
33
+ # @param [Aws::IoTSecureTunneling::Types::ResourceNotFoundException] data
34
+ def initialize(context, message, data = Aws::EmptyStructure.new)
35
+ super(context, message, data)
36
+ end
37
+
38
+ # @return [String]
39
+ def message
40
+ @message || @data[:message]
41
+ end
42
+
43
+ end
44
+
45
+ end
46
+ end
@@ -0,0 +1,23 @@
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
+ class Resource
10
+
11
+ # @param options ({})
12
+ # @option options [Client] :client
13
+ def initialize(options = {})
14
+ @client = options[:client] || Client.new(options)
15
+ end
16
+
17
+ # @return [Client]
18
+ def client
19
+ @client
20
+ end
21
+
22
+ end
23
+ 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