aws-sdk-appmesh 1.0.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,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a58543e064e44ddbba8c576158e14fca1c10eb70
4
+ data.tar.gz: f67d934d4b2f61180c335ddefa6ab594e005decb
5
+ SHA512:
6
+ metadata.gz: cfa6d6caf315254cadd0a73b29644965479d139d54173edc9be5910cc3295c801d9ca3e341883321bf36f27306a817be24891e8afe87bd5dc50dae5d4b19b28b
7
+ data.tar.gz: 5ee5ceaf4084675dec24d3282884854525f89a68959cf4432e727696322c22b9349d7e7f48bc4ee815d25336adab4575a05c3e3d7849959994031c83e74ff5e3
@@ -0,0 +1,47 @@
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
+ require 'aws-sdk-core'
9
+ require 'aws-sigv4'
10
+
11
+ require_relative 'aws-sdk-appmesh/types'
12
+ require_relative 'aws-sdk-appmesh/client_api'
13
+ require_relative 'aws-sdk-appmesh/client'
14
+ require_relative 'aws-sdk-appmesh/errors'
15
+ require_relative 'aws-sdk-appmesh/resource'
16
+ require_relative 'aws-sdk-appmesh/customizations'
17
+
18
+ # This module provides support for AWS App Mesh. This module is available in the
19
+ # `aws-sdk-appmesh` gem.
20
+ #
21
+ # # Client
22
+ #
23
+ # The {Client} class provides one method for each API operation. Operation
24
+ # methods each accept a hash of request parameters and return a response
25
+ # structure.
26
+ #
27
+ # See {Client} for more information.
28
+ #
29
+ # # Errors
30
+ #
31
+ # Errors returned from AWS App Mesh all
32
+ # extend {Errors::ServiceError}.
33
+ #
34
+ # begin
35
+ # # do stuff
36
+ # rescue Aws::AppMesh::Errors::ServiceError
37
+ # # rescues all service API errors
38
+ # end
39
+ #
40
+ # See {Errors} for more information.
41
+ #
42
+ # @service
43
+ module Aws::AppMesh
44
+
45
+ GEM_VERSION = '1.0.0'
46
+
47
+ end
@@ -0,0 +1,1340 @@
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
+ require 'seahorse/client/plugins/content_length.rb'
9
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
10
+ require 'aws-sdk-core/plugins/logging.rb'
11
+ require 'aws-sdk-core/plugins/param_converter.rb'
12
+ require 'aws-sdk-core/plugins/param_validator.rb'
13
+ require 'aws-sdk-core/plugins/user_agent.rb'
14
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
+ require 'aws-sdk-core/plugins/retry_errors.rb'
16
+ require 'aws-sdk-core/plugins/global_configuration.rb'
17
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
19
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
20
+ require 'aws-sdk-core/plugins/response_paging.rb'
21
+ require 'aws-sdk-core/plugins/stub_responses.rb'
22
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
23
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
24
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
25
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
26
+ require 'aws-sdk-core/plugins/signature_v4.rb'
27
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
28
+
29
+ Aws::Plugins::GlobalConfiguration.add_identifier(:appmesh)
30
+
31
+ module Aws::AppMesh
32
+ class Client < Seahorse::Client::Base
33
+
34
+ include Aws::ClientStubs
35
+
36
+ @identifier = :appmesh
37
+
38
+ set_api(ClientApi::API)
39
+
40
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
41
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
42
+ add_plugin(Aws::Plugins::Logging)
43
+ add_plugin(Aws::Plugins::ParamConverter)
44
+ add_plugin(Aws::Plugins::ParamValidator)
45
+ add_plugin(Aws::Plugins::UserAgent)
46
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
47
+ add_plugin(Aws::Plugins::RetryErrors)
48
+ add_plugin(Aws::Plugins::GlobalConfiguration)
49
+ add_plugin(Aws::Plugins::RegionalEndpoint)
50
+ add_plugin(Aws::Plugins::EndpointDiscovery)
51
+ add_plugin(Aws::Plugins::EndpointPattern)
52
+ add_plugin(Aws::Plugins::ResponsePaging)
53
+ add_plugin(Aws::Plugins::StubResponses)
54
+ add_plugin(Aws::Plugins::IdempotencyToken)
55
+ add_plugin(Aws::Plugins::JsonvalueConverter)
56
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
57
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
58
+ add_plugin(Aws::Plugins::SignatureV4)
59
+ add_plugin(Aws::Plugins::Protocols::RestJson)
60
+
61
+ # @overload initialize(options)
62
+ # @param [Hash] options
63
+ # @option options [required, Aws::CredentialProvider] :credentials
64
+ # Your AWS credentials. This can be an instance of any one of the
65
+ # following classes:
66
+ #
67
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
68
+ # credentials.
69
+ #
70
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
71
+ # from an EC2 IMDS on an EC2 instance.
72
+ #
73
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
74
+ # shared file, such as `~/.aws/config`.
75
+ #
76
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
77
+ #
78
+ # When `:credentials` are not configured directly, the following
79
+ # locations will be searched for credentials:
80
+ #
81
+ # * `Aws.config[:credentials]`
82
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
83
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
84
+ # * `~/.aws/credentials`
85
+ # * `~/.aws/config`
86
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
87
+ # very aggressive. Construct and pass an instance of
88
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
89
+ # timeouts.
90
+ #
91
+ # @option options [required, String] :region
92
+ # The AWS region to connect to. The configured `:region` is
93
+ # used to determine the service `:endpoint`. When not passed,
94
+ # a default `:region` is search for in the following locations:
95
+ #
96
+ # * `Aws.config[:region]`
97
+ # * `ENV['AWS_REGION']`
98
+ # * `ENV['AMAZON_REGION']`
99
+ # * `ENV['AWS_DEFAULT_REGION']`
100
+ # * `~/.aws/credentials`
101
+ # * `~/.aws/config`
102
+ #
103
+ # @option options [String] :access_key_id
104
+ #
105
+ # @option options [Boolean] :active_endpoint_cache (false)
106
+ # When set to `true`, a thread polling for endpoints will be running in
107
+ # the background every 60 secs (default). Defaults to `false`.
108
+ #
109
+ # @option options [Boolean] :client_side_monitoring (false)
110
+ # When `true`, client-side metrics will be collected for all API requests from
111
+ # this client.
112
+ #
113
+ # @option options [String] :client_side_monitoring_client_id ("")
114
+ # Allows you to provide an identifier for this client which will be attached to
115
+ # all generated client side metrics. Defaults to an empty string.
116
+ #
117
+ # @option options [Integer] :client_side_monitoring_port (31000)
118
+ # Required for publishing client metrics. The port that the client side monitoring
119
+ # agent is running on, where client metrics will be published via UDP.
120
+ #
121
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
122
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
123
+ # will use the Client Side Monitoring Agent Publisher.
124
+ #
125
+ # @option options [Boolean] :convert_params (true)
126
+ # When `true`, an attempt is made to coerce request parameters into
127
+ # the required types.
128
+ #
129
+ # @option options [Boolean] :disable_host_prefix_injection (false)
130
+ # Set to true to disable SDK automatically adding host prefix
131
+ # to default service endpoint when available.
132
+ #
133
+ # @option options [String] :endpoint
134
+ # The client endpoint is normally constructed from the `:region`
135
+ # option. You should only configure an `:endpoint` when connecting
136
+ # to test endpoints. This should be avalid HTTP(S) URI.
137
+ #
138
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
139
+ # Used for the maximum size limit of the LRU cache storing endpoints data
140
+ # for endpoint discovery enabled operations. Defaults to 1000.
141
+ #
142
+ # @option options [Integer] :endpoint_cache_max_threads (10)
143
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
144
+ #
145
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
146
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
147
+ # Use this option to config the time interval in seconds for making
148
+ # requests fetching endpoints information. Defaults to 60 sec.
149
+ #
150
+ # @option options [Boolean] :endpoint_discovery (false)
151
+ # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
152
+ #
153
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
154
+ # The log formatter.
155
+ #
156
+ # @option options [Symbol] :log_level (:info)
157
+ # The log level to send messages to the `:logger` at.
158
+ #
159
+ # @option options [Logger] :logger
160
+ # The Logger instance to send log messages to. If this option
161
+ # is not set, logging will be disabled.
162
+ #
163
+ # @option options [String] :profile ("default")
164
+ # Used when loading credentials from the shared credentials file
165
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
166
+ #
167
+ # @option options [Float] :retry_base_delay (0.3)
168
+ # The base delay in seconds used by the default backoff function.
169
+ #
170
+ # @option options [Symbol] :retry_jitter (:none)
171
+ # A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number.
172
+ #
173
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
174
+ #
175
+ # @option options [Integer] :retry_limit (3)
176
+ # The maximum number of times to retry failed requests. Only
177
+ # ~ 500 level server errors and certain ~ 400 level client errors
178
+ # are retried. Generally, these are throttling errors, data
179
+ # checksum errors, networking errors, timeout errors and auth
180
+ # errors from expired credentials.
181
+ #
182
+ # @option options [Integer] :retry_max_delay (0)
183
+ # The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function.
184
+ #
185
+ # @option options [String] :secret_access_key
186
+ #
187
+ # @option options [String] :session_token
188
+ #
189
+ # @option options [Boolean] :stub_responses (false)
190
+ # Causes the client to return stubbed responses. By default
191
+ # fake responses are generated and returned. You can specify
192
+ # the response data to return or errors to raise by calling
193
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
194
+ #
195
+ # ** Please note ** When response stubbing is enabled, no HTTP
196
+ # requests are made, and retries are disabled.
197
+ #
198
+ # @option options [Boolean] :validate_params (true)
199
+ # When `true`, request parameters are validated before
200
+ # sending the request.
201
+ #
202
+ def initialize(*args)
203
+ super
204
+ end
205
+
206
+ # @!group API Operations
207
+
208
+ # Creates a new service mesh. A service mesh is a logical boundary for
209
+ # network traffic between the services that reside within it.
210
+ #
211
+ # After you create your service mesh, you can create virtual nodes,
212
+ # virtual routers, and routes to distribute traffic between the
213
+ # applications in your mesh.
214
+ #
215
+ # @option params [String] :client_token
216
+ # Unique, case-sensitive identifier that you provide to ensure the
217
+ # idempotency of the request. Up to 36 letters, numbers, hyphens, and
218
+ # underscores are allowed.
219
+ #
220
+ # **A suitable default value is auto-generated.** You should normally
221
+ # not need to pass this option.**
222
+ #
223
+ # @option params [required, String] :mesh_name
224
+ # The name to use for the service mesh.
225
+ #
226
+ # @return [Types::CreateMeshOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
227
+ #
228
+ # * {Types::CreateMeshOutput#mesh #mesh} => Types::MeshData
229
+ #
230
+ # @example Request syntax with placeholder values
231
+ #
232
+ # resp = client.create_mesh({
233
+ # client_token: "String",
234
+ # mesh_name: "ResourceName", # required
235
+ # })
236
+ #
237
+ # @example Response structure
238
+ #
239
+ # resp.mesh.mesh_name #=> String
240
+ # resp.mesh.metadata.arn #=> String
241
+ # resp.mesh.metadata.created_at #=> Time
242
+ # resp.mesh.metadata.last_updated_at #=> Time
243
+ # resp.mesh.metadata.uid #=> String
244
+ # resp.mesh.metadata.version #=> Integer
245
+ # resp.mesh.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
246
+ #
247
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/CreateMesh AWS API Documentation
248
+ #
249
+ # @overload create_mesh(params = {})
250
+ # @param [Hash] params ({})
251
+ def create_mesh(params = {}, options = {})
252
+ req = build_request(:create_mesh, params)
253
+ req.send_request(options)
254
+ end
255
+
256
+ # Creates a new route that is associated with a virtual router.
257
+ #
258
+ # You can use the `prefix` parameter in your route specification for
259
+ # path-based routing of requests. For example, if your virtual router
260
+ # service name is `my-service.local`, and you want the route to match
261
+ # requests to `my-service.local/metrics`, then your prefix should be
262
+ # `/metrics`.
263
+ #
264
+ # If your route matches a request, you can distribute traffic to one or
265
+ # more target virtual nodes with relative weighting.
266
+ #
267
+ # @option params [String] :client_token
268
+ # Unique, case-sensitive identifier that you provide to ensure the
269
+ # idempotency of the request. Up to 36 letters, numbers, hyphens, and
270
+ # underscores are allowed.
271
+ #
272
+ # **A suitable default value is auto-generated.** You should normally
273
+ # not need to pass this option.**
274
+ #
275
+ # @option params [required, String] :mesh_name
276
+ # The name of the service mesh in which to create the route.
277
+ #
278
+ # @option params [required, String] :route_name
279
+ # The name to use for the route.
280
+ #
281
+ # @option params [required, Types::RouteSpec] :spec
282
+ # The route specification to apply.
283
+ #
284
+ # @option params [required, String] :virtual_router_name
285
+ # The name of the virtual router in which to create the route.
286
+ #
287
+ # @return [Types::CreateRouteOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
288
+ #
289
+ # * {Types::CreateRouteOutput#route #route} => Types::RouteData
290
+ #
291
+ # @example Request syntax with placeholder values
292
+ #
293
+ # resp = client.create_route({
294
+ # client_token: "String",
295
+ # mesh_name: "ResourceName", # required
296
+ # route_name: "ResourceName", # required
297
+ # spec: { # required
298
+ # http_route: {
299
+ # action: {
300
+ # weighted_targets: [
301
+ # {
302
+ # virtual_node: "ResourceName",
303
+ # weight: 1,
304
+ # },
305
+ # ],
306
+ # },
307
+ # match: {
308
+ # prefix: "String",
309
+ # },
310
+ # },
311
+ # },
312
+ # virtual_router_name: "ResourceName", # required
313
+ # })
314
+ #
315
+ # @example Response structure
316
+ #
317
+ # resp.route.mesh_name #=> String
318
+ # resp.route.metadata.arn #=> String
319
+ # resp.route.metadata.created_at #=> Time
320
+ # resp.route.metadata.last_updated_at #=> Time
321
+ # resp.route.metadata.uid #=> String
322
+ # resp.route.metadata.version #=> Integer
323
+ # resp.route.route_name #=> String
324
+ # resp.route.spec.http_route.action.weighted_targets #=> Array
325
+ # resp.route.spec.http_route.action.weighted_targets[0].virtual_node #=> String
326
+ # resp.route.spec.http_route.action.weighted_targets[0].weight #=> Integer
327
+ # resp.route.spec.http_route.match.prefix #=> String
328
+ # resp.route.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
329
+ # resp.route.virtual_router_name #=> String
330
+ #
331
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/CreateRoute AWS API Documentation
332
+ #
333
+ # @overload create_route(params = {})
334
+ # @param [Hash] params ({})
335
+ def create_route(params = {}, options = {})
336
+ req = build_request(:create_route, params)
337
+ req.send_request(options)
338
+ end
339
+
340
+ # Creates a new virtual node within a service mesh.
341
+ #
342
+ # A virtual node acts as logical pointer to a particular task group,
343
+ # such as an Amazon ECS service or a Kubernetes deployment. When you
344
+ # create a virtual node, you must specify the DNS service discovery name
345
+ # for your task group.
346
+ #
347
+ # Any inbound traffic that your virtual node expects should be specified
348
+ # as a `listener`. Any outbound traffic that your virtual node expects
349
+ # to reach should be specified as a `backend`.
350
+ #
351
+ # The response metadata for your new virtual node contains the `arn`
352
+ # that is associated with the virtual node. Set this value (either the
353
+ # full ARN or the truncated resource name, for example,
354
+ # `mesh/default/virtualNode/simpleapp`, as the
355
+ # `APPMESH_VIRTUAL_NODE_NAME` environment variable for your task
356
+ # group's Envoy proxy container in your task definition or pod spec.
357
+ # This is then mapped to the `node.id` and `node.cluster` Envoy
358
+ # parameters.
359
+ #
360
+ # <note markdown="1"> If you require your Envoy stats or tracing to use a different name,
361
+ # you can override the `node.cluster` value that is set by
362
+ # `APPMESH_VIRTUAL_NODE_NAME` with the `APPMESH_VIRTUAL_NODE_CLUSTER`
363
+ # environment variable.
364
+ #
365
+ # </note>
366
+ #
367
+ # @option params [String] :client_token
368
+ # Unique, case-sensitive identifier that you provide to ensure the
369
+ # idempotency of the request. Up to 36 letters, numbers, hyphens, and
370
+ # underscores are allowed.
371
+ #
372
+ # **A suitable default value is auto-generated.** You should normally
373
+ # not need to pass this option.**
374
+ #
375
+ # @option params [required, String] :mesh_name
376
+ # The name of the service mesh in which to create the virtual node.
377
+ #
378
+ # @option params [required, Types::VirtualNodeSpec] :spec
379
+ # The virtual node specification to apply.
380
+ #
381
+ # @option params [required, String] :virtual_node_name
382
+ # The name to use for the virtual node.
383
+ #
384
+ # @return [Types::CreateVirtualNodeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
385
+ #
386
+ # * {Types::CreateVirtualNodeOutput#virtual_node #virtual_node} => Types::VirtualNodeData
387
+ #
388
+ # @example Request syntax with placeholder values
389
+ #
390
+ # resp = client.create_virtual_node({
391
+ # client_token: "String",
392
+ # mesh_name: "ResourceName", # required
393
+ # spec: { # required
394
+ # backends: ["ServiceName"],
395
+ # listeners: [
396
+ # {
397
+ # health_check: {
398
+ # healthy_threshold: 1,
399
+ # interval_millis: 1,
400
+ # path: "String",
401
+ # port: 1,
402
+ # protocol: "http", # accepts http, tcp
403
+ # timeout_millis: 1,
404
+ # unhealthy_threshold: 1,
405
+ # },
406
+ # port_mapping: {
407
+ # port: 1,
408
+ # protocol: "http", # accepts http, tcp
409
+ # },
410
+ # },
411
+ # ],
412
+ # service_discovery: {
413
+ # dns: {
414
+ # service_name: "ServiceName",
415
+ # },
416
+ # },
417
+ # },
418
+ # virtual_node_name: "ResourceName", # required
419
+ # })
420
+ #
421
+ # @example Response structure
422
+ #
423
+ # resp.virtual_node.mesh_name #=> String
424
+ # resp.virtual_node.metadata.arn #=> String
425
+ # resp.virtual_node.metadata.created_at #=> Time
426
+ # resp.virtual_node.metadata.last_updated_at #=> Time
427
+ # resp.virtual_node.metadata.uid #=> String
428
+ # resp.virtual_node.metadata.version #=> Integer
429
+ # resp.virtual_node.spec.backends #=> Array
430
+ # resp.virtual_node.spec.backends[0] #=> String
431
+ # resp.virtual_node.spec.listeners #=> Array
432
+ # resp.virtual_node.spec.listeners[0].health_check.healthy_threshold #=> Integer
433
+ # resp.virtual_node.spec.listeners[0].health_check.interval_millis #=> Integer
434
+ # resp.virtual_node.spec.listeners[0].health_check.path #=> String
435
+ # resp.virtual_node.spec.listeners[0].health_check.port #=> Integer
436
+ # resp.virtual_node.spec.listeners[0].health_check.protocol #=> String, one of "http", "tcp"
437
+ # resp.virtual_node.spec.listeners[0].health_check.timeout_millis #=> Integer
438
+ # resp.virtual_node.spec.listeners[0].health_check.unhealthy_threshold #=> Integer
439
+ # resp.virtual_node.spec.listeners[0].port_mapping.port #=> Integer
440
+ # resp.virtual_node.spec.listeners[0].port_mapping.protocol #=> String, one of "http", "tcp"
441
+ # resp.virtual_node.spec.service_discovery.dns.service_name #=> String
442
+ # resp.virtual_node.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
443
+ # resp.virtual_node.virtual_node_name #=> String
444
+ #
445
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/CreateVirtualNode AWS API Documentation
446
+ #
447
+ # @overload create_virtual_node(params = {})
448
+ # @param [Hash] params ({})
449
+ def create_virtual_node(params = {}, options = {})
450
+ req = build_request(:create_virtual_node, params)
451
+ req.send_request(options)
452
+ end
453
+
454
+ # Creates a new virtual router within a service mesh.
455
+ #
456
+ # Virtual routers handle traffic for one or more service names within
457
+ # your mesh. After you create your virtual router, create and associate
458
+ # routes for your virtual router that direct incoming requests to
459
+ # different virtual nodes.
460
+ #
461
+ # @option params [String] :client_token
462
+ # Unique, case-sensitive identifier that you provide to ensure the
463
+ # idempotency of the request. Up to 36 letters, numbers, hyphens, and
464
+ # underscores are allowed.
465
+ #
466
+ # **A suitable default value is auto-generated.** You should normally
467
+ # not need to pass this option.**
468
+ #
469
+ # @option params [required, String] :mesh_name
470
+ # The name of the service mesh in which to create the virtual router.
471
+ #
472
+ # @option params [required, Types::VirtualRouterSpec] :spec
473
+ # The virtual router specification to apply.
474
+ #
475
+ # @option params [required, String] :virtual_router_name
476
+ # The name to use for the virtual router.
477
+ #
478
+ # @return [Types::CreateVirtualRouterOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
479
+ #
480
+ # * {Types::CreateVirtualRouterOutput#virtual_router #virtual_router} => Types::VirtualRouterData
481
+ #
482
+ # @example Request syntax with placeholder values
483
+ #
484
+ # resp = client.create_virtual_router({
485
+ # client_token: "String",
486
+ # mesh_name: "ResourceName", # required
487
+ # spec: { # required
488
+ # service_names: ["ServiceName"],
489
+ # },
490
+ # virtual_router_name: "ResourceName", # required
491
+ # })
492
+ #
493
+ # @example Response structure
494
+ #
495
+ # resp.virtual_router.mesh_name #=> String
496
+ # resp.virtual_router.metadata.arn #=> String
497
+ # resp.virtual_router.metadata.created_at #=> Time
498
+ # resp.virtual_router.metadata.last_updated_at #=> Time
499
+ # resp.virtual_router.metadata.uid #=> String
500
+ # resp.virtual_router.metadata.version #=> Integer
501
+ # resp.virtual_router.spec.service_names #=> Array
502
+ # resp.virtual_router.spec.service_names[0] #=> String
503
+ # resp.virtual_router.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
504
+ # resp.virtual_router.virtual_router_name #=> String
505
+ #
506
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/CreateVirtualRouter AWS API Documentation
507
+ #
508
+ # @overload create_virtual_router(params = {})
509
+ # @param [Hash] params ({})
510
+ def create_virtual_router(params = {}, options = {})
511
+ req = build_request(:create_virtual_router, params)
512
+ req.send_request(options)
513
+ end
514
+
515
+ # Deletes an existing service mesh.
516
+ #
517
+ # You must delete all resources (routes, virtual routers, virtual nodes)
518
+ # in the service mesh before you can delete the mesh itself.
519
+ #
520
+ # @option params [required, String] :mesh_name
521
+ # The name of the service mesh to delete.
522
+ #
523
+ # @return [Types::DeleteMeshOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
524
+ #
525
+ # * {Types::DeleteMeshOutput#mesh #mesh} => Types::MeshData
526
+ #
527
+ # @example Request syntax with placeholder values
528
+ #
529
+ # resp = client.delete_mesh({
530
+ # mesh_name: "ResourceName", # required
531
+ # })
532
+ #
533
+ # @example Response structure
534
+ #
535
+ # resp.mesh.mesh_name #=> String
536
+ # resp.mesh.metadata.arn #=> String
537
+ # resp.mesh.metadata.created_at #=> Time
538
+ # resp.mesh.metadata.last_updated_at #=> Time
539
+ # resp.mesh.metadata.uid #=> String
540
+ # resp.mesh.metadata.version #=> Integer
541
+ # resp.mesh.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
542
+ #
543
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/DeleteMesh AWS API Documentation
544
+ #
545
+ # @overload delete_mesh(params = {})
546
+ # @param [Hash] params ({})
547
+ def delete_mesh(params = {}, options = {})
548
+ req = build_request(:delete_mesh, params)
549
+ req.send_request(options)
550
+ end
551
+
552
+ # Deletes an existing route.
553
+ #
554
+ # @option params [required, String] :mesh_name
555
+ # The name of the service mesh in which to delete the route.
556
+ #
557
+ # @option params [required, String] :route_name
558
+ # The name of the route to delete.
559
+ #
560
+ # @option params [required, String] :virtual_router_name
561
+ # The name of the virtual router in which to delete the route.
562
+ #
563
+ # @return [Types::DeleteRouteOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
564
+ #
565
+ # * {Types::DeleteRouteOutput#route #route} => Types::RouteData
566
+ #
567
+ # @example Request syntax with placeholder values
568
+ #
569
+ # resp = client.delete_route({
570
+ # mesh_name: "ResourceName", # required
571
+ # route_name: "ResourceName", # required
572
+ # virtual_router_name: "ResourceName", # required
573
+ # })
574
+ #
575
+ # @example Response structure
576
+ #
577
+ # resp.route.mesh_name #=> String
578
+ # resp.route.metadata.arn #=> String
579
+ # resp.route.metadata.created_at #=> Time
580
+ # resp.route.metadata.last_updated_at #=> Time
581
+ # resp.route.metadata.uid #=> String
582
+ # resp.route.metadata.version #=> Integer
583
+ # resp.route.route_name #=> String
584
+ # resp.route.spec.http_route.action.weighted_targets #=> Array
585
+ # resp.route.spec.http_route.action.weighted_targets[0].virtual_node #=> String
586
+ # resp.route.spec.http_route.action.weighted_targets[0].weight #=> Integer
587
+ # resp.route.spec.http_route.match.prefix #=> String
588
+ # resp.route.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
589
+ # resp.route.virtual_router_name #=> String
590
+ #
591
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/DeleteRoute AWS API Documentation
592
+ #
593
+ # @overload delete_route(params = {})
594
+ # @param [Hash] params ({})
595
+ def delete_route(params = {}, options = {})
596
+ req = build_request(:delete_route, params)
597
+ req.send_request(options)
598
+ end
599
+
600
+ # Deletes an existing virtual node.
601
+ #
602
+ # @option params [required, String] :mesh_name
603
+ # The name of the service mesh in which to delete the virtual node.
604
+ #
605
+ # @option params [required, String] :virtual_node_name
606
+ # The name of the virtual node to delete.
607
+ #
608
+ # @return [Types::DeleteVirtualNodeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
609
+ #
610
+ # * {Types::DeleteVirtualNodeOutput#virtual_node #virtual_node} => Types::VirtualNodeData
611
+ #
612
+ # @example Request syntax with placeholder values
613
+ #
614
+ # resp = client.delete_virtual_node({
615
+ # mesh_name: "ResourceName", # required
616
+ # virtual_node_name: "ResourceName", # required
617
+ # })
618
+ #
619
+ # @example Response structure
620
+ #
621
+ # resp.virtual_node.mesh_name #=> String
622
+ # resp.virtual_node.metadata.arn #=> String
623
+ # resp.virtual_node.metadata.created_at #=> Time
624
+ # resp.virtual_node.metadata.last_updated_at #=> Time
625
+ # resp.virtual_node.metadata.uid #=> String
626
+ # resp.virtual_node.metadata.version #=> Integer
627
+ # resp.virtual_node.spec.backends #=> Array
628
+ # resp.virtual_node.spec.backends[0] #=> String
629
+ # resp.virtual_node.spec.listeners #=> Array
630
+ # resp.virtual_node.spec.listeners[0].health_check.healthy_threshold #=> Integer
631
+ # resp.virtual_node.spec.listeners[0].health_check.interval_millis #=> Integer
632
+ # resp.virtual_node.spec.listeners[0].health_check.path #=> String
633
+ # resp.virtual_node.spec.listeners[0].health_check.port #=> Integer
634
+ # resp.virtual_node.spec.listeners[0].health_check.protocol #=> String, one of "http", "tcp"
635
+ # resp.virtual_node.spec.listeners[0].health_check.timeout_millis #=> Integer
636
+ # resp.virtual_node.spec.listeners[0].health_check.unhealthy_threshold #=> Integer
637
+ # resp.virtual_node.spec.listeners[0].port_mapping.port #=> Integer
638
+ # resp.virtual_node.spec.listeners[0].port_mapping.protocol #=> String, one of "http", "tcp"
639
+ # resp.virtual_node.spec.service_discovery.dns.service_name #=> String
640
+ # resp.virtual_node.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
641
+ # resp.virtual_node.virtual_node_name #=> String
642
+ #
643
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/DeleteVirtualNode AWS API Documentation
644
+ #
645
+ # @overload delete_virtual_node(params = {})
646
+ # @param [Hash] params ({})
647
+ def delete_virtual_node(params = {}, options = {})
648
+ req = build_request(:delete_virtual_node, params)
649
+ req.send_request(options)
650
+ end
651
+
652
+ # Deletes an existing virtual router.
653
+ #
654
+ # You must delete any routes associated with the virtual router before
655
+ # you can delete the router itself.
656
+ #
657
+ # @option params [required, String] :mesh_name
658
+ # The name of the service mesh in which to delete the virtual router.
659
+ #
660
+ # @option params [required, String] :virtual_router_name
661
+ # The name of the virtual router to delete.
662
+ #
663
+ # @return [Types::DeleteVirtualRouterOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
664
+ #
665
+ # * {Types::DeleteVirtualRouterOutput#virtual_router #virtual_router} => Types::VirtualRouterData
666
+ #
667
+ # @example Request syntax with placeholder values
668
+ #
669
+ # resp = client.delete_virtual_router({
670
+ # mesh_name: "ResourceName", # required
671
+ # virtual_router_name: "ResourceName", # required
672
+ # })
673
+ #
674
+ # @example Response structure
675
+ #
676
+ # resp.virtual_router.mesh_name #=> String
677
+ # resp.virtual_router.metadata.arn #=> String
678
+ # resp.virtual_router.metadata.created_at #=> Time
679
+ # resp.virtual_router.metadata.last_updated_at #=> Time
680
+ # resp.virtual_router.metadata.uid #=> String
681
+ # resp.virtual_router.metadata.version #=> Integer
682
+ # resp.virtual_router.spec.service_names #=> Array
683
+ # resp.virtual_router.spec.service_names[0] #=> String
684
+ # resp.virtual_router.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
685
+ # resp.virtual_router.virtual_router_name #=> String
686
+ #
687
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/DeleteVirtualRouter AWS API Documentation
688
+ #
689
+ # @overload delete_virtual_router(params = {})
690
+ # @param [Hash] params ({})
691
+ def delete_virtual_router(params = {}, options = {})
692
+ req = build_request(:delete_virtual_router, params)
693
+ req.send_request(options)
694
+ end
695
+
696
+ # Describes an existing cluster.
697
+ #
698
+ # @option params [required, String] :mesh_name
699
+ # The name of the service mesh to describe.
700
+ #
701
+ # @return [Types::DescribeMeshOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
702
+ #
703
+ # * {Types::DescribeMeshOutput#mesh #mesh} => Types::MeshData
704
+ #
705
+ # @example Request syntax with placeholder values
706
+ #
707
+ # resp = client.describe_mesh({
708
+ # mesh_name: "ResourceName", # required
709
+ # })
710
+ #
711
+ # @example Response structure
712
+ #
713
+ # resp.mesh.mesh_name #=> String
714
+ # resp.mesh.metadata.arn #=> String
715
+ # resp.mesh.metadata.created_at #=> Time
716
+ # resp.mesh.metadata.last_updated_at #=> Time
717
+ # resp.mesh.metadata.uid #=> String
718
+ # resp.mesh.metadata.version #=> Integer
719
+ # resp.mesh.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
720
+ #
721
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/DescribeMesh AWS API Documentation
722
+ #
723
+ # @overload describe_mesh(params = {})
724
+ # @param [Hash] params ({})
725
+ def describe_mesh(params = {}, options = {})
726
+ req = build_request(:describe_mesh, params)
727
+ req.send_request(options)
728
+ end
729
+
730
+ # Describes an existing route.
731
+ #
732
+ # @option params [required, String] :mesh_name
733
+ # The name of the service mesh in which the route resides.
734
+ #
735
+ # @option params [required, String] :route_name
736
+ # The name of the route to describe.
737
+ #
738
+ # @option params [required, String] :virtual_router_name
739
+ # The name of the virtual router with which the route is associated.
740
+ #
741
+ # @return [Types::DescribeRouteOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
742
+ #
743
+ # * {Types::DescribeRouteOutput#route #route} => Types::RouteData
744
+ #
745
+ # @example Request syntax with placeholder values
746
+ #
747
+ # resp = client.describe_route({
748
+ # mesh_name: "ResourceName", # required
749
+ # route_name: "ResourceName", # required
750
+ # virtual_router_name: "ResourceName", # required
751
+ # })
752
+ #
753
+ # @example Response structure
754
+ #
755
+ # resp.route.mesh_name #=> String
756
+ # resp.route.metadata.arn #=> String
757
+ # resp.route.metadata.created_at #=> Time
758
+ # resp.route.metadata.last_updated_at #=> Time
759
+ # resp.route.metadata.uid #=> String
760
+ # resp.route.metadata.version #=> Integer
761
+ # resp.route.route_name #=> String
762
+ # resp.route.spec.http_route.action.weighted_targets #=> Array
763
+ # resp.route.spec.http_route.action.weighted_targets[0].virtual_node #=> String
764
+ # resp.route.spec.http_route.action.weighted_targets[0].weight #=> Integer
765
+ # resp.route.spec.http_route.match.prefix #=> String
766
+ # resp.route.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
767
+ # resp.route.virtual_router_name #=> String
768
+ #
769
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/DescribeRoute AWS API Documentation
770
+ #
771
+ # @overload describe_route(params = {})
772
+ # @param [Hash] params ({})
773
+ def describe_route(params = {}, options = {})
774
+ req = build_request(:describe_route, params)
775
+ req.send_request(options)
776
+ end
777
+
778
+ # Describes an existing virtual node.
779
+ #
780
+ # @option params [required, String] :mesh_name
781
+ # The name of the service mesh in which the virtual node resides.
782
+ #
783
+ # @option params [required, String] :virtual_node_name
784
+ # The name of the virtual node to describe.
785
+ #
786
+ # @return [Types::DescribeVirtualNodeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
787
+ #
788
+ # * {Types::DescribeVirtualNodeOutput#virtual_node #virtual_node} => Types::VirtualNodeData
789
+ #
790
+ # @example Request syntax with placeholder values
791
+ #
792
+ # resp = client.describe_virtual_node({
793
+ # mesh_name: "ResourceName", # required
794
+ # virtual_node_name: "ResourceName", # required
795
+ # })
796
+ #
797
+ # @example Response structure
798
+ #
799
+ # resp.virtual_node.mesh_name #=> String
800
+ # resp.virtual_node.metadata.arn #=> String
801
+ # resp.virtual_node.metadata.created_at #=> Time
802
+ # resp.virtual_node.metadata.last_updated_at #=> Time
803
+ # resp.virtual_node.metadata.uid #=> String
804
+ # resp.virtual_node.metadata.version #=> Integer
805
+ # resp.virtual_node.spec.backends #=> Array
806
+ # resp.virtual_node.spec.backends[0] #=> String
807
+ # resp.virtual_node.spec.listeners #=> Array
808
+ # resp.virtual_node.spec.listeners[0].health_check.healthy_threshold #=> Integer
809
+ # resp.virtual_node.spec.listeners[0].health_check.interval_millis #=> Integer
810
+ # resp.virtual_node.spec.listeners[0].health_check.path #=> String
811
+ # resp.virtual_node.spec.listeners[0].health_check.port #=> Integer
812
+ # resp.virtual_node.spec.listeners[0].health_check.protocol #=> String, one of "http", "tcp"
813
+ # resp.virtual_node.spec.listeners[0].health_check.timeout_millis #=> Integer
814
+ # resp.virtual_node.spec.listeners[0].health_check.unhealthy_threshold #=> Integer
815
+ # resp.virtual_node.spec.listeners[0].port_mapping.port #=> Integer
816
+ # resp.virtual_node.spec.listeners[0].port_mapping.protocol #=> String, one of "http", "tcp"
817
+ # resp.virtual_node.spec.service_discovery.dns.service_name #=> String
818
+ # resp.virtual_node.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
819
+ # resp.virtual_node.virtual_node_name #=> String
820
+ #
821
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/DescribeVirtualNode AWS API Documentation
822
+ #
823
+ # @overload describe_virtual_node(params = {})
824
+ # @param [Hash] params ({})
825
+ def describe_virtual_node(params = {}, options = {})
826
+ req = build_request(:describe_virtual_node, params)
827
+ req.send_request(options)
828
+ end
829
+
830
+ # Describes an existing virtual router.
831
+ #
832
+ # @option params [required, String] :mesh_name
833
+ # The name of the service mesh in which the virtual router resides.
834
+ #
835
+ # @option params [required, String] :virtual_router_name
836
+ # The name of the virtual router to describe.
837
+ #
838
+ # @return [Types::DescribeVirtualRouterOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
839
+ #
840
+ # * {Types::DescribeVirtualRouterOutput#virtual_router #virtual_router} => Types::VirtualRouterData
841
+ #
842
+ # @example Request syntax with placeholder values
843
+ #
844
+ # resp = client.describe_virtual_router({
845
+ # mesh_name: "ResourceName", # required
846
+ # virtual_router_name: "ResourceName", # required
847
+ # })
848
+ #
849
+ # @example Response structure
850
+ #
851
+ # resp.virtual_router.mesh_name #=> String
852
+ # resp.virtual_router.metadata.arn #=> String
853
+ # resp.virtual_router.metadata.created_at #=> Time
854
+ # resp.virtual_router.metadata.last_updated_at #=> Time
855
+ # resp.virtual_router.metadata.uid #=> String
856
+ # resp.virtual_router.metadata.version #=> Integer
857
+ # resp.virtual_router.spec.service_names #=> Array
858
+ # resp.virtual_router.spec.service_names[0] #=> String
859
+ # resp.virtual_router.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
860
+ # resp.virtual_router.virtual_router_name #=> String
861
+ #
862
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/DescribeVirtualRouter AWS API Documentation
863
+ #
864
+ # @overload describe_virtual_router(params = {})
865
+ # @param [Hash] params ({})
866
+ def describe_virtual_router(params = {}, options = {})
867
+ req = build_request(:describe_virtual_router, params)
868
+ req.send_request(options)
869
+ end
870
+
871
+ # Returns a list of existing service meshes.
872
+ #
873
+ # @option params [Integer] :limit
874
+ # The maximum number of mesh results returned by `ListMeshes` in
875
+ # paginated output. When this parameter is used, `ListMeshes` only
876
+ # returns `limit` results in a single page along with a `nextToken`
877
+ # response element. The remaining results of the initial request can be
878
+ # seen by sending another `ListMeshes` request with the returned
879
+ # `nextToken` value. This value can be between 1 and 100. If this
880
+ # parameter is not used, then `ListMeshes` returns up to 100 results and
881
+ # a `nextToken` value if applicable.
882
+ #
883
+ # @option params [String] :next_token
884
+ # The `nextToken` value returned from a previous paginated `ListMeshes`
885
+ # request where `limit` was used and the results exceeded the value of
886
+ # that parameter. Pagination continues from the end of the previous
887
+ # results that returned the `nextToken` value.
888
+ #
889
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only used
890
+ # to retrieve the next items in a list and not for other programmatic
891
+ # purposes.
892
+ #
893
+ # </note>
894
+ #
895
+ # @return [Types::ListMeshesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
896
+ #
897
+ # * {Types::ListMeshesOutput#meshes #meshes} => Array&lt;Types::MeshRef&gt;
898
+ # * {Types::ListMeshesOutput#next_token #next_token} => String
899
+ #
900
+ # @example Request syntax with placeholder values
901
+ #
902
+ # resp = client.list_meshes({
903
+ # limit: 1,
904
+ # next_token: "String",
905
+ # })
906
+ #
907
+ # @example Response structure
908
+ #
909
+ # resp.meshes #=> Array
910
+ # resp.meshes[0].arn #=> String
911
+ # resp.meshes[0].mesh_name #=> String
912
+ # resp.next_token #=> String
913
+ #
914
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/ListMeshes AWS API Documentation
915
+ #
916
+ # @overload list_meshes(params = {})
917
+ # @param [Hash] params ({})
918
+ def list_meshes(params = {}, options = {})
919
+ req = build_request(:list_meshes, params)
920
+ req.send_request(options)
921
+ end
922
+
923
+ # Returns a list of existing routes in a service mesh.
924
+ #
925
+ # @option params [Integer] :limit
926
+ # The maximum number of mesh results returned by `ListRoutes` in
927
+ # paginated output. When this parameter is used, `ListRoutes` only
928
+ # returns `limit` results in a single page along with a `nextToken`
929
+ # response element. The remaining results of the initial request can be
930
+ # seen by sending another `ListRoutes` request with the returned
931
+ # `nextToken` value. This value can be between 1 and 100. If this
932
+ # parameter is not used, then `ListRoutes` returns up to 100 results and
933
+ # a `nextToken` value if applicable.
934
+ #
935
+ # @option params [required, String] :mesh_name
936
+ # The name of the service mesh in which to list routes.
937
+ #
938
+ # @option params [String] :next_token
939
+ # The `nextToken` value returned from a previous paginated `ListRoutes`
940
+ # request where `limit` was used and the results exceeded the value of
941
+ # that parameter. Pagination continues from the end of the previous
942
+ # results that returned the `nextToken` value.
943
+ #
944
+ # @option params [required, String] :virtual_router_name
945
+ # The name of the virtual router in which to list routes.
946
+ #
947
+ # @return [Types::ListRoutesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
948
+ #
949
+ # * {Types::ListRoutesOutput#next_token #next_token} => String
950
+ # * {Types::ListRoutesOutput#routes #routes} => Array&lt;Types::RouteRef&gt;
951
+ #
952
+ # @example Request syntax with placeholder values
953
+ #
954
+ # resp = client.list_routes({
955
+ # limit: 1,
956
+ # mesh_name: "ResourceName", # required
957
+ # next_token: "String",
958
+ # virtual_router_name: "ResourceName", # required
959
+ # })
960
+ #
961
+ # @example Response structure
962
+ #
963
+ # resp.next_token #=> String
964
+ # resp.routes #=> Array
965
+ # resp.routes[0].arn #=> String
966
+ # resp.routes[0].mesh_name #=> String
967
+ # resp.routes[0].route_name #=> String
968
+ # resp.routes[0].virtual_router_name #=> String
969
+ #
970
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/ListRoutes AWS API Documentation
971
+ #
972
+ # @overload list_routes(params = {})
973
+ # @param [Hash] params ({})
974
+ def list_routes(params = {}, options = {})
975
+ req = build_request(:list_routes, params)
976
+ req.send_request(options)
977
+ end
978
+
979
+ # Returns a list of existing virtual nodes.
980
+ #
981
+ # @option params [Integer] :limit
982
+ # The maximum number of mesh results returned by `ListVirtualNodes` in
983
+ # paginated output. When this parameter is used, `ListVirtualNodes` only
984
+ # returns `limit` results in a single page along with a `nextToken`
985
+ # response element. The remaining results of the initial request can be
986
+ # seen by sending another `ListVirtualNodes` request with the returned
987
+ # `nextToken` value. This value can be between 1 and 100. If this
988
+ # parameter is not used, then `ListVirtualNodes` returns up to 100
989
+ # results and a `nextToken` value if applicable.
990
+ #
991
+ # @option params [required, String] :mesh_name
992
+ # The name of the service mesh in which to list virtual nodes.
993
+ #
994
+ # @option params [String] :next_token
995
+ # The `nextToken` value returned from a previous paginated
996
+ # `ListVirtualNodes` request where `limit` was used and the results
997
+ # exceeded the value of that parameter. Pagination continues from the
998
+ # end of the previous results that returned the `nextToken` value.
999
+ #
1000
+ # @return [Types::ListVirtualNodesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1001
+ #
1002
+ # * {Types::ListVirtualNodesOutput#next_token #next_token} => String
1003
+ # * {Types::ListVirtualNodesOutput#virtual_nodes #virtual_nodes} => Array&lt;Types::VirtualNodeRef&gt;
1004
+ #
1005
+ # @example Request syntax with placeholder values
1006
+ #
1007
+ # resp = client.list_virtual_nodes({
1008
+ # limit: 1,
1009
+ # mesh_name: "ResourceName", # required
1010
+ # next_token: "String",
1011
+ # })
1012
+ #
1013
+ # @example Response structure
1014
+ #
1015
+ # resp.next_token #=> String
1016
+ # resp.virtual_nodes #=> Array
1017
+ # resp.virtual_nodes[0].arn #=> String
1018
+ # resp.virtual_nodes[0].mesh_name #=> String
1019
+ # resp.virtual_nodes[0].virtual_node_name #=> String
1020
+ #
1021
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/ListVirtualNodes AWS API Documentation
1022
+ #
1023
+ # @overload list_virtual_nodes(params = {})
1024
+ # @param [Hash] params ({})
1025
+ def list_virtual_nodes(params = {}, options = {})
1026
+ req = build_request(:list_virtual_nodes, params)
1027
+ req.send_request(options)
1028
+ end
1029
+
1030
+ # Returns a list of existing virtual routers in a service mesh.
1031
+ #
1032
+ # @option params [Integer] :limit
1033
+ # The maximum number of mesh results returned by `ListVirtualRouters` in
1034
+ # paginated output. When this parameter is used, `ListVirtualRouters`
1035
+ # only returns `limit` results in a single page along with a `nextToken`
1036
+ # response element. The remaining results of the initial request can be
1037
+ # seen by sending another `ListVirtualRouters` request with the returned
1038
+ # `nextToken` value. This value can be between 1 and 100. If this
1039
+ # parameter is not used, then `ListVirtualRouters` returns up to 100
1040
+ # results and a `nextToken` value if applicable.
1041
+ #
1042
+ # @option params [required, String] :mesh_name
1043
+ # The name of the service mesh in which to list virtual routers.
1044
+ #
1045
+ # @option params [String] :next_token
1046
+ # The `nextToken` value returned from a previous paginated
1047
+ # `ListVirtualRouters` request where `limit` was used and the results
1048
+ # exceeded the value of that parameter. Pagination continues from the
1049
+ # end of the previous results that returned the `nextToken` value.
1050
+ #
1051
+ # @return [Types::ListVirtualRoutersOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1052
+ #
1053
+ # * {Types::ListVirtualRoutersOutput#next_token #next_token} => String
1054
+ # * {Types::ListVirtualRoutersOutput#virtual_routers #virtual_routers} => Array&lt;Types::VirtualRouterRef&gt;
1055
+ #
1056
+ # @example Request syntax with placeholder values
1057
+ #
1058
+ # resp = client.list_virtual_routers({
1059
+ # limit: 1,
1060
+ # mesh_name: "ResourceName", # required
1061
+ # next_token: "String",
1062
+ # })
1063
+ #
1064
+ # @example Response structure
1065
+ #
1066
+ # resp.next_token #=> String
1067
+ # resp.virtual_routers #=> Array
1068
+ # resp.virtual_routers[0].arn #=> String
1069
+ # resp.virtual_routers[0].mesh_name #=> String
1070
+ # resp.virtual_routers[0].virtual_router_name #=> String
1071
+ #
1072
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/ListVirtualRouters AWS API Documentation
1073
+ #
1074
+ # @overload list_virtual_routers(params = {})
1075
+ # @param [Hash] params ({})
1076
+ def list_virtual_routers(params = {}, options = {})
1077
+ req = build_request(:list_virtual_routers, params)
1078
+ req.send_request(options)
1079
+ end
1080
+
1081
+ # Updates an existing route for a specified service mesh and virtual
1082
+ # router.
1083
+ #
1084
+ # @option params [String] :client_token
1085
+ # Unique, case-sensitive identifier that you provide to ensure the
1086
+ # idempotency of the request. Up to 36 letters, numbers, hyphens, and
1087
+ # underscores are allowed.
1088
+ #
1089
+ # **A suitable default value is auto-generated.** You should normally
1090
+ # not need to pass this option.**
1091
+ #
1092
+ # @option params [required, String] :mesh_name
1093
+ # The name of the service mesh in which the route resides.
1094
+ #
1095
+ # @option params [required, String] :route_name
1096
+ # The name of the route to update.
1097
+ #
1098
+ # @option params [required, Types::RouteSpec] :spec
1099
+ # The new route specification to apply. This overwrites the existing
1100
+ # data.
1101
+ #
1102
+ # @option params [required, String] :virtual_router_name
1103
+ # The name of the virtual router with which the route is associated.
1104
+ #
1105
+ # @return [Types::UpdateRouteOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1106
+ #
1107
+ # * {Types::UpdateRouteOutput#route #route} => Types::RouteData
1108
+ #
1109
+ # @example Request syntax with placeholder values
1110
+ #
1111
+ # resp = client.update_route({
1112
+ # client_token: "String",
1113
+ # mesh_name: "ResourceName", # required
1114
+ # route_name: "ResourceName", # required
1115
+ # spec: { # required
1116
+ # http_route: {
1117
+ # action: {
1118
+ # weighted_targets: [
1119
+ # {
1120
+ # virtual_node: "ResourceName",
1121
+ # weight: 1,
1122
+ # },
1123
+ # ],
1124
+ # },
1125
+ # match: {
1126
+ # prefix: "String",
1127
+ # },
1128
+ # },
1129
+ # },
1130
+ # virtual_router_name: "ResourceName", # required
1131
+ # })
1132
+ #
1133
+ # @example Response structure
1134
+ #
1135
+ # resp.route.mesh_name #=> String
1136
+ # resp.route.metadata.arn #=> String
1137
+ # resp.route.metadata.created_at #=> Time
1138
+ # resp.route.metadata.last_updated_at #=> Time
1139
+ # resp.route.metadata.uid #=> String
1140
+ # resp.route.metadata.version #=> Integer
1141
+ # resp.route.route_name #=> String
1142
+ # resp.route.spec.http_route.action.weighted_targets #=> Array
1143
+ # resp.route.spec.http_route.action.weighted_targets[0].virtual_node #=> String
1144
+ # resp.route.spec.http_route.action.weighted_targets[0].weight #=> Integer
1145
+ # resp.route.spec.http_route.match.prefix #=> String
1146
+ # resp.route.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
1147
+ # resp.route.virtual_router_name #=> String
1148
+ #
1149
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/UpdateRoute AWS API Documentation
1150
+ #
1151
+ # @overload update_route(params = {})
1152
+ # @param [Hash] params ({})
1153
+ def update_route(params = {}, options = {})
1154
+ req = build_request(:update_route, params)
1155
+ req.send_request(options)
1156
+ end
1157
+
1158
+ # Updates an existing virtual node in a specified service mesh.
1159
+ #
1160
+ # @option params [String] :client_token
1161
+ # Unique, case-sensitive identifier that you provide to ensure the
1162
+ # idempotency of the request. Up to 36 letters, numbers, hyphens, and
1163
+ # underscores are allowed.
1164
+ #
1165
+ # **A suitable default value is auto-generated.** You should normally
1166
+ # not need to pass this option.**
1167
+ #
1168
+ # @option params [required, String] :mesh_name
1169
+ # The name of the service mesh in which the virtual node resides.
1170
+ #
1171
+ # @option params [required, Types::VirtualNodeSpec] :spec
1172
+ # The new virtual node specification to apply. This overwrites the
1173
+ # existing data.
1174
+ #
1175
+ # @option params [required, String] :virtual_node_name
1176
+ # The name of the virtual node to update.
1177
+ #
1178
+ # @return [Types::UpdateVirtualNodeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1179
+ #
1180
+ # * {Types::UpdateVirtualNodeOutput#virtual_node #virtual_node} => Types::VirtualNodeData
1181
+ #
1182
+ # @example Request syntax with placeholder values
1183
+ #
1184
+ # resp = client.update_virtual_node({
1185
+ # client_token: "String",
1186
+ # mesh_name: "ResourceName", # required
1187
+ # spec: { # required
1188
+ # backends: ["ServiceName"],
1189
+ # listeners: [
1190
+ # {
1191
+ # health_check: {
1192
+ # healthy_threshold: 1,
1193
+ # interval_millis: 1,
1194
+ # path: "String",
1195
+ # port: 1,
1196
+ # protocol: "http", # accepts http, tcp
1197
+ # timeout_millis: 1,
1198
+ # unhealthy_threshold: 1,
1199
+ # },
1200
+ # port_mapping: {
1201
+ # port: 1,
1202
+ # protocol: "http", # accepts http, tcp
1203
+ # },
1204
+ # },
1205
+ # ],
1206
+ # service_discovery: {
1207
+ # dns: {
1208
+ # service_name: "ServiceName",
1209
+ # },
1210
+ # },
1211
+ # },
1212
+ # virtual_node_name: "ResourceName", # required
1213
+ # })
1214
+ #
1215
+ # @example Response structure
1216
+ #
1217
+ # resp.virtual_node.mesh_name #=> String
1218
+ # resp.virtual_node.metadata.arn #=> String
1219
+ # resp.virtual_node.metadata.created_at #=> Time
1220
+ # resp.virtual_node.metadata.last_updated_at #=> Time
1221
+ # resp.virtual_node.metadata.uid #=> String
1222
+ # resp.virtual_node.metadata.version #=> Integer
1223
+ # resp.virtual_node.spec.backends #=> Array
1224
+ # resp.virtual_node.spec.backends[0] #=> String
1225
+ # resp.virtual_node.spec.listeners #=> Array
1226
+ # resp.virtual_node.spec.listeners[0].health_check.healthy_threshold #=> Integer
1227
+ # resp.virtual_node.spec.listeners[0].health_check.interval_millis #=> Integer
1228
+ # resp.virtual_node.spec.listeners[0].health_check.path #=> String
1229
+ # resp.virtual_node.spec.listeners[0].health_check.port #=> Integer
1230
+ # resp.virtual_node.spec.listeners[0].health_check.protocol #=> String, one of "http", "tcp"
1231
+ # resp.virtual_node.spec.listeners[0].health_check.timeout_millis #=> Integer
1232
+ # resp.virtual_node.spec.listeners[0].health_check.unhealthy_threshold #=> Integer
1233
+ # resp.virtual_node.spec.listeners[0].port_mapping.port #=> Integer
1234
+ # resp.virtual_node.spec.listeners[0].port_mapping.protocol #=> String, one of "http", "tcp"
1235
+ # resp.virtual_node.spec.service_discovery.dns.service_name #=> String
1236
+ # resp.virtual_node.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
1237
+ # resp.virtual_node.virtual_node_name #=> String
1238
+ #
1239
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/UpdateVirtualNode AWS API Documentation
1240
+ #
1241
+ # @overload update_virtual_node(params = {})
1242
+ # @param [Hash] params ({})
1243
+ def update_virtual_node(params = {}, options = {})
1244
+ req = build_request(:update_virtual_node, params)
1245
+ req.send_request(options)
1246
+ end
1247
+
1248
+ # Updates an existing virtual router in a specified service mesh.
1249
+ #
1250
+ # @option params [String] :client_token
1251
+ # Unique, case-sensitive identifier that you provide to ensure the
1252
+ # idempotency of the request. Up to 36 letters, numbers, hyphens, and
1253
+ # underscores are allowed.
1254
+ #
1255
+ # **A suitable default value is auto-generated.** You should normally
1256
+ # not need to pass this option.**
1257
+ #
1258
+ # @option params [required, String] :mesh_name
1259
+ # The name of the service mesh in which the virtual router resides.
1260
+ #
1261
+ # @option params [required, Types::VirtualRouterSpec] :spec
1262
+ # The new virtual router specification to apply. This overwrites the
1263
+ # existing data.
1264
+ #
1265
+ # @option params [required, String] :virtual_router_name
1266
+ # The name of the virtual router to update.
1267
+ #
1268
+ # @return [Types::UpdateVirtualRouterOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1269
+ #
1270
+ # * {Types::UpdateVirtualRouterOutput#virtual_router #virtual_router} => Types::VirtualRouterData
1271
+ #
1272
+ # @example Request syntax with placeholder values
1273
+ #
1274
+ # resp = client.update_virtual_router({
1275
+ # client_token: "String",
1276
+ # mesh_name: "ResourceName", # required
1277
+ # spec: { # required
1278
+ # service_names: ["ServiceName"],
1279
+ # },
1280
+ # virtual_router_name: "ResourceName", # required
1281
+ # })
1282
+ #
1283
+ # @example Response structure
1284
+ #
1285
+ # resp.virtual_router.mesh_name #=> String
1286
+ # resp.virtual_router.metadata.arn #=> String
1287
+ # resp.virtual_router.metadata.created_at #=> Time
1288
+ # resp.virtual_router.metadata.last_updated_at #=> Time
1289
+ # resp.virtual_router.metadata.uid #=> String
1290
+ # resp.virtual_router.metadata.version #=> Integer
1291
+ # resp.virtual_router.spec.service_names #=> Array
1292
+ # resp.virtual_router.spec.service_names[0] #=> String
1293
+ # resp.virtual_router.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
1294
+ # resp.virtual_router.virtual_router_name #=> String
1295
+ #
1296
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2018-10-01/UpdateVirtualRouter AWS API Documentation
1297
+ #
1298
+ # @overload update_virtual_router(params = {})
1299
+ # @param [Hash] params ({})
1300
+ def update_virtual_router(params = {}, options = {})
1301
+ req = build_request(:update_virtual_router, params)
1302
+ req.send_request(options)
1303
+ end
1304
+
1305
+ # @!endgroup
1306
+
1307
+ # @param params ({})
1308
+ # @api private
1309
+ def build_request(operation_name, params = {})
1310
+ handlers = @handlers.for(operation_name)
1311
+ context = Seahorse::Client::RequestContext.new(
1312
+ operation_name: operation_name,
1313
+ operation: config.api.operation(operation_name),
1314
+ client: self,
1315
+ params: params,
1316
+ config: config)
1317
+ context[:gem_name] = 'aws-sdk-appmesh'
1318
+ context[:gem_version] = '1.0.0'
1319
+ Seahorse::Client::Request.new(handlers, context)
1320
+ end
1321
+
1322
+ # @api private
1323
+ # @deprecated
1324
+ def waiter_names
1325
+ []
1326
+ end
1327
+
1328
+ class << self
1329
+
1330
+ # @api private
1331
+ attr_reader :identifier
1332
+
1333
+ # @api private
1334
+ def errors_module
1335
+ Errors
1336
+ end
1337
+
1338
+ end
1339
+ end
1340
+ end