1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package appmesh
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const opCreateMesh = "CreateMesh"
17
18// CreateMeshRequest generates a "aws/request.Request" representing the
19// client's request for the CreateMesh operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CreateMesh for more information on using the CreateMesh
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CreateMeshRequest method.
34//    req, resp := client.CreateMeshRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/CreateMesh
42func (c *AppMesh) CreateMeshRequest(input *CreateMeshInput) (req *request.Request, output *CreateMeshOutput) {
43	op := &request.Operation{
44		Name:       opCreateMesh,
45		HTTPMethod: "PUT",
46		HTTPPath:   "/v20190125/meshes",
47	}
48
49	if input == nil {
50		input = &CreateMeshInput{}
51	}
52
53	output = &CreateMeshOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateMesh API operation for AWS App Mesh.
59//
60// Creates a service mesh. A service mesh is a logical boundary for network
61// traffic between the services that reside within it.
62//
63// After you create your service mesh, you can create virtual services, virtual
64// nodes, virtual routers, and routes to distribute traffic between the applications
65// in your mesh.
66//
67// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
68// with awserr.Error's Code and Message methods to get detailed information about
69// the error.
70//
71// See the AWS API reference guide for AWS App Mesh's
72// API operation CreateMesh for usage and error information.
73//
74// Returned Error Codes:
75//   * ErrCodeBadRequestException "BadRequestException"
76//   The request syntax was malformed. Check your request syntax and try again.
77//
78//   * ErrCodeConflictException "ConflictException"
79//   The request contains a client token that was used for a previous update resource
80//   call with different specifications. Try the request again with a new client
81//   token.
82//
83//   * ErrCodeForbiddenException "ForbiddenException"
84//   You don't have permissions to perform this action.
85//
86//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
87//   The request processing has failed because of an unknown error, exception,
88//   or failure.
89//
90//   * ErrCodeLimitExceededException "LimitExceededException"
91//   You have exceeded a service limit for your account. For more information,
92//   see Service Limits (https://docs.aws.amazon.com/app-mesh/latest/userguide/service_limits.html)
93//   in the AWS App Mesh User Guide.
94//
95//   * ErrCodeNotFoundException "NotFoundException"
96//   The specified resource doesn't exist. Check your request syntax and try again.
97//
98//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
99//   The request has failed due to a temporary failure of the service.
100//
101//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
102//   The maximum request rate permitted by the App Mesh APIs has been exceeded
103//   for your account. For best results, use an increasing or variable sleep interval
104//   between requests.
105//
106// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/CreateMesh
107func (c *AppMesh) CreateMesh(input *CreateMeshInput) (*CreateMeshOutput, error) {
108	req, out := c.CreateMeshRequest(input)
109	return out, req.Send()
110}
111
112// CreateMeshWithContext is the same as CreateMesh with the addition of
113// the ability to pass a context and additional request options.
114//
115// See CreateMesh for details on how to use this API operation.
116//
117// The context must be non-nil and will be used for request cancellation. If
118// the context is nil a panic will occur. In the future the SDK may create
119// sub-contexts for http.Requests. See https://golang.org/pkg/context/
120// for more information on using Contexts.
121func (c *AppMesh) CreateMeshWithContext(ctx aws.Context, input *CreateMeshInput, opts ...request.Option) (*CreateMeshOutput, error) {
122	req, out := c.CreateMeshRequest(input)
123	req.SetContext(ctx)
124	req.ApplyOptions(opts...)
125	return out, req.Send()
126}
127
128const opCreateRoute = "CreateRoute"
129
130// CreateRouteRequest generates a "aws/request.Request" representing the
131// client's request for the CreateRoute operation. The "output" return
132// value will be populated with the request's response once the request completes
133// successfully.
134//
135// Use "Send" method on the returned Request to send the API call to the service.
136// the "output" return value is not valid until after Send returns without error.
137//
138// See CreateRoute for more information on using the CreateRoute
139// API call, and error handling.
140//
141// This method is useful when you want to inject custom logic or configuration
142// into the SDK's request lifecycle. Such as custom headers, or retry logic.
143//
144//
145//    // Example sending a request using the CreateRouteRequest method.
146//    req, resp := client.CreateRouteRequest(params)
147//
148//    err := req.Send()
149//    if err == nil { // resp is now filled
150//        fmt.Println(resp)
151//    }
152//
153// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/CreateRoute
154func (c *AppMesh) CreateRouteRequest(input *CreateRouteInput) (req *request.Request, output *CreateRouteOutput) {
155	op := &request.Operation{
156		Name:       opCreateRoute,
157		HTTPMethod: "PUT",
158		HTTPPath:   "/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes",
159	}
160
161	if input == nil {
162		input = &CreateRouteInput{}
163	}
164
165	output = &CreateRouteOutput{}
166	req = c.newRequest(op, input, output)
167	return
168}
169
170// CreateRoute API operation for AWS App Mesh.
171//
172// Creates a route that is associated with a virtual router.
173//
174// You can use the prefix parameter in your route specification for path-based
175// routing of requests. For example, if your virtual service name is my-service.local
176// and you want the route to match requests to my-service.local/metrics, your
177// prefix should be /metrics.
178//
179// If your route matches a request, you can distribute traffic to one or more
180// target virtual nodes with relative weighting.
181//
182// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
183// with awserr.Error's Code and Message methods to get detailed information about
184// the error.
185//
186// See the AWS API reference guide for AWS App Mesh's
187// API operation CreateRoute for usage and error information.
188//
189// Returned Error Codes:
190//   * ErrCodeBadRequestException "BadRequestException"
191//   The request syntax was malformed. Check your request syntax and try again.
192//
193//   * ErrCodeConflictException "ConflictException"
194//   The request contains a client token that was used for a previous update resource
195//   call with different specifications. Try the request again with a new client
196//   token.
197//
198//   * ErrCodeForbiddenException "ForbiddenException"
199//   You don't have permissions to perform this action.
200//
201//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
202//   The request processing has failed because of an unknown error, exception,
203//   or failure.
204//
205//   * ErrCodeLimitExceededException "LimitExceededException"
206//   You have exceeded a service limit for your account. For more information,
207//   see Service Limits (https://docs.aws.amazon.com/app-mesh/latest/userguide/service_limits.html)
208//   in the AWS App Mesh User Guide.
209//
210//   * ErrCodeNotFoundException "NotFoundException"
211//   The specified resource doesn't exist. Check your request syntax and try again.
212//
213//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
214//   The request has failed due to a temporary failure of the service.
215//
216//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
217//   The maximum request rate permitted by the App Mesh APIs has been exceeded
218//   for your account. For best results, use an increasing or variable sleep interval
219//   between requests.
220//
221// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/CreateRoute
222func (c *AppMesh) CreateRoute(input *CreateRouteInput) (*CreateRouteOutput, error) {
223	req, out := c.CreateRouteRequest(input)
224	return out, req.Send()
225}
226
227// CreateRouteWithContext is the same as CreateRoute with the addition of
228// the ability to pass a context and additional request options.
229//
230// See CreateRoute for details on how to use this API operation.
231//
232// The context must be non-nil and will be used for request cancellation. If
233// the context is nil a panic will occur. In the future the SDK may create
234// sub-contexts for http.Requests. See https://golang.org/pkg/context/
235// for more information on using Contexts.
236func (c *AppMesh) CreateRouteWithContext(ctx aws.Context, input *CreateRouteInput, opts ...request.Option) (*CreateRouteOutput, error) {
237	req, out := c.CreateRouteRequest(input)
238	req.SetContext(ctx)
239	req.ApplyOptions(opts...)
240	return out, req.Send()
241}
242
243const opCreateVirtualNode = "CreateVirtualNode"
244
245// CreateVirtualNodeRequest generates a "aws/request.Request" representing the
246// client's request for the CreateVirtualNode operation. The "output" return
247// value will be populated with the request's response once the request completes
248// successfully.
249//
250// Use "Send" method on the returned Request to send the API call to the service.
251// the "output" return value is not valid until after Send returns without error.
252//
253// See CreateVirtualNode for more information on using the CreateVirtualNode
254// API call, and error handling.
255//
256// This method is useful when you want to inject custom logic or configuration
257// into the SDK's request lifecycle. Such as custom headers, or retry logic.
258//
259//
260//    // Example sending a request using the CreateVirtualNodeRequest method.
261//    req, resp := client.CreateVirtualNodeRequest(params)
262//
263//    err := req.Send()
264//    if err == nil { // resp is now filled
265//        fmt.Println(resp)
266//    }
267//
268// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/CreateVirtualNode
269func (c *AppMesh) CreateVirtualNodeRequest(input *CreateVirtualNodeInput) (req *request.Request, output *CreateVirtualNodeOutput) {
270	op := &request.Operation{
271		Name:       opCreateVirtualNode,
272		HTTPMethod: "PUT",
273		HTTPPath:   "/v20190125/meshes/{meshName}/virtualNodes",
274	}
275
276	if input == nil {
277		input = &CreateVirtualNodeInput{}
278	}
279
280	output = &CreateVirtualNodeOutput{}
281	req = c.newRequest(op, input, output)
282	return
283}
284
285// CreateVirtualNode API operation for AWS App Mesh.
286//
287// Creates a virtual node within a service mesh.
288//
289// A virtual node acts as a logical pointer to a particular task group, such
290// as an Amazon ECS service or a Kubernetes deployment. When you create a virtual
291// node, you can specify the service discovery information for your task group.
292//
293// Any inbound traffic that your virtual node expects should be specified as
294// a listener. Any outbound traffic that your virtual node expects to reach
295// should be specified as a backend.
296//
297// The response metadata for your new virtual node contains the arn that is
298// associated with the virtual node. Set this value (either the full ARN or
299// the truncated resource name: for example, mesh/default/virtualNode/simpleapp)
300// as the APPMESH_VIRTUAL_NODE_NAME environment variable for your task group's
301// Envoy proxy container in your task definition or pod spec. This is then mapped
302// to the node.id and node.cluster Envoy parameters.
303//
304// If you require your Envoy stats or tracing to use a different name, you can
305// override the node.cluster value that is set by APPMESH_VIRTUAL_NODE_NAME
306// with the APPMESH_VIRTUAL_NODE_CLUSTER environment variable.
307//
308// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
309// with awserr.Error's Code and Message methods to get detailed information about
310// the error.
311//
312// See the AWS API reference guide for AWS App Mesh's
313// API operation CreateVirtualNode for usage and error information.
314//
315// Returned Error Codes:
316//   * ErrCodeBadRequestException "BadRequestException"
317//   The request syntax was malformed. Check your request syntax and try again.
318//
319//   * ErrCodeConflictException "ConflictException"
320//   The request contains a client token that was used for a previous update resource
321//   call with different specifications. Try the request again with a new client
322//   token.
323//
324//   * ErrCodeForbiddenException "ForbiddenException"
325//   You don't have permissions to perform this action.
326//
327//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
328//   The request processing has failed because of an unknown error, exception,
329//   or failure.
330//
331//   * ErrCodeLimitExceededException "LimitExceededException"
332//   You have exceeded a service limit for your account. For more information,
333//   see Service Limits (https://docs.aws.amazon.com/app-mesh/latest/userguide/service_limits.html)
334//   in the AWS App Mesh User Guide.
335//
336//   * ErrCodeNotFoundException "NotFoundException"
337//   The specified resource doesn't exist. Check your request syntax and try again.
338//
339//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
340//   The request has failed due to a temporary failure of the service.
341//
342//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
343//   The maximum request rate permitted by the App Mesh APIs has been exceeded
344//   for your account. For best results, use an increasing or variable sleep interval
345//   between requests.
346//
347// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/CreateVirtualNode
348func (c *AppMesh) CreateVirtualNode(input *CreateVirtualNodeInput) (*CreateVirtualNodeOutput, error) {
349	req, out := c.CreateVirtualNodeRequest(input)
350	return out, req.Send()
351}
352
353// CreateVirtualNodeWithContext is the same as CreateVirtualNode with the addition of
354// the ability to pass a context and additional request options.
355//
356// See CreateVirtualNode for details on how to use this API operation.
357//
358// The context must be non-nil and will be used for request cancellation. If
359// the context is nil a panic will occur. In the future the SDK may create
360// sub-contexts for http.Requests. See https://golang.org/pkg/context/
361// for more information on using Contexts.
362func (c *AppMesh) CreateVirtualNodeWithContext(ctx aws.Context, input *CreateVirtualNodeInput, opts ...request.Option) (*CreateVirtualNodeOutput, error) {
363	req, out := c.CreateVirtualNodeRequest(input)
364	req.SetContext(ctx)
365	req.ApplyOptions(opts...)
366	return out, req.Send()
367}
368
369const opCreateVirtualRouter = "CreateVirtualRouter"
370
371// CreateVirtualRouterRequest generates a "aws/request.Request" representing the
372// client's request for the CreateVirtualRouter operation. The "output" return
373// value will be populated with the request's response once the request completes
374// successfully.
375//
376// Use "Send" method on the returned Request to send the API call to the service.
377// the "output" return value is not valid until after Send returns without error.
378//
379// See CreateVirtualRouter for more information on using the CreateVirtualRouter
380// API call, and error handling.
381//
382// This method is useful when you want to inject custom logic or configuration
383// into the SDK's request lifecycle. Such as custom headers, or retry logic.
384//
385//
386//    // Example sending a request using the CreateVirtualRouterRequest method.
387//    req, resp := client.CreateVirtualRouterRequest(params)
388//
389//    err := req.Send()
390//    if err == nil { // resp is now filled
391//        fmt.Println(resp)
392//    }
393//
394// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/CreateVirtualRouter
395func (c *AppMesh) CreateVirtualRouterRequest(input *CreateVirtualRouterInput) (req *request.Request, output *CreateVirtualRouterOutput) {
396	op := &request.Operation{
397		Name:       opCreateVirtualRouter,
398		HTTPMethod: "PUT",
399		HTTPPath:   "/v20190125/meshes/{meshName}/virtualRouters",
400	}
401
402	if input == nil {
403		input = &CreateVirtualRouterInput{}
404	}
405
406	output = &CreateVirtualRouterOutput{}
407	req = c.newRequest(op, input, output)
408	return
409}
410
411// CreateVirtualRouter API operation for AWS App Mesh.
412//
413// Creates a virtual router within a service mesh.
414//
415// Any inbound traffic that your virtual router expects should be specified
416// as a listener.
417//
418// Virtual routers handle traffic for one or more virtual services within your
419// mesh. After you create your virtual router, create and associate routes for
420// your virtual router that direct incoming requests to different virtual nodes.
421//
422// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
423// with awserr.Error's Code and Message methods to get detailed information about
424// the error.
425//
426// See the AWS API reference guide for AWS App Mesh's
427// API operation CreateVirtualRouter for usage and error information.
428//
429// Returned Error Codes:
430//   * ErrCodeBadRequestException "BadRequestException"
431//   The request syntax was malformed. Check your request syntax and try again.
432//
433//   * ErrCodeConflictException "ConflictException"
434//   The request contains a client token that was used for a previous update resource
435//   call with different specifications. Try the request again with a new client
436//   token.
437//
438//   * ErrCodeForbiddenException "ForbiddenException"
439//   You don't have permissions to perform this action.
440//
441//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
442//   The request processing has failed because of an unknown error, exception,
443//   or failure.
444//
445//   * ErrCodeLimitExceededException "LimitExceededException"
446//   You have exceeded a service limit for your account. For more information,
447//   see Service Limits (https://docs.aws.amazon.com/app-mesh/latest/userguide/service_limits.html)
448//   in the AWS App Mesh User Guide.
449//
450//   * ErrCodeNotFoundException "NotFoundException"
451//   The specified resource doesn't exist. Check your request syntax and try again.
452//
453//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
454//   The request has failed due to a temporary failure of the service.
455//
456//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
457//   The maximum request rate permitted by the App Mesh APIs has been exceeded
458//   for your account. For best results, use an increasing or variable sleep interval
459//   between requests.
460//
461// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/CreateVirtualRouter
462func (c *AppMesh) CreateVirtualRouter(input *CreateVirtualRouterInput) (*CreateVirtualRouterOutput, error) {
463	req, out := c.CreateVirtualRouterRequest(input)
464	return out, req.Send()
465}
466
467// CreateVirtualRouterWithContext is the same as CreateVirtualRouter with the addition of
468// the ability to pass a context and additional request options.
469//
470// See CreateVirtualRouter for details on how to use this API operation.
471//
472// The context must be non-nil and will be used for request cancellation. If
473// the context is nil a panic will occur. In the future the SDK may create
474// sub-contexts for http.Requests. See https://golang.org/pkg/context/
475// for more information on using Contexts.
476func (c *AppMesh) CreateVirtualRouterWithContext(ctx aws.Context, input *CreateVirtualRouterInput, opts ...request.Option) (*CreateVirtualRouterOutput, error) {
477	req, out := c.CreateVirtualRouterRequest(input)
478	req.SetContext(ctx)
479	req.ApplyOptions(opts...)
480	return out, req.Send()
481}
482
483const opCreateVirtualService = "CreateVirtualService"
484
485// CreateVirtualServiceRequest generates a "aws/request.Request" representing the
486// client's request for the CreateVirtualService operation. The "output" return
487// value will be populated with the request's response once the request completes
488// successfully.
489//
490// Use "Send" method on the returned Request to send the API call to the service.
491// the "output" return value is not valid until after Send returns without error.
492//
493// See CreateVirtualService for more information on using the CreateVirtualService
494// API call, and error handling.
495//
496// This method is useful when you want to inject custom logic or configuration
497// into the SDK's request lifecycle. Such as custom headers, or retry logic.
498//
499//
500//    // Example sending a request using the CreateVirtualServiceRequest method.
501//    req, resp := client.CreateVirtualServiceRequest(params)
502//
503//    err := req.Send()
504//    if err == nil { // resp is now filled
505//        fmt.Println(resp)
506//    }
507//
508// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/CreateVirtualService
509func (c *AppMesh) CreateVirtualServiceRequest(input *CreateVirtualServiceInput) (req *request.Request, output *CreateVirtualServiceOutput) {
510	op := &request.Operation{
511		Name:       opCreateVirtualService,
512		HTTPMethod: "PUT",
513		HTTPPath:   "/v20190125/meshes/{meshName}/virtualServices",
514	}
515
516	if input == nil {
517		input = &CreateVirtualServiceInput{}
518	}
519
520	output = &CreateVirtualServiceOutput{}
521	req = c.newRequest(op, input, output)
522	return
523}
524
525// CreateVirtualService API operation for AWS App Mesh.
526//
527// Creates a virtual service within a service mesh.
528//
529// A virtual service is an abstraction of a real service that is provided by
530// a virtual node directly or indirectly by means of a virtual router. Dependent
531// services call your virtual service by its virtualServiceName, and those requests
532// are routed to the virtual node or virtual router that is specified as the
533// provider for the virtual service.
534//
535// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
536// with awserr.Error's Code and Message methods to get detailed information about
537// the error.
538//
539// See the AWS API reference guide for AWS App Mesh's
540// API operation CreateVirtualService for usage and error information.
541//
542// Returned Error Codes:
543//   * ErrCodeBadRequestException "BadRequestException"
544//   The request syntax was malformed. Check your request syntax and try again.
545//
546//   * ErrCodeConflictException "ConflictException"
547//   The request contains a client token that was used for a previous update resource
548//   call with different specifications. Try the request again with a new client
549//   token.
550//
551//   * ErrCodeForbiddenException "ForbiddenException"
552//   You don't have permissions to perform this action.
553//
554//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
555//   The request processing has failed because of an unknown error, exception,
556//   or failure.
557//
558//   * ErrCodeLimitExceededException "LimitExceededException"
559//   You have exceeded a service limit for your account. For more information,
560//   see Service Limits (https://docs.aws.amazon.com/app-mesh/latest/userguide/service_limits.html)
561//   in the AWS App Mesh User Guide.
562//
563//   * ErrCodeNotFoundException "NotFoundException"
564//   The specified resource doesn't exist. Check your request syntax and try again.
565//
566//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
567//   The request has failed due to a temporary failure of the service.
568//
569//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
570//   The maximum request rate permitted by the App Mesh APIs has been exceeded
571//   for your account. For best results, use an increasing or variable sleep interval
572//   between requests.
573//
574// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/CreateVirtualService
575func (c *AppMesh) CreateVirtualService(input *CreateVirtualServiceInput) (*CreateVirtualServiceOutput, error) {
576	req, out := c.CreateVirtualServiceRequest(input)
577	return out, req.Send()
578}
579
580// CreateVirtualServiceWithContext is the same as CreateVirtualService with the addition of
581// the ability to pass a context and additional request options.
582//
583// See CreateVirtualService for details on how to use this API operation.
584//
585// The context must be non-nil and will be used for request cancellation. If
586// the context is nil a panic will occur. In the future the SDK may create
587// sub-contexts for http.Requests. See https://golang.org/pkg/context/
588// for more information on using Contexts.
589func (c *AppMesh) CreateVirtualServiceWithContext(ctx aws.Context, input *CreateVirtualServiceInput, opts ...request.Option) (*CreateVirtualServiceOutput, error) {
590	req, out := c.CreateVirtualServiceRequest(input)
591	req.SetContext(ctx)
592	req.ApplyOptions(opts...)
593	return out, req.Send()
594}
595
596const opDeleteMesh = "DeleteMesh"
597
598// DeleteMeshRequest generates a "aws/request.Request" representing the
599// client's request for the DeleteMesh operation. The "output" return
600// value will be populated with the request's response once the request completes
601// successfully.
602//
603// Use "Send" method on the returned Request to send the API call to the service.
604// the "output" return value is not valid until after Send returns without error.
605//
606// See DeleteMesh for more information on using the DeleteMesh
607// API call, and error handling.
608//
609// This method is useful when you want to inject custom logic or configuration
610// into the SDK's request lifecycle. Such as custom headers, or retry logic.
611//
612//
613//    // Example sending a request using the DeleteMeshRequest method.
614//    req, resp := client.DeleteMeshRequest(params)
615//
616//    err := req.Send()
617//    if err == nil { // resp is now filled
618//        fmt.Println(resp)
619//    }
620//
621// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DeleteMesh
622func (c *AppMesh) DeleteMeshRequest(input *DeleteMeshInput) (req *request.Request, output *DeleteMeshOutput) {
623	op := &request.Operation{
624		Name:       opDeleteMesh,
625		HTTPMethod: "DELETE",
626		HTTPPath:   "/v20190125/meshes/{meshName}",
627	}
628
629	if input == nil {
630		input = &DeleteMeshInput{}
631	}
632
633	output = &DeleteMeshOutput{}
634	req = c.newRequest(op, input, output)
635	return
636}
637
638// DeleteMesh API operation for AWS App Mesh.
639//
640// Deletes an existing service mesh.
641//
642// You must delete all resources (virtual services, routes, virtual routers,
643// and virtual nodes) in the service mesh before you can delete the mesh itself.
644//
645// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
646// with awserr.Error's Code and Message methods to get detailed information about
647// the error.
648//
649// See the AWS API reference guide for AWS App Mesh's
650// API operation DeleteMesh for usage and error information.
651//
652// Returned Error Codes:
653//   * ErrCodeBadRequestException "BadRequestException"
654//   The request syntax was malformed. Check your request syntax and try again.
655//
656//   * ErrCodeForbiddenException "ForbiddenException"
657//   You don't have permissions to perform this action.
658//
659//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
660//   The request processing has failed because of an unknown error, exception,
661//   or failure.
662//
663//   * ErrCodeNotFoundException "NotFoundException"
664//   The specified resource doesn't exist. Check your request syntax and try again.
665//
666//   * ErrCodeResourceInUseException "ResourceInUseException"
667//   You can't delete the specified resource because it's in use or required by
668//   another resource.
669//
670//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
671//   The request has failed due to a temporary failure of the service.
672//
673//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
674//   The maximum request rate permitted by the App Mesh APIs has been exceeded
675//   for your account. For best results, use an increasing or variable sleep interval
676//   between requests.
677//
678// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DeleteMesh
679func (c *AppMesh) DeleteMesh(input *DeleteMeshInput) (*DeleteMeshOutput, error) {
680	req, out := c.DeleteMeshRequest(input)
681	return out, req.Send()
682}
683
684// DeleteMeshWithContext is the same as DeleteMesh with the addition of
685// the ability to pass a context and additional request options.
686//
687// See DeleteMesh for details on how to use this API operation.
688//
689// The context must be non-nil and will be used for request cancellation. If
690// the context is nil a panic will occur. In the future the SDK may create
691// sub-contexts for http.Requests. See https://golang.org/pkg/context/
692// for more information on using Contexts.
693func (c *AppMesh) DeleteMeshWithContext(ctx aws.Context, input *DeleteMeshInput, opts ...request.Option) (*DeleteMeshOutput, error) {
694	req, out := c.DeleteMeshRequest(input)
695	req.SetContext(ctx)
696	req.ApplyOptions(opts...)
697	return out, req.Send()
698}
699
700const opDeleteRoute = "DeleteRoute"
701
702// DeleteRouteRequest generates a "aws/request.Request" representing the
703// client's request for the DeleteRoute operation. The "output" return
704// value will be populated with the request's response once the request completes
705// successfully.
706//
707// Use "Send" method on the returned Request to send the API call to the service.
708// the "output" return value is not valid until after Send returns without error.
709//
710// See DeleteRoute for more information on using the DeleteRoute
711// API call, and error handling.
712//
713// This method is useful when you want to inject custom logic or configuration
714// into the SDK's request lifecycle. Such as custom headers, or retry logic.
715//
716//
717//    // Example sending a request using the DeleteRouteRequest method.
718//    req, resp := client.DeleteRouteRequest(params)
719//
720//    err := req.Send()
721//    if err == nil { // resp is now filled
722//        fmt.Println(resp)
723//    }
724//
725// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DeleteRoute
726func (c *AppMesh) DeleteRouteRequest(input *DeleteRouteInput) (req *request.Request, output *DeleteRouteOutput) {
727	op := &request.Operation{
728		Name:       opDeleteRoute,
729		HTTPMethod: "DELETE",
730		HTTPPath:   "/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}",
731	}
732
733	if input == nil {
734		input = &DeleteRouteInput{}
735	}
736
737	output = &DeleteRouteOutput{}
738	req = c.newRequest(op, input, output)
739	return
740}
741
742// DeleteRoute API operation for AWS App Mesh.
743//
744// Deletes an existing route.
745//
746// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
747// with awserr.Error's Code and Message methods to get detailed information about
748// the error.
749//
750// See the AWS API reference guide for AWS App Mesh's
751// API operation DeleteRoute for usage and error information.
752//
753// Returned Error Codes:
754//   * ErrCodeBadRequestException "BadRequestException"
755//   The request syntax was malformed. Check your request syntax and try again.
756//
757//   * ErrCodeForbiddenException "ForbiddenException"
758//   You don't have permissions to perform this action.
759//
760//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
761//   The request processing has failed because of an unknown error, exception,
762//   or failure.
763//
764//   * ErrCodeNotFoundException "NotFoundException"
765//   The specified resource doesn't exist. Check your request syntax and try again.
766//
767//   * ErrCodeResourceInUseException "ResourceInUseException"
768//   You can't delete the specified resource because it's in use or required by
769//   another resource.
770//
771//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
772//   The request has failed due to a temporary failure of the service.
773//
774//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
775//   The maximum request rate permitted by the App Mesh APIs has been exceeded
776//   for your account. For best results, use an increasing or variable sleep interval
777//   between requests.
778//
779// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DeleteRoute
780func (c *AppMesh) DeleteRoute(input *DeleteRouteInput) (*DeleteRouteOutput, error) {
781	req, out := c.DeleteRouteRequest(input)
782	return out, req.Send()
783}
784
785// DeleteRouteWithContext is the same as DeleteRoute with the addition of
786// the ability to pass a context and additional request options.
787//
788// See DeleteRoute for details on how to use this API operation.
789//
790// The context must be non-nil and will be used for request cancellation. If
791// the context is nil a panic will occur. In the future the SDK may create
792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
793// for more information on using Contexts.
794func (c *AppMesh) DeleteRouteWithContext(ctx aws.Context, input *DeleteRouteInput, opts ...request.Option) (*DeleteRouteOutput, error) {
795	req, out := c.DeleteRouteRequest(input)
796	req.SetContext(ctx)
797	req.ApplyOptions(opts...)
798	return out, req.Send()
799}
800
801const opDeleteVirtualNode = "DeleteVirtualNode"
802
803// DeleteVirtualNodeRequest generates a "aws/request.Request" representing the
804// client's request for the DeleteVirtualNode operation. The "output" return
805// value will be populated with the request's response once the request completes
806// successfully.
807//
808// Use "Send" method on the returned Request to send the API call to the service.
809// the "output" return value is not valid until after Send returns without error.
810//
811// See DeleteVirtualNode for more information on using the DeleteVirtualNode
812// API call, and error handling.
813//
814// This method is useful when you want to inject custom logic or configuration
815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
816//
817//
818//    // Example sending a request using the DeleteVirtualNodeRequest method.
819//    req, resp := client.DeleteVirtualNodeRequest(params)
820//
821//    err := req.Send()
822//    if err == nil { // resp is now filled
823//        fmt.Println(resp)
824//    }
825//
826// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DeleteVirtualNode
827func (c *AppMesh) DeleteVirtualNodeRequest(input *DeleteVirtualNodeInput) (req *request.Request, output *DeleteVirtualNodeOutput) {
828	op := &request.Operation{
829		Name:       opDeleteVirtualNode,
830		HTTPMethod: "DELETE",
831		HTTPPath:   "/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}",
832	}
833
834	if input == nil {
835		input = &DeleteVirtualNodeInput{}
836	}
837
838	output = &DeleteVirtualNodeOutput{}
839	req = c.newRequest(op, input, output)
840	return
841}
842
843// DeleteVirtualNode API operation for AWS App Mesh.
844//
845// Deletes an existing virtual node.
846//
847// You must delete any virtual services that list a virtual node as a service
848// provider before you can delete the virtual node itself.
849//
850// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
851// with awserr.Error's Code and Message methods to get detailed information about
852// the error.
853//
854// See the AWS API reference guide for AWS App Mesh's
855// API operation DeleteVirtualNode for usage and error information.
856//
857// Returned Error Codes:
858//   * ErrCodeBadRequestException "BadRequestException"
859//   The request syntax was malformed. Check your request syntax and try again.
860//
861//   * ErrCodeForbiddenException "ForbiddenException"
862//   You don't have permissions to perform this action.
863//
864//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
865//   The request processing has failed because of an unknown error, exception,
866//   or failure.
867//
868//   * ErrCodeNotFoundException "NotFoundException"
869//   The specified resource doesn't exist. Check your request syntax and try again.
870//
871//   * ErrCodeResourceInUseException "ResourceInUseException"
872//   You can't delete the specified resource because it's in use or required by
873//   another resource.
874//
875//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
876//   The request has failed due to a temporary failure of the service.
877//
878//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
879//   The maximum request rate permitted by the App Mesh APIs has been exceeded
880//   for your account. For best results, use an increasing or variable sleep interval
881//   between requests.
882//
883// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DeleteVirtualNode
884func (c *AppMesh) DeleteVirtualNode(input *DeleteVirtualNodeInput) (*DeleteVirtualNodeOutput, error) {
885	req, out := c.DeleteVirtualNodeRequest(input)
886	return out, req.Send()
887}
888
889// DeleteVirtualNodeWithContext is the same as DeleteVirtualNode with the addition of
890// the ability to pass a context and additional request options.
891//
892// See DeleteVirtualNode for details on how to use this API operation.
893//
894// The context must be non-nil and will be used for request cancellation. If
895// the context is nil a panic will occur. In the future the SDK may create
896// sub-contexts for http.Requests. See https://golang.org/pkg/context/
897// for more information on using Contexts.
898func (c *AppMesh) DeleteVirtualNodeWithContext(ctx aws.Context, input *DeleteVirtualNodeInput, opts ...request.Option) (*DeleteVirtualNodeOutput, error) {
899	req, out := c.DeleteVirtualNodeRequest(input)
900	req.SetContext(ctx)
901	req.ApplyOptions(opts...)
902	return out, req.Send()
903}
904
905const opDeleteVirtualRouter = "DeleteVirtualRouter"
906
907// DeleteVirtualRouterRequest generates a "aws/request.Request" representing the
908// client's request for the DeleteVirtualRouter operation. The "output" return
909// value will be populated with the request's response once the request completes
910// successfully.
911//
912// Use "Send" method on the returned Request to send the API call to the service.
913// the "output" return value is not valid until after Send returns without error.
914//
915// See DeleteVirtualRouter for more information on using the DeleteVirtualRouter
916// API call, and error handling.
917//
918// This method is useful when you want to inject custom logic or configuration
919// into the SDK's request lifecycle. Such as custom headers, or retry logic.
920//
921//
922//    // Example sending a request using the DeleteVirtualRouterRequest method.
923//    req, resp := client.DeleteVirtualRouterRequest(params)
924//
925//    err := req.Send()
926//    if err == nil { // resp is now filled
927//        fmt.Println(resp)
928//    }
929//
930// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DeleteVirtualRouter
931func (c *AppMesh) DeleteVirtualRouterRequest(input *DeleteVirtualRouterInput) (req *request.Request, output *DeleteVirtualRouterOutput) {
932	op := &request.Operation{
933		Name:       opDeleteVirtualRouter,
934		HTTPMethod: "DELETE",
935		HTTPPath:   "/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}",
936	}
937
938	if input == nil {
939		input = &DeleteVirtualRouterInput{}
940	}
941
942	output = &DeleteVirtualRouterOutput{}
943	req = c.newRequest(op, input, output)
944	return
945}
946
947// DeleteVirtualRouter API operation for AWS App Mesh.
948//
949// Deletes an existing virtual router.
950//
951// You must delete any routes associated with the virtual router before you
952// can delete the router itself.
953//
954// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
955// with awserr.Error's Code and Message methods to get detailed information about
956// the error.
957//
958// See the AWS API reference guide for AWS App Mesh's
959// API operation DeleteVirtualRouter for usage and error information.
960//
961// Returned Error Codes:
962//   * ErrCodeBadRequestException "BadRequestException"
963//   The request syntax was malformed. Check your request syntax and try again.
964//
965//   * ErrCodeForbiddenException "ForbiddenException"
966//   You don't have permissions to perform this action.
967//
968//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
969//   The request processing has failed because of an unknown error, exception,
970//   or failure.
971//
972//   * ErrCodeNotFoundException "NotFoundException"
973//   The specified resource doesn't exist. Check your request syntax and try again.
974//
975//   * ErrCodeResourceInUseException "ResourceInUseException"
976//   You can't delete the specified resource because it's in use or required by
977//   another resource.
978//
979//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
980//   The request has failed due to a temporary failure of the service.
981//
982//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
983//   The maximum request rate permitted by the App Mesh APIs has been exceeded
984//   for your account. For best results, use an increasing or variable sleep interval
985//   between requests.
986//
987// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DeleteVirtualRouter
988func (c *AppMesh) DeleteVirtualRouter(input *DeleteVirtualRouterInput) (*DeleteVirtualRouterOutput, error) {
989	req, out := c.DeleteVirtualRouterRequest(input)
990	return out, req.Send()
991}
992
993// DeleteVirtualRouterWithContext is the same as DeleteVirtualRouter with the addition of
994// the ability to pass a context and additional request options.
995//
996// See DeleteVirtualRouter for details on how to use this API operation.
997//
998// The context must be non-nil and will be used for request cancellation. If
999// the context is nil a panic will occur. In the future the SDK may create
1000// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1001// for more information on using Contexts.
1002func (c *AppMesh) DeleteVirtualRouterWithContext(ctx aws.Context, input *DeleteVirtualRouterInput, opts ...request.Option) (*DeleteVirtualRouterOutput, error) {
1003	req, out := c.DeleteVirtualRouterRequest(input)
1004	req.SetContext(ctx)
1005	req.ApplyOptions(opts...)
1006	return out, req.Send()
1007}
1008
1009const opDeleteVirtualService = "DeleteVirtualService"
1010
1011// DeleteVirtualServiceRequest generates a "aws/request.Request" representing the
1012// client's request for the DeleteVirtualService operation. The "output" return
1013// value will be populated with the request's response once the request completes
1014// successfully.
1015//
1016// Use "Send" method on the returned Request to send the API call to the service.
1017// the "output" return value is not valid until after Send returns without error.
1018//
1019// See DeleteVirtualService for more information on using the DeleteVirtualService
1020// API call, and error handling.
1021//
1022// This method is useful when you want to inject custom logic or configuration
1023// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1024//
1025//
1026//    // Example sending a request using the DeleteVirtualServiceRequest method.
1027//    req, resp := client.DeleteVirtualServiceRequest(params)
1028//
1029//    err := req.Send()
1030//    if err == nil { // resp is now filled
1031//        fmt.Println(resp)
1032//    }
1033//
1034// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DeleteVirtualService
1035func (c *AppMesh) DeleteVirtualServiceRequest(input *DeleteVirtualServiceInput) (req *request.Request, output *DeleteVirtualServiceOutput) {
1036	op := &request.Operation{
1037		Name:       opDeleteVirtualService,
1038		HTTPMethod: "DELETE",
1039		HTTPPath:   "/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}",
1040	}
1041
1042	if input == nil {
1043		input = &DeleteVirtualServiceInput{}
1044	}
1045
1046	output = &DeleteVirtualServiceOutput{}
1047	req = c.newRequest(op, input, output)
1048	return
1049}
1050
1051// DeleteVirtualService API operation for AWS App Mesh.
1052//
1053// Deletes an existing virtual service.
1054//
1055// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1056// with awserr.Error's Code and Message methods to get detailed information about
1057// the error.
1058//
1059// See the AWS API reference guide for AWS App Mesh's
1060// API operation DeleteVirtualService for usage and error information.
1061//
1062// Returned Error Codes:
1063//   * ErrCodeBadRequestException "BadRequestException"
1064//   The request syntax was malformed. Check your request syntax and try again.
1065//
1066//   * ErrCodeForbiddenException "ForbiddenException"
1067//   You don't have permissions to perform this action.
1068//
1069//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1070//   The request processing has failed because of an unknown error, exception,
1071//   or failure.
1072//
1073//   * ErrCodeNotFoundException "NotFoundException"
1074//   The specified resource doesn't exist. Check your request syntax and try again.
1075//
1076//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1077//   The request has failed due to a temporary failure of the service.
1078//
1079//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1080//   The maximum request rate permitted by the App Mesh APIs has been exceeded
1081//   for your account. For best results, use an increasing or variable sleep interval
1082//   between requests.
1083//
1084// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DeleteVirtualService
1085func (c *AppMesh) DeleteVirtualService(input *DeleteVirtualServiceInput) (*DeleteVirtualServiceOutput, error) {
1086	req, out := c.DeleteVirtualServiceRequest(input)
1087	return out, req.Send()
1088}
1089
1090// DeleteVirtualServiceWithContext is the same as DeleteVirtualService with the addition of
1091// the ability to pass a context and additional request options.
1092//
1093// See DeleteVirtualService for details on how to use this API operation.
1094//
1095// The context must be non-nil and will be used for request cancellation. If
1096// the context is nil a panic will occur. In the future the SDK may create
1097// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1098// for more information on using Contexts.
1099func (c *AppMesh) DeleteVirtualServiceWithContext(ctx aws.Context, input *DeleteVirtualServiceInput, opts ...request.Option) (*DeleteVirtualServiceOutput, error) {
1100	req, out := c.DeleteVirtualServiceRequest(input)
1101	req.SetContext(ctx)
1102	req.ApplyOptions(opts...)
1103	return out, req.Send()
1104}
1105
1106const opDescribeMesh = "DescribeMesh"
1107
1108// DescribeMeshRequest generates a "aws/request.Request" representing the
1109// client's request for the DescribeMesh operation. The "output" return
1110// value will be populated with the request's response once the request completes
1111// successfully.
1112//
1113// Use "Send" method on the returned Request to send the API call to the service.
1114// the "output" return value is not valid until after Send returns without error.
1115//
1116// See DescribeMesh for more information on using the DescribeMesh
1117// API call, and error handling.
1118//
1119// This method is useful when you want to inject custom logic or configuration
1120// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1121//
1122//
1123//    // Example sending a request using the DescribeMeshRequest method.
1124//    req, resp := client.DescribeMeshRequest(params)
1125//
1126//    err := req.Send()
1127//    if err == nil { // resp is now filled
1128//        fmt.Println(resp)
1129//    }
1130//
1131// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DescribeMesh
1132func (c *AppMesh) DescribeMeshRequest(input *DescribeMeshInput) (req *request.Request, output *DescribeMeshOutput) {
1133	op := &request.Operation{
1134		Name:       opDescribeMesh,
1135		HTTPMethod: "GET",
1136		HTTPPath:   "/v20190125/meshes/{meshName}",
1137	}
1138
1139	if input == nil {
1140		input = &DescribeMeshInput{}
1141	}
1142
1143	output = &DescribeMeshOutput{}
1144	req = c.newRequest(op, input, output)
1145	return
1146}
1147
1148// DescribeMesh API operation for AWS App Mesh.
1149//
1150// Describes an existing service mesh.
1151//
1152// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1153// with awserr.Error's Code and Message methods to get detailed information about
1154// the error.
1155//
1156// See the AWS API reference guide for AWS App Mesh's
1157// API operation DescribeMesh for usage and error information.
1158//
1159// Returned Error Codes:
1160//   * ErrCodeBadRequestException "BadRequestException"
1161//   The request syntax was malformed. Check your request syntax and try again.
1162//
1163//   * ErrCodeForbiddenException "ForbiddenException"
1164//   You don't have permissions to perform this action.
1165//
1166//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1167//   The request processing has failed because of an unknown error, exception,
1168//   or failure.
1169//
1170//   * ErrCodeNotFoundException "NotFoundException"
1171//   The specified resource doesn't exist. Check your request syntax and try again.
1172//
1173//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1174//   The request has failed due to a temporary failure of the service.
1175//
1176//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1177//   The maximum request rate permitted by the App Mesh APIs has been exceeded
1178//   for your account. For best results, use an increasing or variable sleep interval
1179//   between requests.
1180//
1181// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DescribeMesh
1182func (c *AppMesh) DescribeMesh(input *DescribeMeshInput) (*DescribeMeshOutput, error) {
1183	req, out := c.DescribeMeshRequest(input)
1184	return out, req.Send()
1185}
1186
1187// DescribeMeshWithContext is the same as DescribeMesh with the addition of
1188// the ability to pass a context and additional request options.
1189//
1190// See DescribeMesh for details on how to use this API operation.
1191//
1192// The context must be non-nil and will be used for request cancellation. If
1193// the context is nil a panic will occur. In the future the SDK may create
1194// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1195// for more information on using Contexts.
1196func (c *AppMesh) DescribeMeshWithContext(ctx aws.Context, input *DescribeMeshInput, opts ...request.Option) (*DescribeMeshOutput, error) {
1197	req, out := c.DescribeMeshRequest(input)
1198	req.SetContext(ctx)
1199	req.ApplyOptions(opts...)
1200	return out, req.Send()
1201}
1202
1203const opDescribeRoute = "DescribeRoute"
1204
1205// DescribeRouteRequest generates a "aws/request.Request" representing the
1206// client's request for the DescribeRoute operation. The "output" return
1207// value will be populated with the request's response once the request completes
1208// successfully.
1209//
1210// Use "Send" method on the returned Request to send the API call to the service.
1211// the "output" return value is not valid until after Send returns without error.
1212//
1213// See DescribeRoute for more information on using the DescribeRoute
1214// API call, and error handling.
1215//
1216// This method is useful when you want to inject custom logic or configuration
1217// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1218//
1219//
1220//    // Example sending a request using the DescribeRouteRequest method.
1221//    req, resp := client.DescribeRouteRequest(params)
1222//
1223//    err := req.Send()
1224//    if err == nil { // resp is now filled
1225//        fmt.Println(resp)
1226//    }
1227//
1228// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DescribeRoute
1229func (c *AppMesh) DescribeRouteRequest(input *DescribeRouteInput) (req *request.Request, output *DescribeRouteOutput) {
1230	op := &request.Operation{
1231		Name:       opDescribeRoute,
1232		HTTPMethod: "GET",
1233		HTTPPath:   "/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}",
1234	}
1235
1236	if input == nil {
1237		input = &DescribeRouteInput{}
1238	}
1239
1240	output = &DescribeRouteOutput{}
1241	req = c.newRequest(op, input, output)
1242	return
1243}
1244
1245// DescribeRoute API operation for AWS App Mesh.
1246//
1247// Describes an existing route.
1248//
1249// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1250// with awserr.Error's Code and Message methods to get detailed information about
1251// the error.
1252//
1253// See the AWS API reference guide for AWS App Mesh's
1254// API operation DescribeRoute for usage and error information.
1255//
1256// Returned Error Codes:
1257//   * ErrCodeBadRequestException "BadRequestException"
1258//   The request syntax was malformed. Check your request syntax and try again.
1259//
1260//   * ErrCodeForbiddenException "ForbiddenException"
1261//   You don't have permissions to perform this action.
1262//
1263//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1264//   The request processing has failed because of an unknown error, exception,
1265//   or failure.
1266//
1267//   * ErrCodeNotFoundException "NotFoundException"
1268//   The specified resource doesn't exist. Check your request syntax and try again.
1269//
1270//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1271//   The request has failed due to a temporary failure of the service.
1272//
1273//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1274//   The maximum request rate permitted by the App Mesh APIs has been exceeded
1275//   for your account. For best results, use an increasing or variable sleep interval
1276//   between requests.
1277//
1278// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DescribeRoute
1279func (c *AppMesh) DescribeRoute(input *DescribeRouteInput) (*DescribeRouteOutput, error) {
1280	req, out := c.DescribeRouteRequest(input)
1281	return out, req.Send()
1282}
1283
1284// DescribeRouteWithContext is the same as DescribeRoute with the addition of
1285// the ability to pass a context and additional request options.
1286//
1287// See DescribeRoute for details on how to use this API operation.
1288//
1289// The context must be non-nil and will be used for request cancellation. If
1290// the context is nil a panic will occur. In the future the SDK may create
1291// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1292// for more information on using Contexts.
1293func (c *AppMesh) DescribeRouteWithContext(ctx aws.Context, input *DescribeRouteInput, opts ...request.Option) (*DescribeRouteOutput, error) {
1294	req, out := c.DescribeRouteRequest(input)
1295	req.SetContext(ctx)
1296	req.ApplyOptions(opts...)
1297	return out, req.Send()
1298}
1299
1300const opDescribeVirtualNode = "DescribeVirtualNode"
1301
1302// DescribeVirtualNodeRequest generates a "aws/request.Request" representing the
1303// client's request for the DescribeVirtualNode operation. The "output" return
1304// value will be populated with the request's response once the request completes
1305// successfully.
1306//
1307// Use "Send" method on the returned Request to send the API call to the service.
1308// the "output" return value is not valid until after Send returns without error.
1309//
1310// See DescribeVirtualNode for more information on using the DescribeVirtualNode
1311// API call, and error handling.
1312//
1313// This method is useful when you want to inject custom logic or configuration
1314// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1315//
1316//
1317//    // Example sending a request using the DescribeVirtualNodeRequest method.
1318//    req, resp := client.DescribeVirtualNodeRequest(params)
1319//
1320//    err := req.Send()
1321//    if err == nil { // resp is now filled
1322//        fmt.Println(resp)
1323//    }
1324//
1325// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DescribeVirtualNode
1326func (c *AppMesh) DescribeVirtualNodeRequest(input *DescribeVirtualNodeInput) (req *request.Request, output *DescribeVirtualNodeOutput) {
1327	op := &request.Operation{
1328		Name:       opDescribeVirtualNode,
1329		HTTPMethod: "GET",
1330		HTTPPath:   "/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}",
1331	}
1332
1333	if input == nil {
1334		input = &DescribeVirtualNodeInput{}
1335	}
1336
1337	output = &DescribeVirtualNodeOutput{}
1338	req = c.newRequest(op, input, output)
1339	return
1340}
1341
1342// DescribeVirtualNode API operation for AWS App Mesh.
1343//
1344// Describes an existing virtual node.
1345//
1346// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1347// with awserr.Error's Code and Message methods to get detailed information about
1348// the error.
1349//
1350// See the AWS API reference guide for AWS App Mesh's
1351// API operation DescribeVirtualNode for usage and error information.
1352//
1353// Returned Error Codes:
1354//   * ErrCodeBadRequestException "BadRequestException"
1355//   The request syntax was malformed. Check your request syntax and try again.
1356//
1357//   * ErrCodeForbiddenException "ForbiddenException"
1358//   You don't have permissions to perform this action.
1359//
1360//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1361//   The request processing has failed because of an unknown error, exception,
1362//   or failure.
1363//
1364//   * ErrCodeNotFoundException "NotFoundException"
1365//   The specified resource doesn't exist. Check your request syntax and try again.
1366//
1367//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1368//   The request has failed due to a temporary failure of the service.
1369//
1370//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1371//   The maximum request rate permitted by the App Mesh APIs has been exceeded
1372//   for your account. For best results, use an increasing or variable sleep interval
1373//   between requests.
1374//
1375// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DescribeVirtualNode
1376func (c *AppMesh) DescribeVirtualNode(input *DescribeVirtualNodeInput) (*DescribeVirtualNodeOutput, error) {
1377	req, out := c.DescribeVirtualNodeRequest(input)
1378	return out, req.Send()
1379}
1380
1381// DescribeVirtualNodeWithContext is the same as DescribeVirtualNode with the addition of
1382// the ability to pass a context and additional request options.
1383//
1384// See DescribeVirtualNode for details on how to use this API operation.
1385//
1386// The context must be non-nil and will be used for request cancellation. If
1387// the context is nil a panic will occur. In the future the SDK may create
1388// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1389// for more information on using Contexts.
1390func (c *AppMesh) DescribeVirtualNodeWithContext(ctx aws.Context, input *DescribeVirtualNodeInput, opts ...request.Option) (*DescribeVirtualNodeOutput, error) {
1391	req, out := c.DescribeVirtualNodeRequest(input)
1392	req.SetContext(ctx)
1393	req.ApplyOptions(opts...)
1394	return out, req.Send()
1395}
1396
1397const opDescribeVirtualRouter = "DescribeVirtualRouter"
1398
1399// DescribeVirtualRouterRequest generates a "aws/request.Request" representing the
1400// client's request for the DescribeVirtualRouter operation. The "output" return
1401// value will be populated with the request's response once the request completes
1402// successfully.
1403//
1404// Use "Send" method on the returned Request to send the API call to the service.
1405// the "output" return value is not valid until after Send returns without error.
1406//
1407// See DescribeVirtualRouter for more information on using the DescribeVirtualRouter
1408// API call, and error handling.
1409//
1410// This method is useful when you want to inject custom logic or configuration
1411// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1412//
1413//
1414//    // Example sending a request using the DescribeVirtualRouterRequest method.
1415//    req, resp := client.DescribeVirtualRouterRequest(params)
1416//
1417//    err := req.Send()
1418//    if err == nil { // resp is now filled
1419//        fmt.Println(resp)
1420//    }
1421//
1422// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DescribeVirtualRouter
1423func (c *AppMesh) DescribeVirtualRouterRequest(input *DescribeVirtualRouterInput) (req *request.Request, output *DescribeVirtualRouterOutput) {
1424	op := &request.Operation{
1425		Name:       opDescribeVirtualRouter,
1426		HTTPMethod: "GET",
1427		HTTPPath:   "/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}",
1428	}
1429
1430	if input == nil {
1431		input = &DescribeVirtualRouterInput{}
1432	}
1433
1434	output = &DescribeVirtualRouterOutput{}
1435	req = c.newRequest(op, input, output)
1436	return
1437}
1438
1439// DescribeVirtualRouter API operation for AWS App Mesh.
1440//
1441// Describes an existing virtual router.
1442//
1443// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1444// with awserr.Error's Code and Message methods to get detailed information about
1445// the error.
1446//
1447// See the AWS API reference guide for AWS App Mesh's
1448// API operation DescribeVirtualRouter for usage and error information.
1449//
1450// Returned Error Codes:
1451//   * ErrCodeBadRequestException "BadRequestException"
1452//   The request syntax was malformed. Check your request syntax and try again.
1453//
1454//   * ErrCodeForbiddenException "ForbiddenException"
1455//   You don't have permissions to perform this action.
1456//
1457//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1458//   The request processing has failed because of an unknown error, exception,
1459//   or failure.
1460//
1461//   * ErrCodeNotFoundException "NotFoundException"
1462//   The specified resource doesn't exist. Check your request syntax and try again.
1463//
1464//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1465//   The request has failed due to a temporary failure of the service.
1466//
1467//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1468//   The maximum request rate permitted by the App Mesh APIs has been exceeded
1469//   for your account. For best results, use an increasing or variable sleep interval
1470//   between requests.
1471//
1472// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DescribeVirtualRouter
1473func (c *AppMesh) DescribeVirtualRouter(input *DescribeVirtualRouterInput) (*DescribeVirtualRouterOutput, error) {
1474	req, out := c.DescribeVirtualRouterRequest(input)
1475	return out, req.Send()
1476}
1477
1478// DescribeVirtualRouterWithContext is the same as DescribeVirtualRouter with the addition of
1479// the ability to pass a context and additional request options.
1480//
1481// See DescribeVirtualRouter for details on how to use this API operation.
1482//
1483// The context must be non-nil and will be used for request cancellation. If
1484// the context is nil a panic will occur. In the future the SDK may create
1485// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1486// for more information on using Contexts.
1487func (c *AppMesh) DescribeVirtualRouterWithContext(ctx aws.Context, input *DescribeVirtualRouterInput, opts ...request.Option) (*DescribeVirtualRouterOutput, error) {
1488	req, out := c.DescribeVirtualRouterRequest(input)
1489	req.SetContext(ctx)
1490	req.ApplyOptions(opts...)
1491	return out, req.Send()
1492}
1493
1494const opDescribeVirtualService = "DescribeVirtualService"
1495
1496// DescribeVirtualServiceRequest generates a "aws/request.Request" representing the
1497// client's request for the DescribeVirtualService operation. The "output" return
1498// value will be populated with the request's response once the request completes
1499// successfully.
1500//
1501// Use "Send" method on the returned Request to send the API call to the service.
1502// the "output" return value is not valid until after Send returns without error.
1503//
1504// See DescribeVirtualService for more information on using the DescribeVirtualService
1505// API call, and error handling.
1506//
1507// This method is useful when you want to inject custom logic or configuration
1508// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1509//
1510//
1511//    // Example sending a request using the DescribeVirtualServiceRequest method.
1512//    req, resp := client.DescribeVirtualServiceRequest(params)
1513//
1514//    err := req.Send()
1515//    if err == nil { // resp is now filled
1516//        fmt.Println(resp)
1517//    }
1518//
1519// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DescribeVirtualService
1520func (c *AppMesh) DescribeVirtualServiceRequest(input *DescribeVirtualServiceInput) (req *request.Request, output *DescribeVirtualServiceOutput) {
1521	op := &request.Operation{
1522		Name:       opDescribeVirtualService,
1523		HTTPMethod: "GET",
1524		HTTPPath:   "/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}",
1525	}
1526
1527	if input == nil {
1528		input = &DescribeVirtualServiceInput{}
1529	}
1530
1531	output = &DescribeVirtualServiceOutput{}
1532	req = c.newRequest(op, input, output)
1533	return
1534}
1535
1536// DescribeVirtualService API operation for AWS App Mesh.
1537//
1538// Describes an existing virtual service.
1539//
1540// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1541// with awserr.Error's Code and Message methods to get detailed information about
1542// the error.
1543//
1544// See the AWS API reference guide for AWS App Mesh's
1545// API operation DescribeVirtualService for usage and error information.
1546//
1547// Returned Error Codes:
1548//   * ErrCodeBadRequestException "BadRequestException"
1549//   The request syntax was malformed. Check your request syntax and try again.
1550//
1551//   * ErrCodeForbiddenException "ForbiddenException"
1552//   You don't have permissions to perform this action.
1553//
1554//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1555//   The request processing has failed because of an unknown error, exception,
1556//   or failure.
1557//
1558//   * ErrCodeNotFoundException "NotFoundException"
1559//   The specified resource doesn't exist. Check your request syntax and try again.
1560//
1561//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1562//   The request has failed due to a temporary failure of the service.
1563//
1564//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1565//   The maximum request rate permitted by the App Mesh APIs has been exceeded
1566//   for your account. For best results, use an increasing or variable sleep interval
1567//   between requests.
1568//
1569// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DescribeVirtualService
1570func (c *AppMesh) DescribeVirtualService(input *DescribeVirtualServiceInput) (*DescribeVirtualServiceOutput, error) {
1571	req, out := c.DescribeVirtualServiceRequest(input)
1572	return out, req.Send()
1573}
1574
1575// DescribeVirtualServiceWithContext is the same as DescribeVirtualService with the addition of
1576// the ability to pass a context and additional request options.
1577//
1578// See DescribeVirtualService for details on how to use this API operation.
1579//
1580// The context must be non-nil and will be used for request cancellation. If
1581// the context is nil a panic will occur. In the future the SDK may create
1582// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1583// for more information on using Contexts.
1584func (c *AppMesh) DescribeVirtualServiceWithContext(ctx aws.Context, input *DescribeVirtualServiceInput, opts ...request.Option) (*DescribeVirtualServiceOutput, error) {
1585	req, out := c.DescribeVirtualServiceRequest(input)
1586	req.SetContext(ctx)
1587	req.ApplyOptions(opts...)
1588	return out, req.Send()
1589}
1590
1591const opListMeshes = "ListMeshes"
1592
1593// ListMeshesRequest generates a "aws/request.Request" representing the
1594// client's request for the ListMeshes operation. The "output" return
1595// value will be populated with the request's response once the request completes
1596// successfully.
1597//
1598// Use "Send" method on the returned Request to send the API call to the service.
1599// the "output" return value is not valid until after Send returns without error.
1600//
1601// See ListMeshes for more information on using the ListMeshes
1602// API call, and error handling.
1603//
1604// This method is useful when you want to inject custom logic or configuration
1605// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1606//
1607//
1608//    // Example sending a request using the ListMeshesRequest method.
1609//    req, resp := client.ListMeshesRequest(params)
1610//
1611//    err := req.Send()
1612//    if err == nil { // resp is now filled
1613//        fmt.Println(resp)
1614//    }
1615//
1616// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListMeshes
1617func (c *AppMesh) ListMeshesRequest(input *ListMeshesInput) (req *request.Request, output *ListMeshesOutput) {
1618	op := &request.Operation{
1619		Name:       opListMeshes,
1620		HTTPMethod: "GET",
1621		HTTPPath:   "/v20190125/meshes",
1622		Paginator: &request.Paginator{
1623			InputTokens:     []string{"nextToken"},
1624			OutputTokens:    []string{"nextToken"},
1625			LimitToken:      "limit",
1626			TruncationToken: "",
1627		},
1628	}
1629
1630	if input == nil {
1631		input = &ListMeshesInput{}
1632	}
1633
1634	output = &ListMeshesOutput{}
1635	req = c.newRequest(op, input, output)
1636	return
1637}
1638
1639// ListMeshes API operation for AWS App Mesh.
1640//
1641// Returns a list of existing service meshes.
1642//
1643// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1644// with awserr.Error's Code and Message methods to get detailed information about
1645// the error.
1646//
1647// See the AWS API reference guide for AWS App Mesh's
1648// API operation ListMeshes for usage and error information.
1649//
1650// Returned Error Codes:
1651//   * ErrCodeBadRequestException "BadRequestException"
1652//   The request syntax was malformed. Check your request syntax and try again.
1653//
1654//   * ErrCodeForbiddenException "ForbiddenException"
1655//   You don't have permissions to perform this action.
1656//
1657//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1658//   The request processing has failed because of an unknown error, exception,
1659//   or failure.
1660//
1661//   * ErrCodeNotFoundException "NotFoundException"
1662//   The specified resource doesn't exist. Check your request syntax and try again.
1663//
1664//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1665//   The request has failed due to a temporary failure of the service.
1666//
1667//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1668//   The maximum request rate permitted by the App Mesh APIs has been exceeded
1669//   for your account. For best results, use an increasing or variable sleep interval
1670//   between requests.
1671//
1672// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListMeshes
1673func (c *AppMesh) ListMeshes(input *ListMeshesInput) (*ListMeshesOutput, error) {
1674	req, out := c.ListMeshesRequest(input)
1675	return out, req.Send()
1676}
1677
1678// ListMeshesWithContext is the same as ListMeshes with the addition of
1679// the ability to pass a context and additional request options.
1680//
1681// See ListMeshes for details on how to use this API operation.
1682//
1683// The context must be non-nil and will be used for request cancellation. If
1684// the context is nil a panic will occur. In the future the SDK may create
1685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1686// for more information on using Contexts.
1687func (c *AppMesh) ListMeshesWithContext(ctx aws.Context, input *ListMeshesInput, opts ...request.Option) (*ListMeshesOutput, error) {
1688	req, out := c.ListMeshesRequest(input)
1689	req.SetContext(ctx)
1690	req.ApplyOptions(opts...)
1691	return out, req.Send()
1692}
1693
1694// ListMeshesPages iterates over the pages of a ListMeshes operation,
1695// calling the "fn" function with the response data for each page. To stop
1696// iterating, return false from the fn function.
1697//
1698// See ListMeshes method for more information on how to use this operation.
1699//
1700// Note: This operation can generate multiple requests to a service.
1701//
1702//    // Example iterating over at most 3 pages of a ListMeshes operation.
1703//    pageNum := 0
1704//    err := client.ListMeshesPages(params,
1705//        func(page *appmesh.ListMeshesOutput, lastPage bool) bool {
1706//            pageNum++
1707//            fmt.Println(page)
1708//            return pageNum <= 3
1709//        })
1710//
1711func (c *AppMesh) ListMeshesPages(input *ListMeshesInput, fn func(*ListMeshesOutput, bool) bool) error {
1712	return c.ListMeshesPagesWithContext(aws.BackgroundContext(), input, fn)
1713}
1714
1715// ListMeshesPagesWithContext same as ListMeshesPages except
1716// it takes a Context and allows setting request options on the pages.
1717//
1718// The context must be non-nil and will be used for request cancellation. If
1719// the context is nil a panic will occur. In the future the SDK may create
1720// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1721// for more information on using Contexts.
1722func (c *AppMesh) ListMeshesPagesWithContext(ctx aws.Context, input *ListMeshesInput, fn func(*ListMeshesOutput, bool) bool, opts ...request.Option) error {
1723	p := request.Pagination{
1724		NewRequest: func() (*request.Request, error) {
1725			var inCpy *ListMeshesInput
1726			if input != nil {
1727				tmp := *input
1728				inCpy = &tmp
1729			}
1730			req, _ := c.ListMeshesRequest(inCpy)
1731			req.SetContext(ctx)
1732			req.ApplyOptions(opts...)
1733			return req, nil
1734		},
1735	}
1736
1737	cont := true
1738	for p.Next() && cont {
1739		cont = fn(p.Page().(*ListMeshesOutput), !p.HasNextPage())
1740	}
1741	return p.Err()
1742}
1743
1744const opListRoutes = "ListRoutes"
1745
1746// ListRoutesRequest generates a "aws/request.Request" representing the
1747// client's request for the ListRoutes operation. The "output" return
1748// value will be populated with the request's response once the request completes
1749// successfully.
1750//
1751// Use "Send" method on the returned Request to send the API call to the service.
1752// the "output" return value is not valid until after Send returns without error.
1753//
1754// See ListRoutes for more information on using the ListRoutes
1755// API call, and error handling.
1756//
1757// This method is useful when you want to inject custom logic or configuration
1758// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1759//
1760//
1761//    // Example sending a request using the ListRoutesRequest method.
1762//    req, resp := client.ListRoutesRequest(params)
1763//
1764//    err := req.Send()
1765//    if err == nil { // resp is now filled
1766//        fmt.Println(resp)
1767//    }
1768//
1769// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListRoutes
1770func (c *AppMesh) ListRoutesRequest(input *ListRoutesInput) (req *request.Request, output *ListRoutesOutput) {
1771	op := &request.Operation{
1772		Name:       opListRoutes,
1773		HTTPMethod: "GET",
1774		HTTPPath:   "/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes",
1775		Paginator: &request.Paginator{
1776			InputTokens:     []string{"nextToken"},
1777			OutputTokens:    []string{"nextToken"},
1778			LimitToken:      "limit",
1779			TruncationToken: "",
1780		},
1781	}
1782
1783	if input == nil {
1784		input = &ListRoutesInput{}
1785	}
1786
1787	output = &ListRoutesOutput{}
1788	req = c.newRequest(op, input, output)
1789	return
1790}
1791
1792// ListRoutes API operation for AWS App Mesh.
1793//
1794// Returns a list of existing routes in a service mesh.
1795//
1796// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1797// with awserr.Error's Code and Message methods to get detailed information about
1798// the error.
1799//
1800// See the AWS API reference guide for AWS App Mesh's
1801// API operation ListRoutes for usage and error information.
1802//
1803// Returned Error Codes:
1804//   * ErrCodeBadRequestException "BadRequestException"
1805//   The request syntax was malformed. Check your request syntax and try again.
1806//
1807//   * ErrCodeForbiddenException "ForbiddenException"
1808//   You don't have permissions to perform this action.
1809//
1810//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1811//   The request processing has failed because of an unknown error, exception,
1812//   or failure.
1813//
1814//   * ErrCodeNotFoundException "NotFoundException"
1815//   The specified resource doesn't exist. Check your request syntax and try again.
1816//
1817//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1818//   The request has failed due to a temporary failure of the service.
1819//
1820//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1821//   The maximum request rate permitted by the App Mesh APIs has been exceeded
1822//   for your account. For best results, use an increasing or variable sleep interval
1823//   between requests.
1824//
1825// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListRoutes
1826func (c *AppMesh) ListRoutes(input *ListRoutesInput) (*ListRoutesOutput, error) {
1827	req, out := c.ListRoutesRequest(input)
1828	return out, req.Send()
1829}
1830
1831// ListRoutesWithContext is the same as ListRoutes with the addition of
1832// the ability to pass a context and additional request options.
1833//
1834// See ListRoutes for details on how to use this API operation.
1835//
1836// The context must be non-nil and will be used for request cancellation. If
1837// the context is nil a panic will occur. In the future the SDK may create
1838// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1839// for more information on using Contexts.
1840func (c *AppMesh) ListRoutesWithContext(ctx aws.Context, input *ListRoutesInput, opts ...request.Option) (*ListRoutesOutput, error) {
1841	req, out := c.ListRoutesRequest(input)
1842	req.SetContext(ctx)
1843	req.ApplyOptions(opts...)
1844	return out, req.Send()
1845}
1846
1847// ListRoutesPages iterates over the pages of a ListRoutes operation,
1848// calling the "fn" function with the response data for each page. To stop
1849// iterating, return false from the fn function.
1850//
1851// See ListRoutes method for more information on how to use this operation.
1852//
1853// Note: This operation can generate multiple requests to a service.
1854//
1855//    // Example iterating over at most 3 pages of a ListRoutes operation.
1856//    pageNum := 0
1857//    err := client.ListRoutesPages(params,
1858//        func(page *appmesh.ListRoutesOutput, lastPage bool) bool {
1859//            pageNum++
1860//            fmt.Println(page)
1861//            return pageNum <= 3
1862//        })
1863//
1864func (c *AppMesh) ListRoutesPages(input *ListRoutesInput, fn func(*ListRoutesOutput, bool) bool) error {
1865	return c.ListRoutesPagesWithContext(aws.BackgroundContext(), input, fn)
1866}
1867
1868// ListRoutesPagesWithContext same as ListRoutesPages except
1869// it takes a Context and allows setting request options on the pages.
1870//
1871// The context must be non-nil and will be used for request cancellation. If
1872// the context is nil a panic will occur. In the future the SDK may create
1873// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1874// for more information on using Contexts.
1875func (c *AppMesh) ListRoutesPagesWithContext(ctx aws.Context, input *ListRoutesInput, fn func(*ListRoutesOutput, bool) bool, opts ...request.Option) error {
1876	p := request.Pagination{
1877		NewRequest: func() (*request.Request, error) {
1878			var inCpy *ListRoutesInput
1879			if input != nil {
1880				tmp := *input
1881				inCpy = &tmp
1882			}
1883			req, _ := c.ListRoutesRequest(inCpy)
1884			req.SetContext(ctx)
1885			req.ApplyOptions(opts...)
1886			return req, nil
1887		},
1888	}
1889
1890	cont := true
1891	for p.Next() && cont {
1892		cont = fn(p.Page().(*ListRoutesOutput), !p.HasNextPage())
1893	}
1894	return p.Err()
1895}
1896
1897const opListTagsForResource = "ListTagsForResource"
1898
1899// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1900// client's request for the ListTagsForResource operation. The "output" return
1901// value will be populated with the request's response once the request completes
1902// successfully.
1903//
1904// Use "Send" method on the returned Request to send the API call to the service.
1905// the "output" return value is not valid until after Send returns without error.
1906//
1907// See ListTagsForResource for more information on using the ListTagsForResource
1908// API call, and error handling.
1909//
1910// This method is useful when you want to inject custom logic or configuration
1911// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1912//
1913//
1914//    // Example sending a request using the ListTagsForResourceRequest method.
1915//    req, resp := client.ListTagsForResourceRequest(params)
1916//
1917//    err := req.Send()
1918//    if err == nil { // resp is now filled
1919//        fmt.Println(resp)
1920//    }
1921//
1922// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListTagsForResource
1923func (c *AppMesh) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1924	op := &request.Operation{
1925		Name:       opListTagsForResource,
1926		HTTPMethod: "GET",
1927		HTTPPath:   "/v20190125/tags",
1928		Paginator: &request.Paginator{
1929			InputTokens:     []string{"nextToken"},
1930			OutputTokens:    []string{"nextToken"},
1931			LimitToken:      "limit",
1932			TruncationToken: "",
1933		},
1934	}
1935
1936	if input == nil {
1937		input = &ListTagsForResourceInput{}
1938	}
1939
1940	output = &ListTagsForResourceOutput{}
1941	req = c.newRequest(op, input, output)
1942	return
1943}
1944
1945// ListTagsForResource API operation for AWS App Mesh.
1946//
1947// List the tags for an App Mesh resource.
1948//
1949// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1950// with awserr.Error's Code and Message methods to get detailed information about
1951// the error.
1952//
1953// See the AWS API reference guide for AWS App Mesh's
1954// API operation ListTagsForResource for usage and error information.
1955//
1956// Returned Error Codes:
1957//   * ErrCodeBadRequestException "BadRequestException"
1958//   The request syntax was malformed. Check your request syntax and try again.
1959//
1960//   * ErrCodeForbiddenException "ForbiddenException"
1961//   You don't have permissions to perform this action.
1962//
1963//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
1964//   The request processing has failed because of an unknown error, exception,
1965//   or failure.
1966//
1967//   * ErrCodeNotFoundException "NotFoundException"
1968//   The specified resource doesn't exist. Check your request syntax and try again.
1969//
1970//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1971//   The request has failed due to a temporary failure of the service.
1972//
1973//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1974//   The maximum request rate permitted by the App Mesh APIs has been exceeded
1975//   for your account. For best results, use an increasing or variable sleep interval
1976//   between requests.
1977//
1978// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListTagsForResource
1979func (c *AppMesh) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1980	req, out := c.ListTagsForResourceRequest(input)
1981	return out, req.Send()
1982}
1983
1984// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1985// the ability to pass a context and additional request options.
1986//
1987// See ListTagsForResource for details on how to use this API operation.
1988//
1989// The context must be non-nil and will be used for request cancellation. If
1990// the context is nil a panic will occur. In the future the SDK may create
1991// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1992// for more information on using Contexts.
1993func (c *AppMesh) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1994	req, out := c.ListTagsForResourceRequest(input)
1995	req.SetContext(ctx)
1996	req.ApplyOptions(opts...)
1997	return out, req.Send()
1998}
1999
2000// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
2001// calling the "fn" function with the response data for each page. To stop
2002// iterating, return false from the fn function.
2003//
2004// See ListTagsForResource method for more information on how to use this operation.
2005//
2006// Note: This operation can generate multiple requests to a service.
2007//
2008//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
2009//    pageNum := 0
2010//    err := client.ListTagsForResourcePages(params,
2011//        func(page *appmesh.ListTagsForResourceOutput, lastPage bool) bool {
2012//            pageNum++
2013//            fmt.Println(page)
2014//            return pageNum <= 3
2015//        })
2016//
2017func (c *AppMesh) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
2018	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
2019}
2020
2021// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
2022// it takes a Context and allows setting request options on the pages.
2023//
2024// The context must be non-nil and will be used for request cancellation. If
2025// the context is nil a panic will occur. In the future the SDK may create
2026// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2027// for more information on using Contexts.
2028func (c *AppMesh) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
2029	p := request.Pagination{
2030		NewRequest: func() (*request.Request, error) {
2031			var inCpy *ListTagsForResourceInput
2032			if input != nil {
2033				tmp := *input
2034				inCpy = &tmp
2035			}
2036			req, _ := c.ListTagsForResourceRequest(inCpy)
2037			req.SetContext(ctx)
2038			req.ApplyOptions(opts...)
2039			return req, nil
2040		},
2041	}
2042
2043	cont := true
2044	for p.Next() && cont {
2045		cont = fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage())
2046	}
2047	return p.Err()
2048}
2049
2050const opListVirtualNodes = "ListVirtualNodes"
2051
2052// ListVirtualNodesRequest generates a "aws/request.Request" representing the
2053// client's request for the ListVirtualNodes operation. The "output" return
2054// value will be populated with the request's response once the request completes
2055// successfully.
2056//
2057// Use "Send" method on the returned Request to send the API call to the service.
2058// the "output" return value is not valid until after Send returns without error.
2059//
2060// See ListVirtualNodes for more information on using the ListVirtualNodes
2061// API call, and error handling.
2062//
2063// This method is useful when you want to inject custom logic or configuration
2064// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2065//
2066//
2067//    // Example sending a request using the ListVirtualNodesRequest method.
2068//    req, resp := client.ListVirtualNodesRequest(params)
2069//
2070//    err := req.Send()
2071//    if err == nil { // resp is now filled
2072//        fmt.Println(resp)
2073//    }
2074//
2075// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListVirtualNodes
2076func (c *AppMesh) ListVirtualNodesRequest(input *ListVirtualNodesInput) (req *request.Request, output *ListVirtualNodesOutput) {
2077	op := &request.Operation{
2078		Name:       opListVirtualNodes,
2079		HTTPMethod: "GET",
2080		HTTPPath:   "/v20190125/meshes/{meshName}/virtualNodes",
2081		Paginator: &request.Paginator{
2082			InputTokens:     []string{"nextToken"},
2083			OutputTokens:    []string{"nextToken"},
2084			LimitToken:      "limit",
2085			TruncationToken: "",
2086		},
2087	}
2088
2089	if input == nil {
2090		input = &ListVirtualNodesInput{}
2091	}
2092
2093	output = &ListVirtualNodesOutput{}
2094	req = c.newRequest(op, input, output)
2095	return
2096}
2097
2098// ListVirtualNodes API operation for AWS App Mesh.
2099//
2100// Returns a list of existing virtual nodes.
2101//
2102// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2103// with awserr.Error's Code and Message methods to get detailed information about
2104// the error.
2105//
2106// See the AWS API reference guide for AWS App Mesh's
2107// API operation ListVirtualNodes for usage and error information.
2108//
2109// Returned Error Codes:
2110//   * ErrCodeBadRequestException "BadRequestException"
2111//   The request syntax was malformed. Check your request syntax and try again.
2112//
2113//   * ErrCodeForbiddenException "ForbiddenException"
2114//   You don't have permissions to perform this action.
2115//
2116//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
2117//   The request processing has failed because of an unknown error, exception,
2118//   or failure.
2119//
2120//   * ErrCodeNotFoundException "NotFoundException"
2121//   The specified resource doesn't exist. Check your request syntax and try again.
2122//
2123//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2124//   The request has failed due to a temporary failure of the service.
2125//
2126//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2127//   The maximum request rate permitted by the App Mesh APIs has been exceeded
2128//   for your account. For best results, use an increasing or variable sleep interval
2129//   between requests.
2130//
2131// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListVirtualNodes
2132func (c *AppMesh) ListVirtualNodes(input *ListVirtualNodesInput) (*ListVirtualNodesOutput, error) {
2133	req, out := c.ListVirtualNodesRequest(input)
2134	return out, req.Send()
2135}
2136
2137// ListVirtualNodesWithContext is the same as ListVirtualNodes with the addition of
2138// the ability to pass a context and additional request options.
2139//
2140// See ListVirtualNodes for details on how to use this API operation.
2141//
2142// The context must be non-nil and will be used for request cancellation. If
2143// the context is nil a panic will occur. In the future the SDK may create
2144// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2145// for more information on using Contexts.
2146func (c *AppMesh) ListVirtualNodesWithContext(ctx aws.Context, input *ListVirtualNodesInput, opts ...request.Option) (*ListVirtualNodesOutput, error) {
2147	req, out := c.ListVirtualNodesRequest(input)
2148	req.SetContext(ctx)
2149	req.ApplyOptions(opts...)
2150	return out, req.Send()
2151}
2152
2153// ListVirtualNodesPages iterates over the pages of a ListVirtualNodes operation,
2154// calling the "fn" function with the response data for each page. To stop
2155// iterating, return false from the fn function.
2156//
2157// See ListVirtualNodes method for more information on how to use this operation.
2158//
2159// Note: This operation can generate multiple requests to a service.
2160//
2161//    // Example iterating over at most 3 pages of a ListVirtualNodes operation.
2162//    pageNum := 0
2163//    err := client.ListVirtualNodesPages(params,
2164//        func(page *appmesh.ListVirtualNodesOutput, lastPage bool) bool {
2165//            pageNum++
2166//            fmt.Println(page)
2167//            return pageNum <= 3
2168//        })
2169//
2170func (c *AppMesh) ListVirtualNodesPages(input *ListVirtualNodesInput, fn func(*ListVirtualNodesOutput, bool) bool) error {
2171	return c.ListVirtualNodesPagesWithContext(aws.BackgroundContext(), input, fn)
2172}
2173
2174// ListVirtualNodesPagesWithContext same as ListVirtualNodesPages except
2175// it takes a Context and allows setting request options on the pages.
2176//
2177// The context must be non-nil and will be used for request cancellation. If
2178// the context is nil a panic will occur. In the future the SDK may create
2179// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2180// for more information on using Contexts.
2181func (c *AppMesh) ListVirtualNodesPagesWithContext(ctx aws.Context, input *ListVirtualNodesInput, fn func(*ListVirtualNodesOutput, bool) bool, opts ...request.Option) error {
2182	p := request.Pagination{
2183		NewRequest: func() (*request.Request, error) {
2184			var inCpy *ListVirtualNodesInput
2185			if input != nil {
2186				tmp := *input
2187				inCpy = &tmp
2188			}
2189			req, _ := c.ListVirtualNodesRequest(inCpy)
2190			req.SetContext(ctx)
2191			req.ApplyOptions(opts...)
2192			return req, nil
2193		},
2194	}
2195
2196	cont := true
2197	for p.Next() && cont {
2198		cont = fn(p.Page().(*ListVirtualNodesOutput), !p.HasNextPage())
2199	}
2200	return p.Err()
2201}
2202
2203const opListVirtualRouters = "ListVirtualRouters"
2204
2205// ListVirtualRoutersRequest generates a "aws/request.Request" representing the
2206// client's request for the ListVirtualRouters operation. The "output" return
2207// value will be populated with the request's response once the request completes
2208// successfully.
2209//
2210// Use "Send" method on the returned Request to send the API call to the service.
2211// the "output" return value is not valid until after Send returns without error.
2212//
2213// See ListVirtualRouters for more information on using the ListVirtualRouters
2214// API call, and error handling.
2215//
2216// This method is useful when you want to inject custom logic or configuration
2217// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2218//
2219//
2220//    // Example sending a request using the ListVirtualRoutersRequest method.
2221//    req, resp := client.ListVirtualRoutersRequest(params)
2222//
2223//    err := req.Send()
2224//    if err == nil { // resp is now filled
2225//        fmt.Println(resp)
2226//    }
2227//
2228// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListVirtualRouters
2229func (c *AppMesh) ListVirtualRoutersRequest(input *ListVirtualRoutersInput) (req *request.Request, output *ListVirtualRoutersOutput) {
2230	op := &request.Operation{
2231		Name:       opListVirtualRouters,
2232		HTTPMethod: "GET",
2233		HTTPPath:   "/v20190125/meshes/{meshName}/virtualRouters",
2234		Paginator: &request.Paginator{
2235			InputTokens:     []string{"nextToken"},
2236			OutputTokens:    []string{"nextToken"},
2237			LimitToken:      "limit",
2238			TruncationToken: "",
2239		},
2240	}
2241
2242	if input == nil {
2243		input = &ListVirtualRoutersInput{}
2244	}
2245
2246	output = &ListVirtualRoutersOutput{}
2247	req = c.newRequest(op, input, output)
2248	return
2249}
2250
2251// ListVirtualRouters API operation for AWS App Mesh.
2252//
2253// Returns a list of existing virtual routers in a service mesh.
2254//
2255// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2256// with awserr.Error's Code and Message methods to get detailed information about
2257// the error.
2258//
2259// See the AWS API reference guide for AWS App Mesh's
2260// API operation ListVirtualRouters for usage and error information.
2261//
2262// Returned Error Codes:
2263//   * ErrCodeBadRequestException "BadRequestException"
2264//   The request syntax was malformed. Check your request syntax and try again.
2265//
2266//   * ErrCodeForbiddenException "ForbiddenException"
2267//   You don't have permissions to perform this action.
2268//
2269//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
2270//   The request processing has failed because of an unknown error, exception,
2271//   or failure.
2272//
2273//   * ErrCodeNotFoundException "NotFoundException"
2274//   The specified resource doesn't exist. Check your request syntax and try again.
2275//
2276//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2277//   The request has failed due to a temporary failure of the service.
2278//
2279//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2280//   The maximum request rate permitted by the App Mesh APIs has been exceeded
2281//   for your account. For best results, use an increasing or variable sleep interval
2282//   between requests.
2283//
2284// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListVirtualRouters
2285func (c *AppMesh) ListVirtualRouters(input *ListVirtualRoutersInput) (*ListVirtualRoutersOutput, error) {
2286	req, out := c.ListVirtualRoutersRequest(input)
2287	return out, req.Send()
2288}
2289
2290// ListVirtualRoutersWithContext is the same as ListVirtualRouters with the addition of
2291// the ability to pass a context and additional request options.
2292//
2293// See ListVirtualRouters for details on how to use this API operation.
2294//
2295// The context must be non-nil and will be used for request cancellation. If
2296// the context is nil a panic will occur. In the future the SDK may create
2297// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2298// for more information on using Contexts.
2299func (c *AppMesh) ListVirtualRoutersWithContext(ctx aws.Context, input *ListVirtualRoutersInput, opts ...request.Option) (*ListVirtualRoutersOutput, error) {
2300	req, out := c.ListVirtualRoutersRequest(input)
2301	req.SetContext(ctx)
2302	req.ApplyOptions(opts...)
2303	return out, req.Send()
2304}
2305
2306// ListVirtualRoutersPages iterates over the pages of a ListVirtualRouters operation,
2307// calling the "fn" function with the response data for each page. To stop
2308// iterating, return false from the fn function.
2309//
2310// See ListVirtualRouters method for more information on how to use this operation.
2311//
2312// Note: This operation can generate multiple requests to a service.
2313//
2314//    // Example iterating over at most 3 pages of a ListVirtualRouters operation.
2315//    pageNum := 0
2316//    err := client.ListVirtualRoutersPages(params,
2317//        func(page *appmesh.ListVirtualRoutersOutput, lastPage bool) bool {
2318//            pageNum++
2319//            fmt.Println(page)
2320//            return pageNum <= 3
2321//        })
2322//
2323func (c *AppMesh) ListVirtualRoutersPages(input *ListVirtualRoutersInput, fn func(*ListVirtualRoutersOutput, bool) bool) error {
2324	return c.ListVirtualRoutersPagesWithContext(aws.BackgroundContext(), input, fn)
2325}
2326
2327// ListVirtualRoutersPagesWithContext same as ListVirtualRoutersPages except
2328// it takes a Context and allows setting request options on the pages.
2329//
2330// The context must be non-nil and will be used for request cancellation. If
2331// the context is nil a panic will occur. In the future the SDK may create
2332// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2333// for more information on using Contexts.
2334func (c *AppMesh) ListVirtualRoutersPagesWithContext(ctx aws.Context, input *ListVirtualRoutersInput, fn func(*ListVirtualRoutersOutput, bool) bool, opts ...request.Option) error {
2335	p := request.Pagination{
2336		NewRequest: func() (*request.Request, error) {
2337			var inCpy *ListVirtualRoutersInput
2338			if input != nil {
2339				tmp := *input
2340				inCpy = &tmp
2341			}
2342			req, _ := c.ListVirtualRoutersRequest(inCpy)
2343			req.SetContext(ctx)
2344			req.ApplyOptions(opts...)
2345			return req, nil
2346		},
2347	}
2348
2349	cont := true
2350	for p.Next() && cont {
2351		cont = fn(p.Page().(*ListVirtualRoutersOutput), !p.HasNextPage())
2352	}
2353	return p.Err()
2354}
2355
2356const opListVirtualServices = "ListVirtualServices"
2357
2358// ListVirtualServicesRequest generates a "aws/request.Request" representing the
2359// client's request for the ListVirtualServices operation. The "output" return
2360// value will be populated with the request's response once the request completes
2361// successfully.
2362//
2363// Use "Send" method on the returned Request to send the API call to the service.
2364// the "output" return value is not valid until after Send returns without error.
2365//
2366// See ListVirtualServices for more information on using the ListVirtualServices
2367// API call, and error handling.
2368//
2369// This method is useful when you want to inject custom logic or configuration
2370// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2371//
2372//
2373//    // Example sending a request using the ListVirtualServicesRequest method.
2374//    req, resp := client.ListVirtualServicesRequest(params)
2375//
2376//    err := req.Send()
2377//    if err == nil { // resp is now filled
2378//        fmt.Println(resp)
2379//    }
2380//
2381// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListVirtualServices
2382func (c *AppMesh) ListVirtualServicesRequest(input *ListVirtualServicesInput) (req *request.Request, output *ListVirtualServicesOutput) {
2383	op := &request.Operation{
2384		Name:       opListVirtualServices,
2385		HTTPMethod: "GET",
2386		HTTPPath:   "/v20190125/meshes/{meshName}/virtualServices",
2387		Paginator: &request.Paginator{
2388			InputTokens:     []string{"nextToken"},
2389			OutputTokens:    []string{"nextToken"},
2390			LimitToken:      "limit",
2391			TruncationToken: "",
2392		},
2393	}
2394
2395	if input == nil {
2396		input = &ListVirtualServicesInput{}
2397	}
2398
2399	output = &ListVirtualServicesOutput{}
2400	req = c.newRequest(op, input, output)
2401	return
2402}
2403
2404// ListVirtualServices API operation for AWS App Mesh.
2405//
2406// Returns a list of existing virtual services in a service mesh.
2407//
2408// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2409// with awserr.Error's Code and Message methods to get detailed information about
2410// the error.
2411//
2412// See the AWS API reference guide for AWS App Mesh's
2413// API operation ListVirtualServices for usage and error information.
2414//
2415// Returned Error Codes:
2416//   * ErrCodeBadRequestException "BadRequestException"
2417//   The request syntax was malformed. Check your request syntax and try again.
2418//
2419//   * ErrCodeForbiddenException "ForbiddenException"
2420//   You don't have permissions to perform this action.
2421//
2422//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
2423//   The request processing has failed because of an unknown error, exception,
2424//   or failure.
2425//
2426//   * ErrCodeNotFoundException "NotFoundException"
2427//   The specified resource doesn't exist. Check your request syntax and try again.
2428//
2429//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2430//   The request has failed due to a temporary failure of the service.
2431//
2432//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2433//   The maximum request rate permitted by the App Mesh APIs has been exceeded
2434//   for your account. For best results, use an increasing or variable sleep interval
2435//   between requests.
2436//
2437// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListVirtualServices
2438func (c *AppMesh) ListVirtualServices(input *ListVirtualServicesInput) (*ListVirtualServicesOutput, error) {
2439	req, out := c.ListVirtualServicesRequest(input)
2440	return out, req.Send()
2441}
2442
2443// ListVirtualServicesWithContext is the same as ListVirtualServices with the addition of
2444// the ability to pass a context and additional request options.
2445//
2446// See ListVirtualServices for details on how to use this API operation.
2447//
2448// The context must be non-nil and will be used for request cancellation. If
2449// the context is nil a panic will occur. In the future the SDK may create
2450// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2451// for more information on using Contexts.
2452func (c *AppMesh) ListVirtualServicesWithContext(ctx aws.Context, input *ListVirtualServicesInput, opts ...request.Option) (*ListVirtualServicesOutput, error) {
2453	req, out := c.ListVirtualServicesRequest(input)
2454	req.SetContext(ctx)
2455	req.ApplyOptions(opts...)
2456	return out, req.Send()
2457}
2458
2459// ListVirtualServicesPages iterates over the pages of a ListVirtualServices operation,
2460// calling the "fn" function with the response data for each page. To stop
2461// iterating, return false from the fn function.
2462//
2463// See ListVirtualServices method for more information on how to use this operation.
2464//
2465// Note: This operation can generate multiple requests to a service.
2466//
2467//    // Example iterating over at most 3 pages of a ListVirtualServices operation.
2468//    pageNum := 0
2469//    err := client.ListVirtualServicesPages(params,
2470//        func(page *appmesh.ListVirtualServicesOutput, lastPage bool) bool {
2471//            pageNum++
2472//            fmt.Println(page)
2473//            return pageNum <= 3
2474//        })
2475//
2476func (c *AppMesh) ListVirtualServicesPages(input *ListVirtualServicesInput, fn func(*ListVirtualServicesOutput, bool) bool) error {
2477	return c.ListVirtualServicesPagesWithContext(aws.BackgroundContext(), input, fn)
2478}
2479
2480// ListVirtualServicesPagesWithContext same as ListVirtualServicesPages except
2481// it takes a Context and allows setting request options on the pages.
2482//
2483// The context must be non-nil and will be used for request cancellation. If
2484// the context is nil a panic will occur. In the future the SDK may create
2485// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2486// for more information on using Contexts.
2487func (c *AppMesh) ListVirtualServicesPagesWithContext(ctx aws.Context, input *ListVirtualServicesInput, fn func(*ListVirtualServicesOutput, bool) bool, opts ...request.Option) error {
2488	p := request.Pagination{
2489		NewRequest: func() (*request.Request, error) {
2490			var inCpy *ListVirtualServicesInput
2491			if input != nil {
2492				tmp := *input
2493				inCpy = &tmp
2494			}
2495			req, _ := c.ListVirtualServicesRequest(inCpy)
2496			req.SetContext(ctx)
2497			req.ApplyOptions(opts...)
2498			return req, nil
2499		},
2500	}
2501
2502	cont := true
2503	for p.Next() && cont {
2504		cont = fn(p.Page().(*ListVirtualServicesOutput), !p.HasNextPage())
2505	}
2506	return p.Err()
2507}
2508
2509const opTagResource = "TagResource"
2510
2511// TagResourceRequest generates a "aws/request.Request" representing the
2512// client's request for the TagResource operation. The "output" return
2513// value will be populated with the request's response once the request completes
2514// successfully.
2515//
2516// Use "Send" method on the returned Request to send the API call to the service.
2517// the "output" return value is not valid until after Send returns without error.
2518//
2519// See TagResource for more information on using the TagResource
2520// API call, and error handling.
2521//
2522// This method is useful when you want to inject custom logic or configuration
2523// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2524//
2525//
2526//    // Example sending a request using the TagResourceRequest method.
2527//    req, resp := client.TagResourceRequest(params)
2528//
2529//    err := req.Send()
2530//    if err == nil { // resp is now filled
2531//        fmt.Println(resp)
2532//    }
2533//
2534// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/TagResource
2535func (c *AppMesh) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2536	op := &request.Operation{
2537		Name:       opTagResource,
2538		HTTPMethod: "PUT",
2539		HTTPPath:   "/v20190125/tag",
2540	}
2541
2542	if input == nil {
2543		input = &TagResourceInput{}
2544	}
2545
2546	output = &TagResourceOutput{}
2547	req = c.newRequest(op, input, output)
2548	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2549	return
2550}
2551
2552// TagResource API operation for AWS App Mesh.
2553//
2554// Associates the specified tags to a resource with the specified resourceArn.
2555// If existing tags on a resource aren't specified in the request parameters,
2556// they aren't changed. When a resource is deleted, the tags associated with
2557// that resource are also deleted.
2558//
2559// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2560// with awserr.Error's Code and Message methods to get detailed information about
2561// the error.
2562//
2563// See the AWS API reference guide for AWS App Mesh's
2564// API operation TagResource for usage and error information.
2565//
2566// Returned Error Codes:
2567//   * ErrCodeBadRequestException "BadRequestException"
2568//   The request syntax was malformed. Check your request syntax and try again.
2569//
2570//   * ErrCodeForbiddenException "ForbiddenException"
2571//   You don't have permissions to perform this action.
2572//
2573//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
2574//   The request processing has failed because of an unknown error, exception,
2575//   or failure.
2576//
2577//   * ErrCodeNotFoundException "NotFoundException"
2578//   The specified resource doesn't exist. Check your request syntax and try again.
2579//
2580//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2581//   The request has failed due to a temporary failure of the service.
2582//
2583//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2584//   The maximum request rate permitted by the App Mesh APIs has been exceeded
2585//   for your account. For best results, use an increasing or variable sleep interval
2586//   between requests.
2587//
2588//   * ErrCodeTooManyTagsException "TooManyTagsException"
2589//   The request exceeds the maximum allowed number of tags allowed per resource.
2590//   The current limit is 50 user tags per resource. You must reduce the number
2591//   of tags in the request. None of the tags in this request were applied.
2592//
2593// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/TagResource
2594func (c *AppMesh) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
2595	req, out := c.TagResourceRequest(input)
2596	return out, req.Send()
2597}
2598
2599// TagResourceWithContext is the same as TagResource with the addition of
2600// the ability to pass a context and additional request options.
2601//
2602// See TagResource for details on how to use this API operation.
2603//
2604// The context must be non-nil and will be used for request cancellation. If
2605// the context is nil a panic will occur. In the future the SDK may create
2606// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2607// for more information on using Contexts.
2608func (c *AppMesh) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
2609	req, out := c.TagResourceRequest(input)
2610	req.SetContext(ctx)
2611	req.ApplyOptions(opts...)
2612	return out, req.Send()
2613}
2614
2615const opUntagResource = "UntagResource"
2616
2617// UntagResourceRequest generates a "aws/request.Request" representing the
2618// client's request for the UntagResource operation. The "output" return
2619// value will be populated with the request's response once the request completes
2620// successfully.
2621//
2622// Use "Send" method on the returned Request to send the API call to the service.
2623// the "output" return value is not valid until after Send returns without error.
2624//
2625// See UntagResource for more information on using the UntagResource
2626// API call, and error handling.
2627//
2628// This method is useful when you want to inject custom logic or configuration
2629// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2630//
2631//
2632//    // Example sending a request using the UntagResourceRequest method.
2633//    req, resp := client.UntagResourceRequest(params)
2634//
2635//    err := req.Send()
2636//    if err == nil { // resp is now filled
2637//        fmt.Println(resp)
2638//    }
2639//
2640// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UntagResource
2641func (c *AppMesh) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
2642	op := &request.Operation{
2643		Name:       opUntagResource,
2644		HTTPMethod: "PUT",
2645		HTTPPath:   "/v20190125/untag",
2646	}
2647
2648	if input == nil {
2649		input = &UntagResourceInput{}
2650	}
2651
2652	output = &UntagResourceOutput{}
2653	req = c.newRequest(op, input, output)
2654	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2655	return
2656}
2657
2658// UntagResource API operation for AWS App Mesh.
2659//
2660// Deletes specified tags from a resource.
2661//
2662// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2663// with awserr.Error's Code and Message methods to get detailed information about
2664// the error.
2665//
2666// See the AWS API reference guide for AWS App Mesh's
2667// API operation UntagResource for usage and error information.
2668//
2669// Returned Error Codes:
2670//   * ErrCodeBadRequestException "BadRequestException"
2671//   The request syntax was malformed. Check your request syntax and try again.
2672//
2673//   * ErrCodeForbiddenException "ForbiddenException"
2674//   You don't have permissions to perform this action.
2675//
2676//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
2677//   The request processing has failed because of an unknown error, exception,
2678//   or failure.
2679//
2680//   * ErrCodeNotFoundException "NotFoundException"
2681//   The specified resource doesn't exist. Check your request syntax and try again.
2682//
2683//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2684//   The request has failed due to a temporary failure of the service.
2685//
2686//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2687//   The maximum request rate permitted by the App Mesh APIs has been exceeded
2688//   for your account. For best results, use an increasing or variable sleep interval
2689//   between requests.
2690//
2691// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UntagResource
2692func (c *AppMesh) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2693	req, out := c.UntagResourceRequest(input)
2694	return out, req.Send()
2695}
2696
2697// UntagResourceWithContext is the same as UntagResource with the addition of
2698// the ability to pass a context and additional request options.
2699//
2700// See UntagResource for details on how to use this API operation.
2701//
2702// The context must be non-nil and will be used for request cancellation. If
2703// the context is nil a panic will occur. In the future the SDK may create
2704// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2705// for more information on using Contexts.
2706func (c *AppMesh) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2707	req, out := c.UntagResourceRequest(input)
2708	req.SetContext(ctx)
2709	req.ApplyOptions(opts...)
2710	return out, req.Send()
2711}
2712
2713const opUpdateMesh = "UpdateMesh"
2714
2715// UpdateMeshRequest generates a "aws/request.Request" representing the
2716// client's request for the UpdateMesh operation. The "output" return
2717// value will be populated with the request's response once the request completes
2718// successfully.
2719//
2720// Use "Send" method on the returned Request to send the API call to the service.
2721// the "output" return value is not valid until after Send returns without error.
2722//
2723// See UpdateMesh for more information on using the UpdateMesh
2724// API call, and error handling.
2725//
2726// This method is useful when you want to inject custom logic or configuration
2727// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2728//
2729//
2730//    // Example sending a request using the UpdateMeshRequest method.
2731//    req, resp := client.UpdateMeshRequest(params)
2732//
2733//    err := req.Send()
2734//    if err == nil { // resp is now filled
2735//        fmt.Println(resp)
2736//    }
2737//
2738// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateMesh
2739func (c *AppMesh) UpdateMeshRequest(input *UpdateMeshInput) (req *request.Request, output *UpdateMeshOutput) {
2740	op := &request.Operation{
2741		Name:       opUpdateMesh,
2742		HTTPMethod: "PUT",
2743		HTTPPath:   "/v20190125/meshes/{meshName}",
2744	}
2745
2746	if input == nil {
2747		input = &UpdateMeshInput{}
2748	}
2749
2750	output = &UpdateMeshOutput{}
2751	req = c.newRequest(op, input, output)
2752	return
2753}
2754
2755// UpdateMesh API operation for AWS App Mesh.
2756//
2757// Updates an existing service mesh.
2758//
2759// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2760// with awserr.Error's Code and Message methods to get detailed information about
2761// the error.
2762//
2763// See the AWS API reference guide for AWS App Mesh's
2764// API operation UpdateMesh for usage and error information.
2765//
2766// Returned Error Codes:
2767//   * ErrCodeBadRequestException "BadRequestException"
2768//   The request syntax was malformed. Check your request syntax and try again.
2769//
2770//   * ErrCodeConflictException "ConflictException"
2771//   The request contains a client token that was used for a previous update resource
2772//   call with different specifications. Try the request again with a new client
2773//   token.
2774//
2775//   * ErrCodeForbiddenException "ForbiddenException"
2776//   You don't have permissions to perform this action.
2777//
2778//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
2779//   The request processing has failed because of an unknown error, exception,
2780//   or failure.
2781//
2782//   * ErrCodeNotFoundException "NotFoundException"
2783//   The specified resource doesn't exist. Check your request syntax and try again.
2784//
2785//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2786//   The request has failed due to a temporary failure of the service.
2787//
2788//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2789//   The maximum request rate permitted by the App Mesh APIs has been exceeded
2790//   for your account. For best results, use an increasing or variable sleep interval
2791//   between requests.
2792//
2793// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateMesh
2794func (c *AppMesh) UpdateMesh(input *UpdateMeshInput) (*UpdateMeshOutput, error) {
2795	req, out := c.UpdateMeshRequest(input)
2796	return out, req.Send()
2797}
2798
2799// UpdateMeshWithContext is the same as UpdateMesh with the addition of
2800// the ability to pass a context and additional request options.
2801//
2802// See UpdateMesh for details on how to use this API operation.
2803//
2804// The context must be non-nil and will be used for request cancellation. If
2805// the context is nil a panic will occur. In the future the SDK may create
2806// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2807// for more information on using Contexts.
2808func (c *AppMesh) UpdateMeshWithContext(ctx aws.Context, input *UpdateMeshInput, opts ...request.Option) (*UpdateMeshOutput, error) {
2809	req, out := c.UpdateMeshRequest(input)
2810	req.SetContext(ctx)
2811	req.ApplyOptions(opts...)
2812	return out, req.Send()
2813}
2814
2815const opUpdateRoute = "UpdateRoute"
2816
2817// UpdateRouteRequest generates a "aws/request.Request" representing the
2818// client's request for the UpdateRoute operation. The "output" return
2819// value will be populated with the request's response once the request completes
2820// successfully.
2821//
2822// Use "Send" method on the returned Request to send the API call to the service.
2823// the "output" return value is not valid until after Send returns without error.
2824//
2825// See UpdateRoute for more information on using the UpdateRoute
2826// API call, and error handling.
2827//
2828// This method is useful when you want to inject custom logic or configuration
2829// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2830//
2831//
2832//    // Example sending a request using the UpdateRouteRequest method.
2833//    req, resp := client.UpdateRouteRequest(params)
2834//
2835//    err := req.Send()
2836//    if err == nil { // resp is now filled
2837//        fmt.Println(resp)
2838//    }
2839//
2840// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateRoute
2841func (c *AppMesh) UpdateRouteRequest(input *UpdateRouteInput) (req *request.Request, output *UpdateRouteOutput) {
2842	op := &request.Operation{
2843		Name:       opUpdateRoute,
2844		HTTPMethod: "PUT",
2845		HTTPPath:   "/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}",
2846	}
2847
2848	if input == nil {
2849		input = &UpdateRouteInput{}
2850	}
2851
2852	output = &UpdateRouteOutput{}
2853	req = c.newRequest(op, input, output)
2854	return
2855}
2856
2857// UpdateRoute API operation for AWS App Mesh.
2858//
2859// Updates an existing route for a specified service mesh and virtual router.
2860//
2861// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2862// with awserr.Error's Code and Message methods to get detailed information about
2863// the error.
2864//
2865// See the AWS API reference guide for AWS App Mesh's
2866// API operation UpdateRoute for usage and error information.
2867//
2868// Returned Error Codes:
2869//   * ErrCodeBadRequestException "BadRequestException"
2870//   The request syntax was malformed. Check your request syntax and try again.
2871//
2872//   * ErrCodeConflictException "ConflictException"
2873//   The request contains a client token that was used for a previous update resource
2874//   call with different specifications. Try the request again with a new client
2875//   token.
2876//
2877//   * ErrCodeForbiddenException "ForbiddenException"
2878//   You don't have permissions to perform this action.
2879//
2880//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
2881//   The request processing has failed because of an unknown error, exception,
2882//   or failure.
2883//
2884//   * ErrCodeLimitExceededException "LimitExceededException"
2885//   You have exceeded a service limit for your account. For more information,
2886//   see Service Limits (https://docs.aws.amazon.com/app-mesh/latest/userguide/service_limits.html)
2887//   in the AWS App Mesh User Guide.
2888//
2889//   * ErrCodeNotFoundException "NotFoundException"
2890//   The specified resource doesn't exist. Check your request syntax and try again.
2891//
2892//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2893//   The request has failed due to a temporary failure of the service.
2894//
2895//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2896//   The maximum request rate permitted by the App Mesh APIs has been exceeded
2897//   for your account. For best results, use an increasing or variable sleep interval
2898//   between requests.
2899//
2900// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateRoute
2901func (c *AppMesh) UpdateRoute(input *UpdateRouteInput) (*UpdateRouteOutput, error) {
2902	req, out := c.UpdateRouteRequest(input)
2903	return out, req.Send()
2904}
2905
2906// UpdateRouteWithContext is the same as UpdateRoute with the addition of
2907// the ability to pass a context and additional request options.
2908//
2909// See UpdateRoute for details on how to use this API operation.
2910//
2911// The context must be non-nil and will be used for request cancellation. If
2912// the context is nil a panic will occur. In the future the SDK may create
2913// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2914// for more information on using Contexts.
2915func (c *AppMesh) UpdateRouteWithContext(ctx aws.Context, input *UpdateRouteInput, opts ...request.Option) (*UpdateRouteOutput, error) {
2916	req, out := c.UpdateRouteRequest(input)
2917	req.SetContext(ctx)
2918	req.ApplyOptions(opts...)
2919	return out, req.Send()
2920}
2921
2922const opUpdateVirtualNode = "UpdateVirtualNode"
2923
2924// UpdateVirtualNodeRequest generates a "aws/request.Request" representing the
2925// client's request for the UpdateVirtualNode operation. The "output" return
2926// value will be populated with the request's response once the request completes
2927// successfully.
2928//
2929// Use "Send" method on the returned Request to send the API call to the service.
2930// the "output" return value is not valid until after Send returns without error.
2931//
2932// See UpdateVirtualNode for more information on using the UpdateVirtualNode
2933// API call, and error handling.
2934//
2935// This method is useful when you want to inject custom logic or configuration
2936// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2937//
2938//
2939//    // Example sending a request using the UpdateVirtualNodeRequest method.
2940//    req, resp := client.UpdateVirtualNodeRequest(params)
2941//
2942//    err := req.Send()
2943//    if err == nil { // resp is now filled
2944//        fmt.Println(resp)
2945//    }
2946//
2947// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateVirtualNode
2948func (c *AppMesh) UpdateVirtualNodeRequest(input *UpdateVirtualNodeInput) (req *request.Request, output *UpdateVirtualNodeOutput) {
2949	op := &request.Operation{
2950		Name:       opUpdateVirtualNode,
2951		HTTPMethod: "PUT",
2952		HTTPPath:   "/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}",
2953	}
2954
2955	if input == nil {
2956		input = &UpdateVirtualNodeInput{}
2957	}
2958
2959	output = &UpdateVirtualNodeOutput{}
2960	req = c.newRequest(op, input, output)
2961	return
2962}
2963
2964// UpdateVirtualNode API operation for AWS App Mesh.
2965//
2966// Updates an existing virtual node in a specified service mesh.
2967//
2968// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2969// with awserr.Error's Code and Message methods to get detailed information about
2970// the error.
2971//
2972// See the AWS API reference guide for AWS App Mesh's
2973// API operation UpdateVirtualNode for usage and error information.
2974//
2975// Returned Error Codes:
2976//   * ErrCodeBadRequestException "BadRequestException"
2977//   The request syntax was malformed. Check your request syntax and try again.
2978//
2979//   * ErrCodeConflictException "ConflictException"
2980//   The request contains a client token that was used for a previous update resource
2981//   call with different specifications. Try the request again with a new client
2982//   token.
2983//
2984//   * ErrCodeForbiddenException "ForbiddenException"
2985//   You don't have permissions to perform this action.
2986//
2987//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
2988//   The request processing has failed because of an unknown error, exception,
2989//   or failure.
2990//
2991//   * ErrCodeLimitExceededException "LimitExceededException"
2992//   You have exceeded a service limit for your account. For more information,
2993//   see Service Limits (https://docs.aws.amazon.com/app-mesh/latest/userguide/service_limits.html)
2994//   in the AWS App Mesh User Guide.
2995//
2996//   * ErrCodeNotFoundException "NotFoundException"
2997//   The specified resource doesn't exist. Check your request syntax and try again.
2998//
2999//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3000//   The request has failed due to a temporary failure of the service.
3001//
3002//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3003//   The maximum request rate permitted by the App Mesh APIs has been exceeded
3004//   for your account. For best results, use an increasing or variable sleep interval
3005//   between requests.
3006//
3007// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateVirtualNode
3008func (c *AppMesh) UpdateVirtualNode(input *UpdateVirtualNodeInput) (*UpdateVirtualNodeOutput, error) {
3009	req, out := c.UpdateVirtualNodeRequest(input)
3010	return out, req.Send()
3011}
3012
3013// UpdateVirtualNodeWithContext is the same as UpdateVirtualNode with the addition of
3014// the ability to pass a context and additional request options.
3015//
3016// See UpdateVirtualNode for details on how to use this API operation.
3017//
3018// The context must be non-nil and will be used for request cancellation. If
3019// the context is nil a panic will occur. In the future the SDK may create
3020// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3021// for more information on using Contexts.
3022func (c *AppMesh) UpdateVirtualNodeWithContext(ctx aws.Context, input *UpdateVirtualNodeInput, opts ...request.Option) (*UpdateVirtualNodeOutput, error) {
3023	req, out := c.UpdateVirtualNodeRequest(input)
3024	req.SetContext(ctx)
3025	req.ApplyOptions(opts...)
3026	return out, req.Send()
3027}
3028
3029const opUpdateVirtualRouter = "UpdateVirtualRouter"
3030
3031// UpdateVirtualRouterRequest generates a "aws/request.Request" representing the
3032// client's request for the UpdateVirtualRouter operation. The "output" return
3033// value will be populated with the request's response once the request completes
3034// successfully.
3035//
3036// Use "Send" method on the returned Request to send the API call to the service.
3037// the "output" return value is not valid until after Send returns without error.
3038//
3039// See UpdateVirtualRouter for more information on using the UpdateVirtualRouter
3040// API call, and error handling.
3041//
3042// This method is useful when you want to inject custom logic or configuration
3043// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3044//
3045//
3046//    // Example sending a request using the UpdateVirtualRouterRequest method.
3047//    req, resp := client.UpdateVirtualRouterRequest(params)
3048//
3049//    err := req.Send()
3050//    if err == nil { // resp is now filled
3051//        fmt.Println(resp)
3052//    }
3053//
3054// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateVirtualRouter
3055func (c *AppMesh) UpdateVirtualRouterRequest(input *UpdateVirtualRouterInput) (req *request.Request, output *UpdateVirtualRouterOutput) {
3056	op := &request.Operation{
3057		Name:       opUpdateVirtualRouter,
3058		HTTPMethod: "PUT",
3059		HTTPPath:   "/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}",
3060	}
3061
3062	if input == nil {
3063		input = &UpdateVirtualRouterInput{}
3064	}
3065
3066	output = &UpdateVirtualRouterOutput{}
3067	req = c.newRequest(op, input, output)
3068	return
3069}
3070
3071// UpdateVirtualRouter API operation for AWS App Mesh.
3072//
3073// Updates an existing virtual router in a specified service mesh.
3074//
3075// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3076// with awserr.Error's Code and Message methods to get detailed information about
3077// the error.
3078//
3079// See the AWS API reference guide for AWS App Mesh's
3080// API operation UpdateVirtualRouter for usage and error information.
3081//
3082// Returned Error Codes:
3083//   * ErrCodeBadRequestException "BadRequestException"
3084//   The request syntax was malformed. Check your request syntax and try again.
3085//
3086//   * ErrCodeConflictException "ConflictException"
3087//   The request contains a client token that was used for a previous update resource
3088//   call with different specifications. Try the request again with a new client
3089//   token.
3090//
3091//   * ErrCodeForbiddenException "ForbiddenException"
3092//   You don't have permissions to perform this action.
3093//
3094//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
3095//   The request processing has failed because of an unknown error, exception,
3096//   or failure.
3097//
3098//   * ErrCodeLimitExceededException "LimitExceededException"
3099//   You have exceeded a service limit for your account. For more information,
3100//   see Service Limits (https://docs.aws.amazon.com/app-mesh/latest/userguide/service_limits.html)
3101//   in the AWS App Mesh User Guide.
3102//
3103//   * ErrCodeNotFoundException "NotFoundException"
3104//   The specified resource doesn't exist. Check your request syntax and try again.
3105//
3106//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3107//   The request has failed due to a temporary failure of the service.
3108//
3109//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3110//   The maximum request rate permitted by the App Mesh APIs has been exceeded
3111//   for your account. For best results, use an increasing or variable sleep interval
3112//   between requests.
3113//
3114// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateVirtualRouter
3115func (c *AppMesh) UpdateVirtualRouter(input *UpdateVirtualRouterInput) (*UpdateVirtualRouterOutput, error) {
3116	req, out := c.UpdateVirtualRouterRequest(input)
3117	return out, req.Send()
3118}
3119
3120// UpdateVirtualRouterWithContext is the same as UpdateVirtualRouter with the addition of
3121// the ability to pass a context and additional request options.
3122//
3123// See UpdateVirtualRouter for details on how to use this API operation.
3124//
3125// The context must be non-nil and will be used for request cancellation. If
3126// the context is nil a panic will occur. In the future the SDK may create
3127// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3128// for more information on using Contexts.
3129func (c *AppMesh) UpdateVirtualRouterWithContext(ctx aws.Context, input *UpdateVirtualRouterInput, opts ...request.Option) (*UpdateVirtualRouterOutput, error) {
3130	req, out := c.UpdateVirtualRouterRequest(input)
3131	req.SetContext(ctx)
3132	req.ApplyOptions(opts...)
3133	return out, req.Send()
3134}
3135
3136const opUpdateVirtualService = "UpdateVirtualService"
3137
3138// UpdateVirtualServiceRequest generates a "aws/request.Request" representing the
3139// client's request for the UpdateVirtualService operation. The "output" return
3140// value will be populated with the request's response once the request completes
3141// successfully.
3142//
3143// Use "Send" method on the returned Request to send the API call to the service.
3144// the "output" return value is not valid until after Send returns without error.
3145//
3146// See UpdateVirtualService for more information on using the UpdateVirtualService
3147// API call, and error handling.
3148//
3149// This method is useful when you want to inject custom logic or configuration
3150// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3151//
3152//
3153//    // Example sending a request using the UpdateVirtualServiceRequest method.
3154//    req, resp := client.UpdateVirtualServiceRequest(params)
3155//
3156//    err := req.Send()
3157//    if err == nil { // resp is now filled
3158//        fmt.Println(resp)
3159//    }
3160//
3161// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateVirtualService
3162func (c *AppMesh) UpdateVirtualServiceRequest(input *UpdateVirtualServiceInput) (req *request.Request, output *UpdateVirtualServiceOutput) {
3163	op := &request.Operation{
3164		Name:       opUpdateVirtualService,
3165		HTTPMethod: "PUT",
3166		HTTPPath:   "/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}",
3167	}
3168
3169	if input == nil {
3170		input = &UpdateVirtualServiceInput{}
3171	}
3172
3173	output = &UpdateVirtualServiceOutput{}
3174	req = c.newRequest(op, input, output)
3175	return
3176}
3177
3178// UpdateVirtualService API operation for AWS App Mesh.
3179//
3180// Updates an existing virtual service in a specified service mesh.
3181//
3182// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3183// with awserr.Error's Code and Message methods to get detailed information about
3184// the error.
3185//
3186// See the AWS API reference guide for AWS App Mesh's
3187// API operation UpdateVirtualService for usage and error information.
3188//
3189// Returned Error Codes:
3190//   * ErrCodeBadRequestException "BadRequestException"
3191//   The request syntax was malformed. Check your request syntax and try again.
3192//
3193//   * ErrCodeConflictException "ConflictException"
3194//   The request contains a client token that was used for a previous update resource
3195//   call with different specifications. Try the request again with a new client
3196//   token.
3197//
3198//   * ErrCodeForbiddenException "ForbiddenException"
3199//   You don't have permissions to perform this action.
3200//
3201//   * ErrCodeInternalServerErrorException "InternalServerErrorException"
3202//   The request processing has failed because of an unknown error, exception,
3203//   or failure.
3204//
3205//   * ErrCodeLimitExceededException "LimitExceededException"
3206//   You have exceeded a service limit for your account. For more information,
3207//   see Service Limits (https://docs.aws.amazon.com/app-mesh/latest/userguide/service_limits.html)
3208//   in the AWS App Mesh User Guide.
3209//
3210//   * ErrCodeNotFoundException "NotFoundException"
3211//   The specified resource doesn't exist. Check your request syntax and try again.
3212//
3213//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3214//   The request has failed due to a temporary failure of the service.
3215//
3216//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3217//   The maximum request rate permitted by the App Mesh APIs has been exceeded
3218//   for your account. For best results, use an increasing or variable sleep interval
3219//   between requests.
3220//
3221// See also, https://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateVirtualService
3222func (c *AppMesh) UpdateVirtualService(input *UpdateVirtualServiceInput) (*UpdateVirtualServiceOutput, error) {
3223	req, out := c.UpdateVirtualServiceRequest(input)
3224	return out, req.Send()
3225}
3226
3227// UpdateVirtualServiceWithContext is the same as UpdateVirtualService with the addition of
3228// the ability to pass a context and additional request options.
3229//
3230// See UpdateVirtualService for details on how to use this API operation.
3231//
3232// The context must be non-nil and will be used for request cancellation. If
3233// the context is nil a panic will occur. In the future the SDK may create
3234// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3235// for more information on using Contexts.
3236func (c *AppMesh) UpdateVirtualServiceWithContext(ctx aws.Context, input *UpdateVirtualServiceInput, opts ...request.Option) (*UpdateVirtualServiceOutput, error) {
3237	req, out := c.UpdateVirtualServiceRequest(input)
3238	req.SetContext(ctx)
3239	req.ApplyOptions(opts...)
3240	return out, req.Send()
3241}
3242
3243// An object representing the access logging information for a virtual node.
3244type AccessLog struct {
3245	_ struct{} `type:"structure"`
3246
3247	// An object representing an access log file.
3248	File *FileAccessLog `locationName:"file" type:"structure"`
3249}
3250
3251// String returns the string representation
3252func (s AccessLog) String() string {
3253	return awsutil.Prettify(s)
3254}
3255
3256// GoString returns the string representation
3257func (s AccessLog) GoString() string {
3258	return s.String()
3259}
3260
3261// Validate inspects the fields of the type to determine if they are valid.
3262func (s *AccessLog) Validate() error {
3263	invalidParams := request.ErrInvalidParams{Context: "AccessLog"}
3264	if s.File != nil {
3265		if err := s.File.Validate(); err != nil {
3266			invalidParams.AddNested("File", err.(request.ErrInvalidParams))
3267		}
3268	}
3269
3270	if invalidParams.Len() > 0 {
3271		return invalidParams
3272	}
3273	return nil
3274}
3275
3276// SetFile sets the File field's value.
3277func (s *AccessLog) SetFile(v *FileAccessLog) *AccessLog {
3278	s.File = v
3279	return s
3280}
3281
3282// An object representing the AWS Cloud Map attribute information for your virtual
3283// node.
3284type AwsCloudMapInstanceAttribute struct {
3285	_ struct{} `type:"structure"`
3286
3287	// Key is a required field
3288	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
3289
3290	// Value is a required field
3291	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
3292}
3293
3294// String returns the string representation
3295func (s AwsCloudMapInstanceAttribute) String() string {
3296	return awsutil.Prettify(s)
3297}
3298
3299// GoString returns the string representation
3300func (s AwsCloudMapInstanceAttribute) GoString() string {
3301	return s.String()
3302}
3303
3304// Validate inspects the fields of the type to determine if they are valid.
3305func (s *AwsCloudMapInstanceAttribute) Validate() error {
3306	invalidParams := request.ErrInvalidParams{Context: "AwsCloudMapInstanceAttribute"}
3307	if s.Key == nil {
3308		invalidParams.Add(request.NewErrParamRequired("Key"))
3309	}
3310	if s.Key != nil && len(*s.Key) < 1 {
3311		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
3312	}
3313	if s.Value == nil {
3314		invalidParams.Add(request.NewErrParamRequired("Value"))
3315	}
3316	if s.Value != nil && len(*s.Value) < 1 {
3317		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
3318	}
3319
3320	if invalidParams.Len() > 0 {
3321		return invalidParams
3322	}
3323	return nil
3324}
3325
3326// SetKey sets the Key field's value.
3327func (s *AwsCloudMapInstanceAttribute) SetKey(v string) *AwsCloudMapInstanceAttribute {
3328	s.Key = &v
3329	return s
3330}
3331
3332// SetValue sets the Value field's value.
3333func (s *AwsCloudMapInstanceAttribute) SetValue(v string) *AwsCloudMapInstanceAttribute {
3334	s.Value = &v
3335	return s
3336}
3337
3338// An object representing the AWS Cloud Map service discovery information for
3339// your virtual node.
3340type AwsCloudMapServiceDiscovery struct {
3341	_ struct{} `type:"structure"`
3342
3343	Attributes []*AwsCloudMapInstanceAttribute `locationName:"attributes" type:"list"`
3344
3345	// NamespaceName is a required field
3346	NamespaceName *string `locationName:"namespaceName" min:"1" type:"string" required:"true"`
3347
3348	// ServiceName is a required field
3349	ServiceName *string `locationName:"serviceName" min:"1" type:"string" required:"true"`
3350}
3351
3352// String returns the string representation
3353func (s AwsCloudMapServiceDiscovery) String() string {
3354	return awsutil.Prettify(s)
3355}
3356
3357// GoString returns the string representation
3358func (s AwsCloudMapServiceDiscovery) GoString() string {
3359	return s.String()
3360}
3361
3362// Validate inspects the fields of the type to determine if they are valid.
3363func (s *AwsCloudMapServiceDiscovery) Validate() error {
3364	invalidParams := request.ErrInvalidParams{Context: "AwsCloudMapServiceDiscovery"}
3365	if s.NamespaceName == nil {
3366		invalidParams.Add(request.NewErrParamRequired("NamespaceName"))
3367	}
3368	if s.NamespaceName != nil && len(*s.NamespaceName) < 1 {
3369		invalidParams.Add(request.NewErrParamMinLen("NamespaceName", 1))
3370	}
3371	if s.ServiceName == nil {
3372		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
3373	}
3374	if s.ServiceName != nil && len(*s.ServiceName) < 1 {
3375		invalidParams.Add(request.NewErrParamMinLen("ServiceName", 1))
3376	}
3377	if s.Attributes != nil {
3378		for i, v := range s.Attributes {
3379			if v == nil {
3380				continue
3381			}
3382			if err := v.Validate(); err != nil {
3383				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
3384			}
3385		}
3386	}
3387
3388	if invalidParams.Len() > 0 {
3389		return invalidParams
3390	}
3391	return nil
3392}
3393
3394// SetAttributes sets the Attributes field's value.
3395func (s *AwsCloudMapServiceDiscovery) SetAttributes(v []*AwsCloudMapInstanceAttribute) *AwsCloudMapServiceDiscovery {
3396	s.Attributes = v
3397	return s
3398}
3399
3400// SetNamespaceName sets the NamespaceName field's value.
3401func (s *AwsCloudMapServiceDiscovery) SetNamespaceName(v string) *AwsCloudMapServiceDiscovery {
3402	s.NamespaceName = &v
3403	return s
3404}
3405
3406// SetServiceName sets the ServiceName field's value.
3407func (s *AwsCloudMapServiceDiscovery) SetServiceName(v string) *AwsCloudMapServiceDiscovery {
3408	s.ServiceName = &v
3409	return s
3410}
3411
3412// An object representing the backends that a virtual node is expected to send
3413// outbound traffic to.
3414type Backend struct {
3415	_ struct{} `type:"structure"`
3416
3417	// An object representing a virtual service backend for a virtual node.
3418	VirtualService *VirtualServiceBackend `locationName:"virtualService" type:"structure"`
3419}
3420
3421// String returns the string representation
3422func (s Backend) String() string {
3423	return awsutil.Prettify(s)
3424}
3425
3426// GoString returns the string representation
3427func (s Backend) GoString() string {
3428	return s.String()
3429}
3430
3431// Validate inspects the fields of the type to determine if they are valid.
3432func (s *Backend) Validate() error {
3433	invalidParams := request.ErrInvalidParams{Context: "Backend"}
3434	if s.VirtualService != nil {
3435		if err := s.VirtualService.Validate(); err != nil {
3436			invalidParams.AddNested("VirtualService", err.(request.ErrInvalidParams))
3437		}
3438	}
3439
3440	if invalidParams.Len() > 0 {
3441		return invalidParams
3442	}
3443	return nil
3444}
3445
3446// SetVirtualService sets the VirtualService field's value.
3447func (s *Backend) SetVirtualService(v *VirtualServiceBackend) *Backend {
3448	s.VirtualService = v
3449	return s
3450}
3451
3452type CreateMeshInput struct {
3453	_ struct{} `type:"structure"`
3454
3455	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
3456
3457	// MeshName is a required field
3458	MeshName *string `locationName:"meshName" min:"1" type:"string" required:"true"`
3459
3460	// An object representing the specification of a service mesh.
3461	Spec *MeshSpec `locationName:"spec" type:"structure"`
3462
3463	Tags []*TagRef `locationName:"tags" type:"list"`
3464}
3465
3466// String returns the string representation
3467func (s CreateMeshInput) String() string {
3468	return awsutil.Prettify(s)
3469}
3470
3471// GoString returns the string representation
3472func (s CreateMeshInput) GoString() string {
3473	return s.String()
3474}
3475
3476// Validate inspects the fields of the type to determine if they are valid.
3477func (s *CreateMeshInput) Validate() error {
3478	invalidParams := request.ErrInvalidParams{Context: "CreateMeshInput"}
3479	if s.MeshName == nil {
3480		invalidParams.Add(request.NewErrParamRequired("MeshName"))
3481	}
3482	if s.MeshName != nil && len(*s.MeshName) < 1 {
3483		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
3484	}
3485	if s.Spec != nil {
3486		if err := s.Spec.Validate(); err != nil {
3487			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
3488		}
3489	}
3490	if s.Tags != nil {
3491		for i, v := range s.Tags {
3492			if v == nil {
3493				continue
3494			}
3495			if err := v.Validate(); err != nil {
3496				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3497			}
3498		}
3499	}
3500
3501	if invalidParams.Len() > 0 {
3502		return invalidParams
3503	}
3504	return nil
3505}
3506
3507// SetClientToken sets the ClientToken field's value.
3508func (s *CreateMeshInput) SetClientToken(v string) *CreateMeshInput {
3509	s.ClientToken = &v
3510	return s
3511}
3512
3513// SetMeshName sets the MeshName field's value.
3514func (s *CreateMeshInput) SetMeshName(v string) *CreateMeshInput {
3515	s.MeshName = &v
3516	return s
3517}
3518
3519// SetSpec sets the Spec field's value.
3520func (s *CreateMeshInput) SetSpec(v *MeshSpec) *CreateMeshInput {
3521	s.Spec = v
3522	return s
3523}
3524
3525// SetTags sets the Tags field's value.
3526func (s *CreateMeshInput) SetTags(v []*TagRef) *CreateMeshInput {
3527	s.Tags = v
3528	return s
3529}
3530
3531type CreateMeshOutput struct {
3532	_ struct{} `type:"structure" payload:"Mesh"`
3533
3534	// An object representing a service mesh returned by a describe operation.
3535	//
3536	// Mesh is a required field
3537	Mesh *MeshData `locationName:"mesh" type:"structure" required:"true"`
3538}
3539
3540// String returns the string representation
3541func (s CreateMeshOutput) String() string {
3542	return awsutil.Prettify(s)
3543}
3544
3545// GoString returns the string representation
3546func (s CreateMeshOutput) GoString() string {
3547	return s.String()
3548}
3549
3550// SetMesh sets the Mesh field's value.
3551func (s *CreateMeshOutput) SetMesh(v *MeshData) *CreateMeshOutput {
3552	s.Mesh = v
3553	return s
3554}
3555
3556type CreateRouteInput struct {
3557	_ struct{} `type:"structure"`
3558
3559	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
3560
3561	// MeshName is a required field
3562	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
3563
3564	// RouteName is a required field
3565	RouteName *string `locationName:"routeName" min:"1" type:"string" required:"true"`
3566
3567	// An object representing the specification of a route.
3568	//
3569	// Spec is a required field
3570	Spec *RouteSpec `locationName:"spec" type:"structure" required:"true"`
3571
3572	Tags []*TagRef `locationName:"tags" type:"list"`
3573
3574	// VirtualRouterName is a required field
3575	VirtualRouterName *string `location:"uri" locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
3576}
3577
3578// String returns the string representation
3579func (s CreateRouteInput) String() string {
3580	return awsutil.Prettify(s)
3581}
3582
3583// GoString returns the string representation
3584func (s CreateRouteInput) GoString() string {
3585	return s.String()
3586}
3587
3588// Validate inspects the fields of the type to determine if they are valid.
3589func (s *CreateRouteInput) Validate() error {
3590	invalidParams := request.ErrInvalidParams{Context: "CreateRouteInput"}
3591	if s.MeshName == nil {
3592		invalidParams.Add(request.NewErrParamRequired("MeshName"))
3593	}
3594	if s.MeshName != nil && len(*s.MeshName) < 1 {
3595		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
3596	}
3597	if s.RouteName == nil {
3598		invalidParams.Add(request.NewErrParamRequired("RouteName"))
3599	}
3600	if s.RouteName != nil && len(*s.RouteName) < 1 {
3601		invalidParams.Add(request.NewErrParamMinLen("RouteName", 1))
3602	}
3603	if s.Spec == nil {
3604		invalidParams.Add(request.NewErrParamRequired("Spec"))
3605	}
3606	if s.VirtualRouterName == nil {
3607		invalidParams.Add(request.NewErrParamRequired("VirtualRouterName"))
3608	}
3609	if s.VirtualRouterName != nil && len(*s.VirtualRouterName) < 1 {
3610		invalidParams.Add(request.NewErrParamMinLen("VirtualRouterName", 1))
3611	}
3612	if s.Spec != nil {
3613		if err := s.Spec.Validate(); err != nil {
3614			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
3615		}
3616	}
3617	if s.Tags != nil {
3618		for i, v := range s.Tags {
3619			if v == nil {
3620				continue
3621			}
3622			if err := v.Validate(); err != nil {
3623				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3624			}
3625		}
3626	}
3627
3628	if invalidParams.Len() > 0 {
3629		return invalidParams
3630	}
3631	return nil
3632}
3633
3634// SetClientToken sets the ClientToken field's value.
3635func (s *CreateRouteInput) SetClientToken(v string) *CreateRouteInput {
3636	s.ClientToken = &v
3637	return s
3638}
3639
3640// SetMeshName sets the MeshName field's value.
3641func (s *CreateRouteInput) SetMeshName(v string) *CreateRouteInput {
3642	s.MeshName = &v
3643	return s
3644}
3645
3646// SetRouteName sets the RouteName field's value.
3647func (s *CreateRouteInput) SetRouteName(v string) *CreateRouteInput {
3648	s.RouteName = &v
3649	return s
3650}
3651
3652// SetSpec sets the Spec field's value.
3653func (s *CreateRouteInput) SetSpec(v *RouteSpec) *CreateRouteInput {
3654	s.Spec = v
3655	return s
3656}
3657
3658// SetTags sets the Tags field's value.
3659func (s *CreateRouteInput) SetTags(v []*TagRef) *CreateRouteInput {
3660	s.Tags = v
3661	return s
3662}
3663
3664// SetVirtualRouterName sets the VirtualRouterName field's value.
3665func (s *CreateRouteInput) SetVirtualRouterName(v string) *CreateRouteInput {
3666	s.VirtualRouterName = &v
3667	return s
3668}
3669
3670type CreateRouteOutput struct {
3671	_ struct{} `type:"structure" payload:"Route"`
3672
3673	// An object representing a route returned by a describe operation.
3674	//
3675	// Route is a required field
3676	Route *RouteData `locationName:"route" type:"structure" required:"true"`
3677}
3678
3679// String returns the string representation
3680func (s CreateRouteOutput) String() string {
3681	return awsutil.Prettify(s)
3682}
3683
3684// GoString returns the string representation
3685func (s CreateRouteOutput) GoString() string {
3686	return s.String()
3687}
3688
3689// SetRoute sets the Route field's value.
3690func (s *CreateRouteOutput) SetRoute(v *RouteData) *CreateRouteOutput {
3691	s.Route = v
3692	return s
3693}
3694
3695type CreateVirtualNodeInput struct {
3696	_ struct{} `type:"structure"`
3697
3698	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
3699
3700	// MeshName is a required field
3701	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
3702
3703	// An object representing the specification of a virtual node.
3704	//
3705	// Spec is a required field
3706	Spec *VirtualNodeSpec `locationName:"spec" type:"structure" required:"true"`
3707
3708	Tags []*TagRef `locationName:"tags" type:"list"`
3709
3710	// VirtualNodeName is a required field
3711	VirtualNodeName *string `locationName:"virtualNodeName" min:"1" type:"string" required:"true"`
3712}
3713
3714// String returns the string representation
3715func (s CreateVirtualNodeInput) String() string {
3716	return awsutil.Prettify(s)
3717}
3718
3719// GoString returns the string representation
3720func (s CreateVirtualNodeInput) GoString() string {
3721	return s.String()
3722}
3723
3724// Validate inspects the fields of the type to determine if they are valid.
3725func (s *CreateVirtualNodeInput) Validate() error {
3726	invalidParams := request.ErrInvalidParams{Context: "CreateVirtualNodeInput"}
3727	if s.MeshName == nil {
3728		invalidParams.Add(request.NewErrParamRequired("MeshName"))
3729	}
3730	if s.MeshName != nil && len(*s.MeshName) < 1 {
3731		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
3732	}
3733	if s.Spec == nil {
3734		invalidParams.Add(request.NewErrParamRequired("Spec"))
3735	}
3736	if s.VirtualNodeName == nil {
3737		invalidParams.Add(request.NewErrParamRequired("VirtualNodeName"))
3738	}
3739	if s.VirtualNodeName != nil && len(*s.VirtualNodeName) < 1 {
3740		invalidParams.Add(request.NewErrParamMinLen("VirtualNodeName", 1))
3741	}
3742	if s.Spec != nil {
3743		if err := s.Spec.Validate(); err != nil {
3744			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
3745		}
3746	}
3747	if s.Tags != nil {
3748		for i, v := range s.Tags {
3749			if v == nil {
3750				continue
3751			}
3752			if err := v.Validate(); err != nil {
3753				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3754			}
3755		}
3756	}
3757
3758	if invalidParams.Len() > 0 {
3759		return invalidParams
3760	}
3761	return nil
3762}
3763
3764// SetClientToken sets the ClientToken field's value.
3765func (s *CreateVirtualNodeInput) SetClientToken(v string) *CreateVirtualNodeInput {
3766	s.ClientToken = &v
3767	return s
3768}
3769
3770// SetMeshName sets the MeshName field's value.
3771func (s *CreateVirtualNodeInput) SetMeshName(v string) *CreateVirtualNodeInput {
3772	s.MeshName = &v
3773	return s
3774}
3775
3776// SetSpec sets the Spec field's value.
3777func (s *CreateVirtualNodeInput) SetSpec(v *VirtualNodeSpec) *CreateVirtualNodeInput {
3778	s.Spec = v
3779	return s
3780}
3781
3782// SetTags sets the Tags field's value.
3783func (s *CreateVirtualNodeInput) SetTags(v []*TagRef) *CreateVirtualNodeInput {
3784	s.Tags = v
3785	return s
3786}
3787
3788// SetVirtualNodeName sets the VirtualNodeName field's value.
3789func (s *CreateVirtualNodeInput) SetVirtualNodeName(v string) *CreateVirtualNodeInput {
3790	s.VirtualNodeName = &v
3791	return s
3792}
3793
3794type CreateVirtualNodeOutput struct {
3795	_ struct{} `type:"structure" payload:"VirtualNode"`
3796
3797	// An object representing a virtual node returned by a describe operation.
3798	//
3799	// VirtualNode is a required field
3800	VirtualNode *VirtualNodeData `locationName:"virtualNode" type:"structure" required:"true"`
3801}
3802
3803// String returns the string representation
3804func (s CreateVirtualNodeOutput) String() string {
3805	return awsutil.Prettify(s)
3806}
3807
3808// GoString returns the string representation
3809func (s CreateVirtualNodeOutput) GoString() string {
3810	return s.String()
3811}
3812
3813// SetVirtualNode sets the VirtualNode field's value.
3814func (s *CreateVirtualNodeOutput) SetVirtualNode(v *VirtualNodeData) *CreateVirtualNodeOutput {
3815	s.VirtualNode = v
3816	return s
3817}
3818
3819type CreateVirtualRouterInput struct {
3820	_ struct{} `type:"structure"`
3821
3822	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
3823
3824	// MeshName is a required field
3825	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
3826
3827	// An object representing the specification of a virtual router.
3828	//
3829	// Spec is a required field
3830	Spec *VirtualRouterSpec `locationName:"spec" type:"structure" required:"true"`
3831
3832	Tags []*TagRef `locationName:"tags" type:"list"`
3833
3834	// VirtualRouterName is a required field
3835	VirtualRouterName *string `locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
3836}
3837
3838// String returns the string representation
3839func (s CreateVirtualRouterInput) String() string {
3840	return awsutil.Prettify(s)
3841}
3842
3843// GoString returns the string representation
3844func (s CreateVirtualRouterInput) GoString() string {
3845	return s.String()
3846}
3847
3848// Validate inspects the fields of the type to determine if they are valid.
3849func (s *CreateVirtualRouterInput) Validate() error {
3850	invalidParams := request.ErrInvalidParams{Context: "CreateVirtualRouterInput"}
3851	if s.MeshName == nil {
3852		invalidParams.Add(request.NewErrParamRequired("MeshName"))
3853	}
3854	if s.MeshName != nil && len(*s.MeshName) < 1 {
3855		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
3856	}
3857	if s.Spec == nil {
3858		invalidParams.Add(request.NewErrParamRequired("Spec"))
3859	}
3860	if s.VirtualRouterName == nil {
3861		invalidParams.Add(request.NewErrParamRequired("VirtualRouterName"))
3862	}
3863	if s.VirtualRouterName != nil && len(*s.VirtualRouterName) < 1 {
3864		invalidParams.Add(request.NewErrParamMinLen("VirtualRouterName", 1))
3865	}
3866	if s.Spec != nil {
3867		if err := s.Spec.Validate(); err != nil {
3868			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
3869		}
3870	}
3871	if s.Tags != nil {
3872		for i, v := range s.Tags {
3873			if v == nil {
3874				continue
3875			}
3876			if err := v.Validate(); err != nil {
3877				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3878			}
3879		}
3880	}
3881
3882	if invalidParams.Len() > 0 {
3883		return invalidParams
3884	}
3885	return nil
3886}
3887
3888// SetClientToken sets the ClientToken field's value.
3889func (s *CreateVirtualRouterInput) SetClientToken(v string) *CreateVirtualRouterInput {
3890	s.ClientToken = &v
3891	return s
3892}
3893
3894// SetMeshName sets the MeshName field's value.
3895func (s *CreateVirtualRouterInput) SetMeshName(v string) *CreateVirtualRouterInput {
3896	s.MeshName = &v
3897	return s
3898}
3899
3900// SetSpec sets the Spec field's value.
3901func (s *CreateVirtualRouterInput) SetSpec(v *VirtualRouterSpec) *CreateVirtualRouterInput {
3902	s.Spec = v
3903	return s
3904}
3905
3906// SetTags sets the Tags field's value.
3907func (s *CreateVirtualRouterInput) SetTags(v []*TagRef) *CreateVirtualRouterInput {
3908	s.Tags = v
3909	return s
3910}
3911
3912// SetVirtualRouterName sets the VirtualRouterName field's value.
3913func (s *CreateVirtualRouterInput) SetVirtualRouterName(v string) *CreateVirtualRouterInput {
3914	s.VirtualRouterName = &v
3915	return s
3916}
3917
3918type CreateVirtualRouterOutput struct {
3919	_ struct{} `type:"structure" payload:"VirtualRouter"`
3920
3921	// An object representing a virtual router returned by a describe operation.
3922	//
3923	// VirtualRouter is a required field
3924	VirtualRouter *VirtualRouterData `locationName:"virtualRouter" type:"structure" required:"true"`
3925}
3926
3927// String returns the string representation
3928func (s CreateVirtualRouterOutput) String() string {
3929	return awsutil.Prettify(s)
3930}
3931
3932// GoString returns the string representation
3933func (s CreateVirtualRouterOutput) GoString() string {
3934	return s.String()
3935}
3936
3937// SetVirtualRouter sets the VirtualRouter field's value.
3938func (s *CreateVirtualRouterOutput) SetVirtualRouter(v *VirtualRouterData) *CreateVirtualRouterOutput {
3939	s.VirtualRouter = v
3940	return s
3941}
3942
3943type CreateVirtualServiceInput struct {
3944	_ struct{} `type:"structure"`
3945
3946	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
3947
3948	// MeshName is a required field
3949	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
3950
3951	// An object representing the specification of a virtual service.
3952	//
3953	// Spec is a required field
3954	Spec *VirtualServiceSpec `locationName:"spec" type:"structure" required:"true"`
3955
3956	Tags []*TagRef `locationName:"tags" type:"list"`
3957
3958	// VirtualServiceName is a required field
3959	VirtualServiceName *string `locationName:"virtualServiceName" type:"string" required:"true"`
3960}
3961
3962// String returns the string representation
3963func (s CreateVirtualServiceInput) String() string {
3964	return awsutil.Prettify(s)
3965}
3966
3967// GoString returns the string representation
3968func (s CreateVirtualServiceInput) GoString() string {
3969	return s.String()
3970}
3971
3972// Validate inspects the fields of the type to determine if they are valid.
3973func (s *CreateVirtualServiceInput) Validate() error {
3974	invalidParams := request.ErrInvalidParams{Context: "CreateVirtualServiceInput"}
3975	if s.MeshName == nil {
3976		invalidParams.Add(request.NewErrParamRequired("MeshName"))
3977	}
3978	if s.MeshName != nil && len(*s.MeshName) < 1 {
3979		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
3980	}
3981	if s.Spec == nil {
3982		invalidParams.Add(request.NewErrParamRequired("Spec"))
3983	}
3984	if s.VirtualServiceName == nil {
3985		invalidParams.Add(request.NewErrParamRequired("VirtualServiceName"))
3986	}
3987	if s.Spec != nil {
3988		if err := s.Spec.Validate(); err != nil {
3989			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
3990		}
3991	}
3992	if s.Tags != nil {
3993		for i, v := range s.Tags {
3994			if v == nil {
3995				continue
3996			}
3997			if err := v.Validate(); err != nil {
3998				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3999			}
4000		}
4001	}
4002
4003	if invalidParams.Len() > 0 {
4004		return invalidParams
4005	}
4006	return nil
4007}
4008
4009// SetClientToken sets the ClientToken field's value.
4010func (s *CreateVirtualServiceInput) SetClientToken(v string) *CreateVirtualServiceInput {
4011	s.ClientToken = &v
4012	return s
4013}
4014
4015// SetMeshName sets the MeshName field's value.
4016func (s *CreateVirtualServiceInput) SetMeshName(v string) *CreateVirtualServiceInput {
4017	s.MeshName = &v
4018	return s
4019}
4020
4021// SetSpec sets the Spec field's value.
4022func (s *CreateVirtualServiceInput) SetSpec(v *VirtualServiceSpec) *CreateVirtualServiceInput {
4023	s.Spec = v
4024	return s
4025}
4026
4027// SetTags sets the Tags field's value.
4028func (s *CreateVirtualServiceInput) SetTags(v []*TagRef) *CreateVirtualServiceInput {
4029	s.Tags = v
4030	return s
4031}
4032
4033// SetVirtualServiceName sets the VirtualServiceName field's value.
4034func (s *CreateVirtualServiceInput) SetVirtualServiceName(v string) *CreateVirtualServiceInput {
4035	s.VirtualServiceName = &v
4036	return s
4037}
4038
4039type CreateVirtualServiceOutput struct {
4040	_ struct{} `type:"structure" payload:"VirtualService"`
4041
4042	// An object representing a virtual service returned by a describe operation.
4043	//
4044	// VirtualService is a required field
4045	VirtualService *VirtualServiceData `locationName:"virtualService" type:"structure" required:"true"`
4046}
4047
4048// String returns the string representation
4049func (s CreateVirtualServiceOutput) String() string {
4050	return awsutil.Prettify(s)
4051}
4052
4053// GoString returns the string representation
4054func (s CreateVirtualServiceOutput) GoString() string {
4055	return s.String()
4056}
4057
4058// SetVirtualService sets the VirtualService field's value.
4059func (s *CreateVirtualServiceOutput) SetVirtualService(v *VirtualServiceData) *CreateVirtualServiceOutput {
4060	s.VirtualService = v
4061	return s
4062}
4063
4064type DeleteMeshInput struct {
4065	_ struct{} `type:"structure"`
4066
4067	// MeshName is a required field
4068	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
4069}
4070
4071// String returns the string representation
4072func (s DeleteMeshInput) String() string {
4073	return awsutil.Prettify(s)
4074}
4075
4076// GoString returns the string representation
4077func (s DeleteMeshInput) GoString() string {
4078	return s.String()
4079}
4080
4081// Validate inspects the fields of the type to determine if they are valid.
4082func (s *DeleteMeshInput) Validate() error {
4083	invalidParams := request.ErrInvalidParams{Context: "DeleteMeshInput"}
4084	if s.MeshName == nil {
4085		invalidParams.Add(request.NewErrParamRequired("MeshName"))
4086	}
4087	if s.MeshName != nil && len(*s.MeshName) < 1 {
4088		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
4089	}
4090
4091	if invalidParams.Len() > 0 {
4092		return invalidParams
4093	}
4094	return nil
4095}
4096
4097// SetMeshName sets the MeshName field's value.
4098func (s *DeleteMeshInput) SetMeshName(v string) *DeleteMeshInput {
4099	s.MeshName = &v
4100	return s
4101}
4102
4103type DeleteMeshOutput struct {
4104	_ struct{} `type:"structure" payload:"Mesh"`
4105
4106	// An object representing a service mesh returned by a describe operation.
4107	//
4108	// Mesh is a required field
4109	Mesh *MeshData `locationName:"mesh" type:"structure" required:"true"`
4110}
4111
4112// String returns the string representation
4113func (s DeleteMeshOutput) String() string {
4114	return awsutil.Prettify(s)
4115}
4116
4117// GoString returns the string representation
4118func (s DeleteMeshOutput) GoString() string {
4119	return s.String()
4120}
4121
4122// SetMesh sets the Mesh field's value.
4123func (s *DeleteMeshOutput) SetMesh(v *MeshData) *DeleteMeshOutput {
4124	s.Mesh = v
4125	return s
4126}
4127
4128type DeleteRouteInput struct {
4129	_ struct{} `type:"structure"`
4130
4131	// MeshName is a required field
4132	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
4133
4134	// RouteName is a required field
4135	RouteName *string `location:"uri" locationName:"routeName" min:"1" type:"string" required:"true"`
4136
4137	// VirtualRouterName is a required field
4138	VirtualRouterName *string `location:"uri" locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
4139}
4140
4141// String returns the string representation
4142func (s DeleteRouteInput) String() string {
4143	return awsutil.Prettify(s)
4144}
4145
4146// GoString returns the string representation
4147func (s DeleteRouteInput) GoString() string {
4148	return s.String()
4149}
4150
4151// Validate inspects the fields of the type to determine if they are valid.
4152func (s *DeleteRouteInput) Validate() error {
4153	invalidParams := request.ErrInvalidParams{Context: "DeleteRouteInput"}
4154	if s.MeshName == nil {
4155		invalidParams.Add(request.NewErrParamRequired("MeshName"))
4156	}
4157	if s.MeshName != nil && len(*s.MeshName) < 1 {
4158		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
4159	}
4160	if s.RouteName == nil {
4161		invalidParams.Add(request.NewErrParamRequired("RouteName"))
4162	}
4163	if s.RouteName != nil && len(*s.RouteName) < 1 {
4164		invalidParams.Add(request.NewErrParamMinLen("RouteName", 1))
4165	}
4166	if s.VirtualRouterName == nil {
4167		invalidParams.Add(request.NewErrParamRequired("VirtualRouterName"))
4168	}
4169	if s.VirtualRouterName != nil && len(*s.VirtualRouterName) < 1 {
4170		invalidParams.Add(request.NewErrParamMinLen("VirtualRouterName", 1))
4171	}
4172
4173	if invalidParams.Len() > 0 {
4174		return invalidParams
4175	}
4176	return nil
4177}
4178
4179// SetMeshName sets the MeshName field's value.
4180func (s *DeleteRouteInput) SetMeshName(v string) *DeleteRouteInput {
4181	s.MeshName = &v
4182	return s
4183}
4184
4185// SetRouteName sets the RouteName field's value.
4186func (s *DeleteRouteInput) SetRouteName(v string) *DeleteRouteInput {
4187	s.RouteName = &v
4188	return s
4189}
4190
4191// SetVirtualRouterName sets the VirtualRouterName field's value.
4192func (s *DeleteRouteInput) SetVirtualRouterName(v string) *DeleteRouteInput {
4193	s.VirtualRouterName = &v
4194	return s
4195}
4196
4197type DeleteRouteOutput struct {
4198	_ struct{} `type:"structure" payload:"Route"`
4199
4200	// An object representing a route returned by a describe operation.
4201	//
4202	// Route is a required field
4203	Route *RouteData `locationName:"route" type:"structure" required:"true"`
4204}
4205
4206// String returns the string representation
4207func (s DeleteRouteOutput) String() string {
4208	return awsutil.Prettify(s)
4209}
4210
4211// GoString returns the string representation
4212func (s DeleteRouteOutput) GoString() string {
4213	return s.String()
4214}
4215
4216// SetRoute sets the Route field's value.
4217func (s *DeleteRouteOutput) SetRoute(v *RouteData) *DeleteRouteOutput {
4218	s.Route = v
4219	return s
4220}
4221
4222type DeleteVirtualNodeInput struct {
4223	_ struct{} `type:"structure"`
4224
4225	// MeshName is a required field
4226	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
4227
4228	// VirtualNodeName is a required field
4229	VirtualNodeName *string `location:"uri" locationName:"virtualNodeName" min:"1" type:"string" required:"true"`
4230}
4231
4232// String returns the string representation
4233func (s DeleteVirtualNodeInput) String() string {
4234	return awsutil.Prettify(s)
4235}
4236
4237// GoString returns the string representation
4238func (s DeleteVirtualNodeInput) GoString() string {
4239	return s.String()
4240}
4241
4242// Validate inspects the fields of the type to determine if they are valid.
4243func (s *DeleteVirtualNodeInput) Validate() error {
4244	invalidParams := request.ErrInvalidParams{Context: "DeleteVirtualNodeInput"}
4245	if s.MeshName == nil {
4246		invalidParams.Add(request.NewErrParamRequired("MeshName"))
4247	}
4248	if s.MeshName != nil && len(*s.MeshName) < 1 {
4249		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
4250	}
4251	if s.VirtualNodeName == nil {
4252		invalidParams.Add(request.NewErrParamRequired("VirtualNodeName"))
4253	}
4254	if s.VirtualNodeName != nil && len(*s.VirtualNodeName) < 1 {
4255		invalidParams.Add(request.NewErrParamMinLen("VirtualNodeName", 1))
4256	}
4257
4258	if invalidParams.Len() > 0 {
4259		return invalidParams
4260	}
4261	return nil
4262}
4263
4264// SetMeshName sets the MeshName field's value.
4265func (s *DeleteVirtualNodeInput) SetMeshName(v string) *DeleteVirtualNodeInput {
4266	s.MeshName = &v
4267	return s
4268}
4269
4270// SetVirtualNodeName sets the VirtualNodeName field's value.
4271func (s *DeleteVirtualNodeInput) SetVirtualNodeName(v string) *DeleteVirtualNodeInput {
4272	s.VirtualNodeName = &v
4273	return s
4274}
4275
4276type DeleteVirtualNodeOutput struct {
4277	_ struct{} `type:"structure" payload:"VirtualNode"`
4278
4279	// An object representing a virtual node returned by a describe operation.
4280	//
4281	// VirtualNode is a required field
4282	VirtualNode *VirtualNodeData `locationName:"virtualNode" type:"structure" required:"true"`
4283}
4284
4285// String returns the string representation
4286func (s DeleteVirtualNodeOutput) String() string {
4287	return awsutil.Prettify(s)
4288}
4289
4290// GoString returns the string representation
4291func (s DeleteVirtualNodeOutput) GoString() string {
4292	return s.String()
4293}
4294
4295// SetVirtualNode sets the VirtualNode field's value.
4296func (s *DeleteVirtualNodeOutput) SetVirtualNode(v *VirtualNodeData) *DeleteVirtualNodeOutput {
4297	s.VirtualNode = v
4298	return s
4299}
4300
4301type DeleteVirtualRouterInput struct {
4302	_ struct{} `type:"structure"`
4303
4304	// MeshName is a required field
4305	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
4306
4307	// VirtualRouterName is a required field
4308	VirtualRouterName *string `location:"uri" locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
4309}
4310
4311// String returns the string representation
4312func (s DeleteVirtualRouterInput) String() string {
4313	return awsutil.Prettify(s)
4314}
4315
4316// GoString returns the string representation
4317func (s DeleteVirtualRouterInput) GoString() string {
4318	return s.String()
4319}
4320
4321// Validate inspects the fields of the type to determine if they are valid.
4322func (s *DeleteVirtualRouterInput) Validate() error {
4323	invalidParams := request.ErrInvalidParams{Context: "DeleteVirtualRouterInput"}
4324	if s.MeshName == nil {
4325		invalidParams.Add(request.NewErrParamRequired("MeshName"))
4326	}
4327	if s.MeshName != nil && len(*s.MeshName) < 1 {
4328		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
4329	}
4330	if s.VirtualRouterName == nil {
4331		invalidParams.Add(request.NewErrParamRequired("VirtualRouterName"))
4332	}
4333	if s.VirtualRouterName != nil && len(*s.VirtualRouterName) < 1 {
4334		invalidParams.Add(request.NewErrParamMinLen("VirtualRouterName", 1))
4335	}
4336
4337	if invalidParams.Len() > 0 {
4338		return invalidParams
4339	}
4340	return nil
4341}
4342
4343// SetMeshName sets the MeshName field's value.
4344func (s *DeleteVirtualRouterInput) SetMeshName(v string) *DeleteVirtualRouterInput {
4345	s.MeshName = &v
4346	return s
4347}
4348
4349// SetVirtualRouterName sets the VirtualRouterName field's value.
4350func (s *DeleteVirtualRouterInput) SetVirtualRouterName(v string) *DeleteVirtualRouterInput {
4351	s.VirtualRouterName = &v
4352	return s
4353}
4354
4355type DeleteVirtualRouterOutput struct {
4356	_ struct{} `type:"structure" payload:"VirtualRouter"`
4357
4358	// An object representing a virtual router returned by a describe operation.
4359	//
4360	// VirtualRouter is a required field
4361	VirtualRouter *VirtualRouterData `locationName:"virtualRouter" type:"structure" required:"true"`
4362}
4363
4364// String returns the string representation
4365func (s DeleteVirtualRouterOutput) String() string {
4366	return awsutil.Prettify(s)
4367}
4368
4369// GoString returns the string representation
4370func (s DeleteVirtualRouterOutput) GoString() string {
4371	return s.String()
4372}
4373
4374// SetVirtualRouter sets the VirtualRouter field's value.
4375func (s *DeleteVirtualRouterOutput) SetVirtualRouter(v *VirtualRouterData) *DeleteVirtualRouterOutput {
4376	s.VirtualRouter = v
4377	return s
4378}
4379
4380type DeleteVirtualServiceInput struct {
4381	_ struct{} `type:"structure"`
4382
4383	// MeshName is a required field
4384	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
4385
4386	// VirtualServiceName is a required field
4387	VirtualServiceName *string `location:"uri" locationName:"virtualServiceName" type:"string" required:"true"`
4388}
4389
4390// String returns the string representation
4391func (s DeleteVirtualServiceInput) String() string {
4392	return awsutil.Prettify(s)
4393}
4394
4395// GoString returns the string representation
4396func (s DeleteVirtualServiceInput) GoString() string {
4397	return s.String()
4398}
4399
4400// Validate inspects the fields of the type to determine if they are valid.
4401func (s *DeleteVirtualServiceInput) Validate() error {
4402	invalidParams := request.ErrInvalidParams{Context: "DeleteVirtualServiceInput"}
4403	if s.MeshName == nil {
4404		invalidParams.Add(request.NewErrParamRequired("MeshName"))
4405	}
4406	if s.MeshName != nil && len(*s.MeshName) < 1 {
4407		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
4408	}
4409	if s.VirtualServiceName == nil {
4410		invalidParams.Add(request.NewErrParamRequired("VirtualServiceName"))
4411	}
4412	if s.VirtualServiceName != nil && len(*s.VirtualServiceName) < 1 {
4413		invalidParams.Add(request.NewErrParamMinLen("VirtualServiceName", 1))
4414	}
4415
4416	if invalidParams.Len() > 0 {
4417		return invalidParams
4418	}
4419	return nil
4420}
4421
4422// SetMeshName sets the MeshName field's value.
4423func (s *DeleteVirtualServiceInput) SetMeshName(v string) *DeleteVirtualServiceInput {
4424	s.MeshName = &v
4425	return s
4426}
4427
4428// SetVirtualServiceName sets the VirtualServiceName field's value.
4429func (s *DeleteVirtualServiceInput) SetVirtualServiceName(v string) *DeleteVirtualServiceInput {
4430	s.VirtualServiceName = &v
4431	return s
4432}
4433
4434type DeleteVirtualServiceOutput struct {
4435	_ struct{} `type:"structure" payload:"VirtualService"`
4436
4437	// An object representing a virtual service returned by a describe operation.
4438	//
4439	// VirtualService is a required field
4440	VirtualService *VirtualServiceData `locationName:"virtualService" type:"structure" required:"true"`
4441}
4442
4443// String returns the string representation
4444func (s DeleteVirtualServiceOutput) String() string {
4445	return awsutil.Prettify(s)
4446}
4447
4448// GoString returns the string representation
4449func (s DeleteVirtualServiceOutput) GoString() string {
4450	return s.String()
4451}
4452
4453// SetVirtualService sets the VirtualService field's value.
4454func (s *DeleteVirtualServiceOutput) SetVirtualService(v *VirtualServiceData) *DeleteVirtualServiceOutput {
4455	s.VirtualService = v
4456	return s
4457}
4458
4459type DescribeMeshInput struct {
4460	_ struct{} `type:"structure"`
4461
4462	// MeshName is a required field
4463	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
4464}
4465
4466// String returns the string representation
4467func (s DescribeMeshInput) String() string {
4468	return awsutil.Prettify(s)
4469}
4470
4471// GoString returns the string representation
4472func (s DescribeMeshInput) GoString() string {
4473	return s.String()
4474}
4475
4476// Validate inspects the fields of the type to determine if they are valid.
4477func (s *DescribeMeshInput) Validate() error {
4478	invalidParams := request.ErrInvalidParams{Context: "DescribeMeshInput"}
4479	if s.MeshName == nil {
4480		invalidParams.Add(request.NewErrParamRequired("MeshName"))
4481	}
4482	if s.MeshName != nil && len(*s.MeshName) < 1 {
4483		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
4484	}
4485
4486	if invalidParams.Len() > 0 {
4487		return invalidParams
4488	}
4489	return nil
4490}
4491
4492// SetMeshName sets the MeshName field's value.
4493func (s *DescribeMeshInput) SetMeshName(v string) *DescribeMeshInput {
4494	s.MeshName = &v
4495	return s
4496}
4497
4498type DescribeMeshOutput struct {
4499	_ struct{} `type:"structure" payload:"Mesh"`
4500
4501	// An object representing a service mesh returned by a describe operation.
4502	//
4503	// Mesh is a required field
4504	Mesh *MeshData `locationName:"mesh" type:"structure" required:"true"`
4505}
4506
4507// String returns the string representation
4508func (s DescribeMeshOutput) String() string {
4509	return awsutil.Prettify(s)
4510}
4511
4512// GoString returns the string representation
4513func (s DescribeMeshOutput) GoString() string {
4514	return s.String()
4515}
4516
4517// SetMesh sets the Mesh field's value.
4518func (s *DescribeMeshOutput) SetMesh(v *MeshData) *DescribeMeshOutput {
4519	s.Mesh = v
4520	return s
4521}
4522
4523type DescribeRouteInput struct {
4524	_ struct{} `type:"structure"`
4525
4526	// MeshName is a required field
4527	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
4528
4529	// RouteName is a required field
4530	RouteName *string `location:"uri" locationName:"routeName" min:"1" type:"string" required:"true"`
4531
4532	// VirtualRouterName is a required field
4533	VirtualRouterName *string `location:"uri" locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
4534}
4535
4536// String returns the string representation
4537func (s DescribeRouteInput) String() string {
4538	return awsutil.Prettify(s)
4539}
4540
4541// GoString returns the string representation
4542func (s DescribeRouteInput) GoString() string {
4543	return s.String()
4544}
4545
4546// Validate inspects the fields of the type to determine if they are valid.
4547func (s *DescribeRouteInput) Validate() error {
4548	invalidParams := request.ErrInvalidParams{Context: "DescribeRouteInput"}
4549	if s.MeshName == nil {
4550		invalidParams.Add(request.NewErrParamRequired("MeshName"))
4551	}
4552	if s.MeshName != nil && len(*s.MeshName) < 1 {
4553		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
4554	}
4555	if s.RouteName == nil {
4556		invalidParams.Add(request.NewErrParamRequired("RouteName"))
4557	}
4558	if s.RouteName != nil && len(*s.RouteName) < 1 {
4559		invalidParams.Add(request.NewErrParamMinLen("RouteName", 1))
4560	}
4561	if s.VirtualRouterName == nil {
4562		invalidParams.Add(request.NewErrParamRequired("VirtualRouterName"))
4563	}
4564	if s.VirtualRouterName != nil && len(*s.VirtualRouterName) < 1 {
4565		invalidParams.Add(request.NewErrParamMinLen("VirtualRouterName", 1))
4566	}
4567
4568	if invalidParams.Len() > 0 {
4569		return invalidParams
4570	}
4571	return nil
4572}
4573
4574// SetMeshName sets the MeshName field's value.
4575func (s *DescribeRouteInput) SetMeshName(v string) *DescribeRouteInput {
4576	s.MeshName = &v
4577	return s
4578}
4579
4580// SetRouteName sets the RouteName field's value.
4581func (s *DescribeRouteInput) SetRouteName(v string) *DescribeRouteInput {
4582	s.RouteName = &v
4583	return s
4584}
4585
4586// SetVirtualRouterName sets the VirtualRouterName field's value.
4587func (s *DescribeRouteInput) SetVirtualRouterName(v string) *DescribeRouteInput {
4588	s.VirtualRouterName = &v
4589	return s
4590}
4591
4592type DescribeRouteOutput struct {
4593	_ struct{} `type:"structure" payload:"Route"`
4594
4595	// An object representing a route returned by a describe operation.
4596	//
4597	// Route is a required field
4598	Route *RouteData `locationName:"route" type:"structure" required:"true"`
4599}
4600
4601// String returns the string representation
4602func (s DescribeRouteOutput) String() string {
4603	return awsutil.Prettify(s)
4604}
4605
4606// GoString returns the string representation
4607func (s DescribeRouteOutput) GoString() string {
4608	return s.String()
4609}
4610
4611// SetRoute sets the Route field's value.
4612func (s *DescribeRouteOutput) SetRoute(v *RouteData) *DescribeRouteOutput {
4613	s.Route = v
4614	return s
4615}
4616
4617type DescribeVirtualNodeInput struct {
4618	_ struct{} `type:"structure"`
4619
4620	// MeshName is a required field
4621	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
4622
4623	// VirtualNodeName is a required field
4624	VirtualNodeName *string `location:"uri" locationName:"virtualNodeName" min:"1" type:"string" required:"true"`
4625}
4626
4627// String returns the string representation
4628func (s DescribeVirtualNodeInput) String() string {
4629	return awsutil.Prettify(s)
4630}
4631
4632// GoString returns the string representation
4633func (s DescribeVirtualNodeInput) GoString() string {
4634	return s.String()
4635}
4636
4637// Validate inspects the fields of the type to determine if they are valid.
4638func (s *DescribeVirtualNodeInput) Validate() error {
4639	invalidParams := request.ErrInvalidParams{Context: "DescribeVirtualNodeInput"}
4640	if s.MeshName == nil {
4641		invalidParams.Add(request.NewErrParamRequired("MeshName"))
4642	}
4643	if s.MeshName != nil && len(*s.MeshName) < 1 {
4644		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
4645	}
4646	if s.VirtualNodeName == nil {
4647		invalidParams.Add(request.NewErrParamRequired("VirtualNodeName"))
4648	}
4649	if s.VirtualNodeName != nil && len(*s.VirtualNodeName) < 1 {
4650		invalidParams.Add(request.NewErrParamMinLen("VirtualNodeName", 1))
4651	}
4652
4653	if invalidParams.Len() > 0 {
4654		return invalidParams
4655	}
4656	return nil
4657}
4658
4659// SetMeshName sets the MeshName field's value.
4660func (s *DescribeVirtualNodeInput) SetMeshName(v string) *DescribeVirtualNodeInput {
4661	s.MeshName = &v
4662	return s
4663}
4664
4665// SetVirtualNodeName sets the VirtualNodeName field's value.
4666func (s *DescribeVirtualNodeInput) SetVirtualNodeName(v string) *DescribeVirtualNodeInput {
4667	s.VirtualNodeName = &v
4668	return s
4669}
4670
4671type DescribeVirtualNodeOutput struct {
4672	_ struct{} `type:"structure" payload:"VirtualNode"`
4673
4674	// An object representing a virtual node returned by a describe operation.
4675	//
4676	// VirtualNode is a required field
4677	VirtualNode *VirtualNodeData `locationName:"virtualNode" type:"structure" required:"true"`
4678}
4679
4680// String returns the string representation
4681func (s DescribeVirtualNodeOutput) String() string {
4682	return awsutil.Prettify(s)
4683}
4684
4685// GoString returns the string representation
4686func (s DescribeVirtualNodeOutput) GoString() string {
4687	return s.String()
4688}
4689
4690// SetVirtualNode sets the VirtualNode field's value.
4691func (s *DescribeVirtualNodeOutput) SetVirtualNode(v *VirtualNodeData) *DescribeVirtualNodeOutput {
4692	s.VirtualNode = v
4693	return s
4694}
4695
4696type DescribeVirtualRouterInput struct {
4697	_ struct{} `type:"structure"`
4698
4699	// MeshName is a required field
4700	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
4701
4702	// VirtualRouterName is a required field
4703	VirtualRouterName *string `location:"uri" locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
4704}
4705
4706// String returns the string representation
4707func (s DescribeVirtualRouterInput) String() string {
4708	return awsutil.Prettify(s)
4709}
4710
4711// GoString returns the string representation
4712func (s DescribeVirtualRouterInput) GoString() string {
4713	return s.String()
4714}
4715
4716// Validate inspects the fields of the type to determine if they are valid.
4717func (s *DescribeVirtualRouterInput) Validate() error {
4718	invalidParams := request.ErrInvalidParams{Context: "DescribeVirtualRouterInput"}
4719	if s.MeshName == nil {
4720		invalidParams.Add(request.NewErrParamRequired("MeshName"))
4721	}
4722	if s.MeshName != nil && len(*s.MeshName) < 1 {
4723		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
4724	}
4725	if s.VirtualRouterName == nil {
4726		invalidParams.Add(request.NewErrParamRequired("VirtualRouterName"))
4727	}
4728	if s.VirtualRouterName != nil && len(*s.VirtualRouterName) < 1 {
4729		invalidParams.Add(request.NewErrParamMinLen("VirtualRouterName", 1))
4730	}
4731
4732	if invalidParams.Len() > 0 {
4733		return invalidParams
4734	}
4735	return nil
4736}
4737
4738// SetMeshName sets the MeshName field's value.
4739func (s *DescribeVirtualRouterInput) SetMeshName(v string) *DescribeVirtualRouterInput {
4740	s.MeshName = &v
4741	return s
4742}
4743
4744// SetVirtualRouterName sets the VirtualRouterName field's value.
4745func (s *DescribeVirtualRouterInput) SetVirtualRouterName(v string) *DescribeVirtualRouterInput {
4746	s.VirtualRouterName = &v
4747	return s
4748}
4749
4750type DescribeVirtualRouterOutput struct {
4751	_ struct{} `type:"structure" payload:"VirtualRouter"`
4752
4753	// An object representing a virtual router returned by a describe operation.
4754	//
4755	// VirtualRouter is a required field
4756	VirtualRouter *VirtualRouterData `locationName:"virtualRouter" type:"structure" required:"true"`
4757}
4758
4759// String returns the string representation
4760func (s DescribeVirtualRouterOutput) String() string {
4761	return awsutil.Prettify(s)
4762}
4763
4764// GoString returns the string representation
4765func (s DescribeVirtualRouterOutput) GoString() string {
4766	return s.String()
4767}
4768
4769// SetVirtualRouter sets the VirtualRouter field's value.
4770func (s *DescribeVirtualRouterOutput) SetVirtualRouter(v *VirtualRouterData) *DescribeVirtualRouterOutput {
4771	s.VirtualRouter = v
4772	return s
4773}
4774
4775type DescribeVirtualServiceInput struct {
4776	_ struct{} `type:"structure"`
4777
4778	// MeshName is a required field
4779	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
4780
4781	// VirtualServiceName is a required field
4782	VirtualServiceName *string `location:"uri" locationName:"virtualServiceName" type:"string" required:"true"`
4783}
4784
4785// String returns the string representation
4786func (s DescribeVirtualServiceInput) String() string {
4787	return awsutil.Prettify(s)
4788}
4789
4790// GoString returns the string representation
4791func (s DescribeVirtualServiceInput) GoString() string {
4792	return s.String()
4793}
4794
4795// Validate inspects the fields of the type to determine if they are valid.
4796func (s *DescribeVirtualServiceInput) Validate() error {
4797	invalidParams := request.ErrInvalidParams{Context: "DescribeVirtualServiceInput"}
4798	if s.MeshName == nil {
4799		invalidParams.Add(request.NewErrParamRequired("MeshName"))
4800	}
4801	if s.MeshName != nil && len(*s.MeshName) < 1 {
4802		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
4803	}
4804	if s.VirtualServiceName == nil {
4805		invalidParams.Add(request.NewErrParamRequired("VirtualServiceName"))
4806	}
4807	if s.VirtualServiceName != nil && len(*s.VirtualServiceName) < 1 {
4808		invalidParams.Add(request.NewErrParamMinLen("VirtualServiceName", 1))
4809	}
4810
4811	if invalidParams.Len() > 0 {
4812		return invalidParams
4813	}
4814	return nil
4815}
4816
4817// SetMeshName sets the MeshName field's value.
4818func (s *DescribeVirtualServiceInput) SetMeshName(v string) *DescribeVirtualServiceInput {
4819	s.MeshName = &v
4820	return s
4821}
4822
4823// SetVirtualServiceName sets the VirtualServiceName field's value.
4824func (s *DescribeVirtualServiceInput) SetVirtualServiceName(v string) *DescribeVirtualServiceInput {
4825	s.VirtualServiceName = &v
4826	return s
4827}
4828
4829type DescribeVirtualServiceOutput struct {
4830	_ struct{} `type:"structure" payload:"VirtualService"`
4831
4832	// An object representing a virtual service returned by a describe operation.
4833	//
4834	// VirtualService is a required field
4835	VirtualService *VirtualServiceData `locationName:"virtualService" type:"structure" required:"true"`
4836}
4837
4838// String returns the string representation
4839func (s DescribeVirtualServiceOutput) String() string {
4840	return awsutil.Prettify(s)
4841}
4842
4843// GoString returns the string representation
4844func (s DescribeVirtualServiceOutput) GoString() string {
4845	return s.String()
4846}
4847
4848// SetVirtualService sets the VirtualService field's value.
4849func (s *DescribeVirtualServiceOutput) SetVirtualService(v *VirtualServiceData) *DescribeVirtualServiceOutput {
4850	s.VirtualService = v
4851	return s
4852}
4853
4854// An object representing the DNS service discovery information for your virtual
4855// node.
4856type DnsServiceDiscovery struct {
4857	_ struct{} `type:"structure"`
4858
4859	// Hostname is a required field
4860	Hostname *string `locationName:"hostname" type:"string" required:"true"`
4861}
4862
4863// String returns the string representation
4864func (s DnsServiceDiscovery) String() string {
4865	return awsutil.Prettify(s)
4866}
4867
4868// GoString returns the string representation
4869func (s DnsServiceDiscovery) GoString() string {
4870	return s.String()
4871}
4872
4873// Validate inspects the fields of the type to determine if they are valid.
4874func (s *DnsServiceDiscovery) Validate() error {
4875	invalidParams := request.ErrInvalidParams{Context: "DnsServiceDiscovery"}
4876	if s.Hostname == nil {
4877		invalidParams.Add(request.NewErrParamRequired("Hostname"))
4878	}
4879
4880	if invalidParams.Len() > 0 {
4881		return invalidParams
4882	}
4883	return nil
4884}
4885
4886// SetHostname sets the Hostname field's value.
4887func (s *DnsServiceDiscovery) SetHostname(v string) *DnsServiceDiscovery {
4888	s.Hostname = &v
4889	return s
4890}
4891
4892// An object representing the duration between retry attempts.
4893type Duration struct {
4894	_ struct{} `type:"structure"`
4895
4896	Unit *string `locationName:"unit" type:"string" enum:"DurationUnit"`
4897
4898	Value *int64 `locationName:"value" type:"long"`
4899}
4900
4901// String returns the string representation
4902func (s Duration) String() string {
4903	return awsutil.Prettify(s)
4904}
4905
4906// GoString returns the string representation
4907func (s Duration) GoString() string {
4908	return s.String()
4909}
4910
4911// SetUnit sets the Unit field's value.
4912func (s *Duration) SetUnit(v string) *Duration {
4913	s.Unit = &v
4914	return s
4915}
4916
4917// SetValue sets the Value field's value.
4918func (s *Duration) SetValue(v int64) *Duration {
4919	s.Value = &v
4920	return s
4921}
4922
4923// An object representing the egress filter rules for a service mesh.
4924type EgressFilter struct {
4925	_ struct{} `type:"structure"`
4926
4927	// Type is a required field
4928	Type *string `locationName:"type" type:"string" required:"true" enum:"EgressFilterType"`
4929}
4930
4931// String returns the string representation
4932func (s EgressFilter) String() string {
4933	return awsutil.Prettify(s)
4934}
4935
4936// GoString returns the string representation
4937func (s EgressFilter) GoString() string {
4938	return s.String()
4939}
4940
4941// Validate inspects the fields of the type to determine if they are valid.
4942func (s *EgressFilter) Validate() error {
4943	invalidParams := request.ErrInvalidParams{Context: "EgressFilter"}
4944	if s.Type == nil {
4945		invalidParams.Add(request.NewErrParamRequired("Type"))
4946	}
4947
4948	if invalidParams.Len() > 0 {
4949		return invalidParams
4950	}
4951	return nil
4952}
4953
4954// SetType sets the Type field's value.
4955func (s *EgressFilter) SetType(v string) *EgressFilter {
4956	s.Type = &v
4957	return s
4958}
4959
4960// An object representing an access log file.
4961type FileAccessLog struct {
4962	_ struct{} `type:"structure"`
4963
4964	// Path is a required field
4965	Path *string `locationName:"path" min:"1" type:"string" required:"true"`
4966}
4967
4968// String returns the string representation
4969func (s FileAccessLog) String() string {
4970	return awsutil.Prettify(s)
4971}
4972
4973// GoString returns the string representation
4974func (s FileAccessLog) GoString() string {
4975	return s.String()
4976}
4977
4978// Validate inspects the fields of the type to determine if they are valid.
4979func (s *FileAccessLog) Validate() error {
4980	invalidParams := request.ErrInvalidParams{Context: "FileAccessLog"}
4981	if s.Path == nil {
4982		invalidParams.Add(request.NewErrParamRequired("Path"))
4983	}
4984	if s.Path != nil && len(*s.Path) < 1 {
4985		invalidParams.Add(request.NewErrParamMinLen("Path", 1))
4986	}
4987
4988	if invalidParams.Len() > 0 {
4989		return invalidParams
4990	}
4991	return nil
4992}
4993
4994// SetPath sets the Path field's value.
4995func (s *FileAccessLog) SetPath(v string) *FileAccessLog {
4996	s.Path = &v
4997	return s
4998}
4999
5000// An object representing the method and value to match the header value sent
5001// with a request. Specify one match method.
5002type HeaderMatchMethod struct {
5003	_ struct{} `type:"structure"`
5004
5005	Exact *string `locationName:"exact" min:"1" type:"string"`
5006
5007	Prefix *string `locationName:"prefix" min:"1" type:"string"`
5008
5009	// The range of values to match on. The first character of the range is included
5010	// in the range, though the last character is not. For example, if the range
5011	// specified were 1-100, only values 1-99 would be matched.
5012	Range *MatchRange `locationName:"range" type:"structure"`
5013
5014	Regex *string `locationName:"regex" min:"1" type:"string"`
5015
5016	Suffix *string `locationName:"suffix" min:"1" type:"string"`
5017}
5018
5019// String returns the string representation
5020func (s HeaderMatchMethod) String() string {
5021	return awsutil.Prettify(s)
5022}
5023
5024// GoString returns the string representation
5025func (s HeaderMatchMethod) GoString() string {
5026	return s.String()
5027}
5028
5029// Validate inspects the fields of the type to determine if they are valid.
5030func (s *HeaderMatchMethod) Validate() error {
5031	invalidParams := request.ErrInvalidParams{Context: "HeaderMatchMethod"}
5032	if s.Exact != nil && len(*s.Exact) < 1 {
5033		invalidParams.Add(request.NewErrParamMinLen("Exact", 1))
5034	}
5035	if s.Prefix != nil && len(*s.Prefix) < 1 {
5036		invalidParams.Add(request.NewErrParamMinLen("Prefix", 1))
5037	}
5038	if s.Regex != nil && len(*s.Regex) < 1 {
5039		invalidParams.Add(request.NewErrParamMinLen("Regex", 1))
5040	}
5041	if s.Suffix != nil && len(*s.Suffix) < 1 {
5042		invalidParams.Add(request.NewErrParamMinLen("Suffix", 1))
5043	}
5044	if s.Range != nil {
5045		if err := s.Range.Validate(); err != nil {
5046			invalidParams.AddNested("Range", err.(request.ErrInvalidParams))
5047		}
5048	}
5049
5050	if invalidParams.Len() > 0 {
5051		return invalidParams
5052	}
5053	return nil
5054}
5055
5056// SetExact sets the Exact field's value.
5057func (s *HeaderMatchMethod) SetExact(v string) *HeaderMatchMethod {
5058	s.Exact = &v
5059	return s
5060}
5061
5062// SetPrefix sets the Prefix field's value.
5063func (s *HeaderMatchMethod) SetPrefix(v string) *HeaderMatchMethod {
5064	s.Prefix = &v
5065	return s
5066}
5067
5068// SetRange sets the Range field's value.
5069func (s *HeaderMatchMethod) SetRange(v *MatchRange) *HeaderMatchMethod {
5070	s.Range = v
5071	return s
5072}
5073
5074// SetRegex sets the Regex field's value.
5075func (s *HeaderMatchMethod) SetRegex(v string) *HeaderMatchMethod {
5076	s.Regex = &v
5077	return s
5078}
5079
5080// SetSuffix sets the Suffix field's value.
5081func (s *HeaderMatchMethod) SetSuffix(v string) *HeaderMatchMethod {
5082	s.Suffix = &v
5083	return s
5084}
5085
5086// An object representing the health check policy for a virtual node's listener.
5087type HealthCheckPolicy struct {
5088	_ struct{} `type:"structure"`
5089
5090	// HealthyThreshold is a required field
5091	HealthyThreshold *int64 `locationName:"healthyThreshold" min:"2" type:"integer" required:"true"`
5092
5093	// IntervalMillis is a required field
5094	IntervalMillis *int64 `locationName:"intervalMillis" min:"5000" type:"long" required:"true"`
5095
5096	Path *string `locationName:"path" type:"string"`
5097
5098	Port *int64 `locationName:"port" min:"1" type:"integer"`
5099
5100	// Protocol is a required field
5101	Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"PortProtocol"`
5102
5103	// TimeoutMillis is a required field
5104	TimeoutMillis *int64 `locationName:"timeoutMillis" min:"2000" type:"long" required:"true"`
5105
5106	// UnhealthyThreshold is a required field
5107	UnhealthyThreshold *int64 `locationName:"unhealthyThreshold" min:"2" type:"integer" required:"true"`
5108}
5109
5110// String returns the string representation
5111func (s HealthCheckPolicy) String() string {
5112	return awsutil.Prettify(s)
5113}
5114
5115// GoString returns the string representation
5116func (s HealthCheckPolicy) GoString() string {
5117	return s.String()
5118}
5119
5120// Validate inspects the fields of the type to determine if they are valid.
5121func (s *HealthCheckPolicy) Validate() error {
5122	invalidParams := request.ErrInvalidParams{Context: "HealthCheckPolicy"}
5123	if s.HealthyThreshold == nil {
5124		invalidParams.Add(request.NewErrParamRequired("HealthyThreshold"))
5125	}
5126	if s.HealthyThreshold != nil && *s.HealthyThreshold < 2 {
5127		invalidParams.Add(request.NewErrParamMinValue("HealthyThreshold", 2))
5128	}
5129	if s.IntervalMillis == nil {
5130		invalidParams.Add(request.NewErrParamRequired("IntervalMillis"))
5131	}
5132	if s.IntervalMillis != nil && *s.IntervalMillis < 5000 {
5133		invalidParams.Add(request.NewErrParamMinValue("IntervalMillis", 5000))
5134	}
5135	if s.Port != nil && *s.Port < 1 {
5136		invalidParams.Add(request.NewErrParamMinValue("Port", 1))
5137	}
5138	if s.Protocol == nil {
5139		invalidParams.Add(request.NewErrParamRequired("Protocol"))
5140	}
5141	if s.TimeoutMillis == nil {
5142		invalidParams.Add(request.NewErrParamRequired("TimeoutMillis"))
5143	}
5144	if s.TimeoutMillis != nil && *s.TimeoutMillis < 2000 {
5145		invalidParams.Add(request.NewErrParamMinValue("TimeoutMillis", 2000))
5146	}
5147	if s.UnhealthyThreshold == nil {
5148		invalidParams.Add(request.NewErrParamRequired("UnhealthyThreshold"))
5149	}
5150	if s.UnhealthyThreshold != nil && *s.UnhealthyThreshold < 2 {
5151		invalidParams.Add(request.NewErrParamMinValue("UnhealthyThreshold", 2))
5152	}
5153
5154	if invalidParams.Len() > 0 {
5155		return invalidParams
5156	}
5157	return nil
5158}
5159
5160// SetHealthyThreshold sets the HealthyThreshold field's value.
5161func (s *HealthCheckPolicy) SetHealthyThreshold(v int64) *HealthCheckPolicy {
5162	s.HealthyThreshold = &v
5163	return s
5164}
5165
5166// SetIntervalMillis sets the IntervalMillis field's value.
5167func (s *HealthCheckPolicy) SetIntervalMillis(v int64) *HealthCheckPolicy {
5168	s.IntervalMillis = &v
5169	return s
5170}
5171
5172// SetPath sets the Path field's value.
5173func (s *HealthCheckPolicy) SetPath(v string) *HealthCheckPolicy {
5174	s.Path = &v
5175	return s
5176}
5177
5178// SetPort sets the Port field's value.
5179func (s *HealthCheckPolicy) SetPort(v int64) *HealthCheckPolicy {
5180	s.Port = &v
5181	return s
5182}
5183
5184// SetProtocol sets the Protocol field's value.
5185func (s *HealthCheckPolicy) SetProtocol(v string) *HealthCheckPolicy {
5186	s.Protocol = &v
5187	return s
5188}
5189
5190// SetTimeoutMillis sets the TimeoutMillis field's value.
5191func (s *HealthCheckPolicy) SetTimeoutMillis(v int64) *HealthCheckPolicy {
5192	s.TimeoutMillis = &v
5193	return s
5194}
5195
5196// SetUnhealthyThreshold sets the UnhealthyThreshold field's value.
5197func (s *HealthCheckPolicy) SetUnhealthyThreshold(v int64) *HealthCheckPolicy {
5198	s.UnhealthyThreshold = &v
5199	return s
5200}
5201
5202// An object that represents a retry policy.
5203type HttpRetryPolicy struct {
5204	_ struct{} `type:"structure"`
5205
5206	HttpRetryEvents []*string `locationName:"httpRetryEvents" min:"1" type:"list"`
5207
5208	// MaxRetries is a required field
5209	MaxRetries *int64 `locationName:"maxRetries" type:"long" required:"true"`
5210
5211	// An object representing the duration between retry attempts.
5212	//
5213	// PerRetryTimeout is a required field
5214	PerRetryTimeout *Duration `locationName:"perRetryTimeout" type:"structure" required:"true"`
5215
5216	TcpRetryEvents []*string `locationName:"tcpRetryEvents" min:"1" type:"list"`
5217}
5218
5219// String returns the string representation
5220func (s HttpRetryPolicy) String() string {
5221	return awsutil.Prettify(s)
5222}
5223
5224// GoString returns the string representation
5225func (s HttpRetryPolicy) GoString() string {
5226	return s.String()
5227}
5228
5229// Validate inspects the fields of the type to determine if they are valid.
5230func (s *HttpRetryPolicy) Validate() error {
5231	invalidParams := request.ErrInvalidParams{Context: "HttpRetryPolicy"}
5232	if s.HttpRetryEvents != nil && len(s.HttpRetryEvents) < 1 {
5233		invalidParams.Add(request.NewErrParamMinLen("HttpRetryEvents", 1))
5234	}
5235	if s.MaxRetries == nil {
5236		invalidParams.Add(request.NewErrParamRequired("MaxRetries"))
5237	}
5238	if s.PerRetryTimeout == nil {
5239		invalidParams.Add(request.NewErrParamRequired("PerRetryTimeout"))
5240	}
5241	if s.TcpRetryEvents != nil && len(s.TcpRetryEvents) < 1 {
5242		invalidParams.Add(request.NewErrParamMinLen("TcpRetryEvents", 1))
5243	}
5244
5245	if invalidParams.Len() > 0 {
5246		return invalidParams
5247	}
5248	return nil
5249}
5250
5251// SetHttpRetryEvents sets the HttpRetryEvents field's value.
5252func (s *HttpRetryPolicy) SetHttpRetryEvents(v []*string) *HttpRetryPolicy {
5253	s.HttpRetryEvents = v
5254	return s
5255}
5256
5257// SetMaxRetries sets the MaxRetries field's value.
5258func (s *HttpRetryPolicy) SetMaxRetries(v int64) *HttpRetryPolicy {
5259	s.MaxRetries = &v
5260	return s
5261}
5262
5263// SetPerRetryTimeout sets the PerRetryTimeout field's value.
5264func (s *HttpRetryPolicy) SetPerRetryTimeout(v *Duration) *HttpRetryPolicy {
5265	s.PerRetryTimeout = v
5266	return s
5267}
5268
5269// SetTcpRetryEvents sets the TcpRetryEvents field's value.
5270func (s *HttpRetryPolicy) SetTcpRetryEvents(v []*string) *HttpRetryPolicy {
5271	s.TcpRetryEvents = v
5272	return s
5273}
5274
5275// An object representing the HTTP routing specification for a route.
5276type HttpRoute struct {
5277	_ struct{} `type:"structure"`
5278
5279	// An object representing the traffic distribution requirements for matched
5280	// HTTP requests.
5281	//
5282	// Action is a required field
5283	Action *HttpRouteAction `locationName:"action" type:"structure" required:"true"`
5284
5285	// An object representing the requirements for a route to match HTTP requests
5286	// for a virtual router.
5287	//
5288	// Match is a required field
5289	Match *HttpRouteMatch `locationName:"match" type:"structure" required:"true"`
5290
5291	// An object that represents a retry policy.
5292	RetryPolicy *HttpRetryPolicy `locationName:"retryPolicy" type:"structure"`
5293}
5294
5295// String returns the string representation
5296func (s HttpRoute) String() string {
5297	return awsutil.Prettify(s)
5298}
5299
5300// GoString returns the string representation
5301func (s HttpRoute) GoString() string {
5302	return s.String()
5303}
5304
5305// Validate inspects the fields of the type to determine if they are valid.
5306func (s *HttpRoute) Validate() error {
5307	invalidParams := request.ErrInvalidParams{Context: "HttpRoute"}
5308	if s.Action == nil {
5309		invalidParams.Add(request.NewErrParamRequired("Action"))
5310	}
5311	if s.Match == nil {
5312		invalidParams.Add(request.NewErrParamRequired("Match"))
5313	}
5314	if s.Action != nil {
5315		if err := s.Action.Validate(); err != nil {
5316			invalidParams.AddNested("Action", err.(request.ErrInvalidParams))
5317		}
5318	}
5319	if s.Match != nil {
5320		if err := s.Match.Validate(); err != nil {
5321			invalidParams.AddNested("Match", err.(request.ErrInvalidParams))
5322		}
5323	}
5324	if s.RetryPolicy != nil {
5325		if err := s.RetryPolicy.Validate(); err != nil {
5326			invalidParams.AddNested("RetryPolicy", err.(request.ErrInvalidParams))
5327		}
5328	}
5329
5330	if invalidParams.Len() > 0 {
5331		return invalidParams
5332	}
5333	return nil
5334}
5335
5336// SetAction sets the Action field's value.
5337func (s *HttpRoute) SetAction(v *HttpRouteAction) *HttpRoute {
5338	s.Action = v
5339	return s
5340}
5341
5342// SetMatch sets the Match field's value.
5343func (s *HttpRoute) SetMatch(v *HttpRouteMatch) *HttpRoute {
5344	s.Match = v
5345	return s
5346}
5347
5348// SetRetryPolicy sets the RetryPolicy field's value.
5349func (s *HttpRoute) SetRetryPolicy(v *HttpRetryPolicy) *HttpRoute {
5350	s.RetryPolicy = v
5351	return s
5352}
5353
5354// An object representing the traffic distribution requirements for matched
5355// HTTP requests.
5356type HttpRouteAction struct {
5357	_ struct{} `type:"structure"`
5358
5359	// WeightedTargets is a required field
5360	WeightedTargets []*WeightedTarget `locationName:"weightedTargets" min:"1" type:"list" required:"true"`
5361}
5362
5363// String returns the string representation
5364func (s HttpRouteAction) String() string {
5365	return awsutil.Prettify(s)
5366}
5367
5368// GoString returns the string representation
5369func (s HttpRouteAction) GoString() string {
5370	return s.String()
5371}
5372
5373// Validate inspects the fields of the type to determine if they are valid.
5374func (s *HttpRouteAction) Validate() error {
5375	invalidParams := request.ErrInvalidParams{Context: "HttpRouteAction"}
5376	if s.WeightedTargets == nil {
5377		invalidParams.Add(request.NewErrParamRequired("WeightedTargets"))
5378	}
5379	if s.WeightedTargets != nil && len(s.WeightedTargets) < 1 {
5380		invalidParams.Add(request.NewErrParamMinLen("WeightedTargets", 1))
5381	}
5382	if s.WeightedTargets != nil {
5383		for i, v := range s.WeightedTargets {
5384			if v == nil {
5385				continue
5386			}
5387			if err := v.Validate(); err != nil {
5388				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "WeightedTargets", i), err.(request.ErrInvalidParams))
5389			}
5390		}
5391	}
5392
5393	if invalidParams.Len() > 0 {
5394		return invalidParams
5395	}
5396	return nil
5397}
5398
5399// SetWeightedTargets sets the WeightedTargets field's value.
5400func (s *HttpRouteAction) SetWeightedTargets(v []*WeightedTarget) *HttpRouteAction {
5401	s.WeightedTargets = v
5402	return s
5403}
5404
5405// An object representing the HTTP header in the request.
5406type HttpRouteHeader struct {
5407	_ struct{} `type:"structure"`
5408
5409	Invert *bool `locationName:"invert" type:"boolean"`
5410
5411	// An object representing the method and value to match the header value sent
5412	// with a request. Specify one match method.
5413	Match *HeaderMatchMethod `locationName:"match" type:"structure"`
5414
5415	// Name is a required field
5416	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
5417}
5418
5419// String returns the string representation
5420func (s HttpRouteHeader) String() string {
5421	return awsutil.Prettify(s)
5422}
5423
5424// GoString returns the string representation
5425func (s HttpRouteHeader) GoString() string {
5426	return s.String()
5427}
5428
5429// Validate inspects the fields of the type to determine if they are valid.
5430func (s *HttpRouteHeader) Validate() error {
5431	invalidParams := request.ErrInvalidParams{Context: "HttpRouteHeader"}
5432	if s.Name == nil {
5433		invalidParams.Add(request.NewErrParamRequired("Name"))
5434	}
5435	if s.Name != nil && len(*s.Name) < 1 {
5436		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5437	}
5438	if s.Match != nil {
5439		if err := s.Match.Validate(); err != nil {
5440			invalidParams.AddNested("Match", err.(request.ErrInvalidParams))
5441		}
5442	}
5443
5444	if invalidParams.Len() > 0 {
5445		return invalidParams
5446	}
5447	return nil
5448}
5449
5450// SetInvert sets the Invert field's value.
5451func (s *HttpRouteHeader) SetInvert(v bool) *HttpRouteHeader {
5452	s.Invert = &v
5453	return s
5454}
5455
5456// SetMatch sets the Match field's value.
5457func (s *HttpRouteHeader) SetMatch(v *HeaderMatchMethod) *HttpRouteHeader {
5458	s.Match = v
5459	return s
5460}
5461
5462// SetName sets the Name field's value.
5463func (s *HttpRouteHeader) SetName(v string) *HttpRouteHeader {
5464	s.Name = &v
5465	return s
5466}
5467
5468// An object representing the requirements for a route to match HTTP requests
5469// for a virtual router.
5470type HttpRouteMatch struct {
5471	_ struct{} `type:"structure"`
5472
5473	Headers []*HttpRouteHeader `locationName:"headers" min:"1" type:"list"`
5474
5475	Method *string `locationName:"method" type:"string" enum:"HttpMethod"`
5476
5477	// Prefix is a required field
5478	Prefix *string `locationName:"prefix" type:"string" required:"true"`
5479
5480	Scheme *string `locationName:"scheme" type:"string" enum:"HttpScheme"`
5481}
5482
5483// String returns the string representation
5484func (s HttpRouteMatch) String() string {
5485	return awsutil.Prettify(s)
5486}
5487
5488// GoString returns the string representation
5489func (s HttpRouteMatch) GoString() string {
5490	return s.String()
5491}
5492
5493// Validate inspects the fields of the type to determine if they are valid.
5494func (s *HttpRouteMatch) Validate() error {
5495	invalidParams := request.ErrInvalidParams{Context: "HttpRouteMatch"}
5496	if s.Headers != nil && len(s.Headers) < 1 {
5497		invalidParams.Add(request.NewErrParamMinLen("Headers", 1))
5498	}
5499	if s.Prefix == nil {
5500		invalidParams.Add(request.NewErrParamRequired("Prefix"))
5501	}
5502	if s.Headers != nil {
5503		for i, v := range s.Headers {
5504			if v == nil {
5505				continue
5506			}
5507			if err := v.Validate(); err != nil {
5508				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Headers", i), err.(request.ErrInvalidParams))
5509			}
5510		}
5511	}
5512
5513	if invalidParams.Len() > 0 {
5514		return invalidParams
5515	}
5516	return nil
5517}
5518
5519// SetHeaders sets the Headers field's value.
5520func (s *HttpRouteMatch) SetHeaders(v []*HttpRouteHeader) *HttpRouteMatch {
5521	s.Headers = v
5522	return s
5523}
5524
5525// SetMethod sets the Method field's value.
5526func (s *HttpRouteMatch) SetMethod(v string) *HttpRouteMatch {
5527	s.Method = &v
5528	return s
5529}
5530
5531// SetPrefix sets the Prefix field's value.
5532func (s *HttpRouteMatch) SetPrefix(v string) *HttpRouteMatch {
5533	s.Prefix = &v
5534	return s
5535}
5536
5537// SetScheme sets the Scheme field's value.
5538func (s *HttpRouteMatch) SetScheme(v string) *HttpRouteMatch {
5539	s.Scheme = &v
5540	return s
5541}
5542
5543type ListMeshesInput struct {
5544	_ struct{} `type:"structure"`
5545
5546	Limit *int64 `location:"querystring" locationName:"limit" min:"1" type:"integer"`
5547
5548	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
5549}
5550
5551// String returns the string representation
5552func (s ListMeshesInput) String() string {
5553	return awsutil.Prettify(s)
5554}
5555
5556// GoString returns the string representation
5557func (s ListMeshesInput) GoString() string {
5558	return s.String()
5559}
5560
5561// Validate inspects the fields of the type to determine if they are valid.
5562func (s *ListMeshesInput) Validate() error {
5563	invalidParams := request.ErrInvalidParams{Context: "ListMeshesInput"}
5564	if s.Limit != nil && *s.Limit < 1 {
5565		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
5566	}
5567
5568	if invalidParams.Len() > 0 {
5569		return invalidParams
5570	}
5571	return nil
5572}
5573
5574// SetLimit sets the Limit field's value.
5575func (s *ListMeshesInput) SetLimit(v int64) *ListMeshesInput {
5576	s.Limit = &v
5577	return s
5578}
5579
5580// SetNextToken sets the NextToken field's value.
5581func (s *ListMeshesInput) SetNextToken(v string) *ListMeshesInput {
5582	s.NextToken = &v
5583	return s
5584}
5585
5586type ListMeshesOutput struct {
5587	_ struct{} `type:"structure"`
5588
5589	// Meshes is a required field
5590	Meshes []*MeshRef `locationName:"meshes" type:"list" required:"true"`
5591
5592	NextToken *string `locationName:"nextToken" type:"string"`
5593}
5594
5595// String returns the string representation
5596func (s ListMeshesOutput) String() string {
5597	return awsutil.Prettify(s)
5598}
5599
5600// GoString returns the string representation
5601func (s ListMeshesOutput) GoString() string {
5602	return s.String()
5603}
5604
5605// SetMeshes sets the Meshes field's value.
5606func (s *ListMeshesOutput) SetMeshes(v []*MeshRef) *ListMeshesOutput {
5607	s.Meshes = v
5608	return s
5609}
5610
5611// SetNextToken sets the NextToken field's value.
5612func (s *ListMeshesOutput) SetNextToken(v string) *ListMeshesOutput {
5613	s.NextToken = &v
5614	return s
5615}
5616
5617type ListRoutesInput struct {
5618	_ struct{} `type:"structure"`
5619
5620	Limit *int64 `location:"querystring" locationName:"limit" min:"1" type:"integer"`
5621
5622	// MeshName is a required field
5623	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
5624
5625	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
5626
5627	// VirtualRouterName is a required field
5628	VirtualRouterName *string `location:"uri" locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
5629}
5630
5631// String returns the string representation
5632func (s ListRoutesInput) String() string {
5633	return awsutil.Prettify(s)
5634}
5635
5636// GoString returns the string representation
5637func (s ListRoutesInput) GoString() string {
5638	return s.String()
5639}
5640
5641// Validate inspects the fields of the type to determine if they are valid.
5642func (s *ListRoutesInput) Validate() error {
5643	invalidParams := request.ErrInvalidParams{Context: "ListRoutesInput"}
5644	if s.Limit != nil && *s.Limit < 1 {
5645		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
5646	}
5647	if s.MeshName == nil {
5648		invalidParams.Add(request.NewErrParamRequired("MeshName"))
5649	}
5650	if s.MeshName != nil && len(*s.MeshName) < 1 {
5651		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
5652	}
5653	if s.VirtualRouterName == nil {
5654		invalidParams.Add(request.NewErrParamRequired("VirtualRouterName"))
5655	}
5656	if s.VirtualRouterName != nil && len(*s.VirtualRouterName) < 1 {
5657		invalidParams.Add(request.NewErrParamMinLen("VirtualRouterName", 1))
5658	}
5659
5660	if invalidParams.Len() > 0 {
5661		return invalidParams
5662	}
5663	return nil
5664}
5665
5666// SetLimit sets the Limit field's value.
5667func (s *ListRoutesInput) SetLimit(v int64) *ListRoutesInput {
5668	s.Limit = &v
5669	return s
5670}
5671
5672// SetMeshName sets the MeshName field's value.
5673func (s *ListRoutesInput) SetMeshName(v string) *ListRoutesInput {
5674	s.MeshName = &v
5675	return s
5676}
5677
5678// SetNextToken sets the NextToken field's value.
5679func (s *ListRoutesInput) SetNextToken(v string) *ListRoutesInput {
5680	s.NextToken = &v
5681	return s
5682}
5683
5684// SetVirtualRouterName sets the VirtualRouterName field's value.
5685func (s *ListRoutesInput) SetVirtualRouterName(v string) *ListRoutesInput {
5686	s.VirtualRouterName = &v
5687	return s
5688}
5689
5690type ListRoutesOutput struct {
5691	_ struct{} `type:"structure"`
5692
5693	NextToken *string `locationName:"nextToken" type:"string"`
5694
5695	// Routes is a required field
5696	Routes []*RouteRef `locationName:"routes" type:"list" required:"true"`
5697}
5698
5699// String returns the string representation
5700func (s ListRoutesOutput) String() string {
5701	return awsutil.Prettify(s)
5702}
5703
5704// GoString returns the string representation
5705func (s ListRoutesOutput) GoString() string {
5706	return s.String()
5707}
5708
5709// SetNextToken sets the NextToken field's value.
5710func (s *ListRoutesOutput) SetNextToken(v string) *ListRoutesOutput {
5711	s.NextToken = &v
5712	return s
5713}
5714
5715// SetRoutes sets the Routes field's value.
5716func (s *ListRoutesOutput) SetRoutes(v []*RouteRef) *ListRoutesOutput {
5717	s.Routes = v
5718	return s
5719}
5720
5721type ListTagsForResourceInput struct {
5722	_ struct{} `type:"structure"`
5723
5724	Limit *int64 `location:"querystring" locationName:"limit" min:"1" type:"integer"`
5725
5726	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
5727
5728	// ResourceArn is a required field
5729	ResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string" required:"true"`
5730}
5731
5732// String returns the string representation
5733func (s ListTagsForResourceInput) String() string {
5734	return awsutil.Prettify(s)
5735}
5736
5737// GoString returns the string representation
5738func (s ListTagsForResourceInput) GoString() string {
5739	return s.String()
5740}
5741
5742// Validate inspects the fields of the type to determine if they are valid.
5743func (s *ListTagsForResourceInput) Validate() error {
5744	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
5745	if s.Limit != nil && *s.Limit < 1 {
5746		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
5747	}
5748	if s.ResourceArn == nil {
5749		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
5750	}
5751
5752	if invalidParams.Len() > 0 {
5753		return invalidParams
5754	}
5755	return nil
5756}
5757
5758// SetLimit sets the Limit field's value.
5759func (s *ListTagsForResourceInput) SetLimit(v int64) *ListTagsForResourceInput {
5760	s.Limit = &v
5761	return s
5762}
5763
5764// SetNextToken sets the NextToken field's value.
5765func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
5766	s.NextToken = &v
5767	return s
5768}
5769
5770// SetResourceArn sets the ResourceArn field's value.
5771func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
5772	s.ResourceArn = &v
5773	return s
5774}
5775
5776type ListTagsForResourceOutput struct {
5777	_ struct{} `type:"structure"`
5778
5779	NextToken *string `locationName:"nextToken" type:"string"`
5780
5781	// Tags is a required field
5782	Tags []*TagRef `locationName:"tags" type:"list" required:"true"`
5783}
5784
5785// String returns the string representation
5786func (s ListTagsForResourceOutput) String() string {
5787	return awsutil.Prettify(s)
5788}
5789
5790// GoString returns the string representation
5791func (s ListTagsForResourceOutput) GoString() string {
5792	return s.String()
5793}
5794
5795// SetNextToken sets the NextToken field's value.
5796func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
5797	s.NextToken = &v
5798	return s
5799}
5800
5801// SetTags sets the Tags field's value.
5802func (s *ListTagsForResourceOutput) SetTags(v []*TagRef) *ListTagsForResourceOutput {
5803	s.Tags = v
5804	return s
5805}
5806
5807type ListVirtualNodesInput struct {
5808	_ struct{} `type:"structure"`
5809
5810	Limit *int64 `location:"querystring" locationName:"limit" min:"1" type:"integer"`
5811
5812	// MeshName is a required field
5813	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
5814
5815	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
5816}
5817
5818// String returns the string representation
5819func (s ListVirtualNodesInput) String() string {
5820	return awsutil.Prettify(s)
5821}
5822
5823// GoString returns the string representation
5824func (s ListVirtualNodesInput) GoString() string {
5825	return s.String()
5826}
5827
5828// Validate inspects the fields of the type to determine if they are valid.
5829func (s *ListVirtualNodesInput) Validate() error {
5830	invalidParams := request.ErrInvalidParams{Context: "ListVirtualNodesInput"}
5831	if s.Limit != nil && *s.Limit < 1 {
5832		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
5833	}
5834	if s.MeshName == nil {
5835		invalidParams.Add(request.NewErrParamRequired("MeshName"))
5836	}
5837	if s.MeshName != nil && len(*s.MeshName) < 1 {
5838		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
5839	}
5840
5841	if invalidParams.Len() > 0 {
5842		return invalidParams
5843	}
5844	return nil
5845}
5846
5847// SetLimit sets the Limit field's value.
5848func (s *ListVirtualNodesInput) SetLimit(v int64) *ListVirtualNodesInput {
5849	s.Limit = &v
5850	return s
5851}
5852
5853// SetMeshName sets the MeshName field's value.
5854func (s *ListVirtualNodesInput) SetMeshName(v string) *ListVirtualNodesInput {
5855	s.MeshName = &v
5856	return s
5857}
5858
5859// SetNextToken sets the NextToken field's value.
5860func (s *ListVirtualNodesInput) SetNextToken(v string) *ListVirtualNodesInput {
5861	s.NextToken = &v
5862	return s
5863}
5864
5865type ListVirtualNodesOutput struct {
5866	_ struct{} `type:"structure"`
5867
5868	NextToken *string `locationName:"nextToken" type:"string"`
5869
5870	// VirtualNodes is a required field
5871	VirtualNodes []*VirtualNodeRef `locationName:"virtualNodes" type:"list" required:"true"`
5872}
5873
5874// String returns the string representation
5875func (s ListVirtualNodesOutput) String() string {
5876	return awsutil.Prettify(s)
5877}
5878
5879// GoString returns the string representation
5880func (s ListVirtualNodesOutput) GoString() string {
5881	return s.String()
5882}
5883
5884// SetNextToken sets the NextToken field's value.
5885func (s *ListVirtualNodesOutput) SetNextToken(v string) *ListVirtualNodesOutput {
5886	s.NextToken = &v
5887	return s
5888}
5889
5890// SetVirtualNodes sets the VirtualNodes field's value.
5891func (s *ListVirtualNodesOutput) SetVirtualNodes(v []*VirtualNodeRef) *ListVirtualNodesOutput {
5892	s.VirtualNodes = v
5893	return s
5894}
5895
5896type ListVirtualRoutersInput struct {
5897	_ struct{} `type:"structure"`
5898
5899	Limit *int64 `location:"querystring" locationName:"limit" min:"1" type:"integer"`
5900
5901	// MeshName is a required field
5902	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
5903
5904	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
5905}
5906
5907// String returns the string representation
5908func (s ListVirtualRoutersInput) String() string {
5909	return awsutil.Prettify(s)
5910}
5911
5912// GoString returns the string representation
5913func (s ListVirtualRoutersInput) GoString() string {
5914	return s.String()
5915}
5916
5917// Validate inspects the fields of the type to determine if they are valid.
5918func (s *ListVirtualRoutersInput) Validate() error {
5919	invalidParams := request.ErrInvalidParams{Context: "ListVirtualRoutersInput"}
5920	if s.Limit != nil && *s.Limit < 1 {
5921		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
5922	}
5923	if s.MeshName == nil {
5924		invalidParams.Add(request.NewErrParamRequired("MeshName"))
5925	}
5926	if s.MeshName != nil && len(*s.MeshName) < 1 {
5927		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
5928	}
5929
5930	if invalidParams.Len() > 0 {
5931		return invalidParams
5932	}
5933	return nil
5934}
5935
5936// SetLimit sets the Limit field's value.
5937func (s *ListVirtualRoutersInput) SetLimit(v int64) *ListVirtualRoutersInput {
5938	s.Limit = &v
5939	return s
5940}
5941
5942// SetMeshName sets the MeshName field's value.
5943func (s *ListVirtualRoutersInput) SetMeshName(v string) *ListVirtualRoutersInput {
5944	s.MeshName = &v
5945	return s
5946}
5947
5948// SetNextToken sets the NextToken field's value.
5949func (s *ListVirtualRoutersInput) SetNextToken(v string) *ListVirtualRoutersInput {
5950	s.NextToken = &v
5951	return s
5952}
5953
5954type ListVirtualRoutersOutput struct {
5955	_ struct{} `type:"structure"`
5956
5957	NextToken *string `locationName:"nextToken" type:"string"`
5958
5959	// VirtualRouters is a required field
5960	VirtualRouters []*VirtualRouterRef `locationName:"virtualRouters" type:"list" required:"true"`
5961}
5962
5963// String returns the string representation
5964func (s ListVirtualRoutersOutput) String() string {
5965	return awsutil.Prettify(s)
5966}
5967
5968// GoString returns the string representation
5969func (s ListVirtualRoutersOutput) GoString() string {
5970	return s.String()
5971}
5972
5973// SetNextToken sets the NextToken field's value.
5974func (s *ListVirtualRoutersOutput) SetNextToken(v string) *ListVirtualRoutersOutput {
5975	s.NextToken = &v
5976	return s
5977}
5978
5979// SetVirtualRouters sets the VirtualRouters field's value.
5980func (s *ListVirtualRoutersOutput) SetVirtualRouters(v []*VirtualRouterRef) *ListVirtualRoutersOutput {
5981	s.VirtualRouters = v
5982	return s
5983}
5984
5985type ListVirtualServicesInput struct {
5986	_ struct{} `type:"structure"`
5987
5988	Limit *int64 `location:"querystring" locationName:"limit" min:"1" type:"integer"`
5989
5990	// MeshName is a required field
5991	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
5992
5993	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
5994}
5995
5996// String returns the string representation
5997func (s ListVirtualServicesInput) String() string {
5998	return awsutil.Prettify(s)
5999}
6000
6001// GoString returns the string representation
6002func (s ListVirtualServicesInput) GoString() string {
6003	return s.String()
6004}
6005
6006// Validate inspects the fields of the type to determine if they are valid.
6007func (s *ListVirtualServicesInput) Validate() error {
6008	invalidParams := request.ErrInvalidParams{Context: "ListVirtualServicesInput"}
6009	if s.Limit != nil && *s.Limit < 1 {
6010		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
6011	}
6012	if s.MeshName == nil {
6013		invalidParams.Add(request.NewErrParamRequired("MeshName"))
6014	}
6015	if s.MeshName != nil && len(*s.MeshName) < 1 {
6016		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
6017	}
6018
6019	if invalidParams.Len() > 0 {
6020		return invalidParams
6021	}
6022	return nil
6023}
6024
6025// SetLimit sets the Limit field's value.
6026func (s *ListVirtualServicesInput) SetLimit(v int64) *ListVirtualServicesInput {
6027	s.Limit = &v
6028	return s
6029}
6030
6031// SetMeshName sets the MeshName field's value.
6032func (s *ListVirtualServicesInput) SetMeshName(v string) *ListVirtualServicesInput {
6033	s.MeshName = &v
6034	return s
6035}
6036
6037// SetNextToken sets the NextToken field's value.
6038func (s *ListVirtualServicesInput) SetNextToken(v string) *ListVirtualServicesInput {
6039	s.NextToken = &v
6040	return s
6041}
6042
6043type ListVirtualServicesOutput struct {
6044	_ struct{} `type:"structure"`
6045
6046	NextToken *string `locationName:"nextToken" type:"string"`
6047
6048	// VirtualServices is a required field
6049	VirtualServices []*VirtualServiceRef `locationName:"virtualServices" type:"list" required:"true"`
6050}
6051
6052// String returns the string representation
6053func (s ListVirtualServicesOutput) String() string {
6054	return awsutil.Prettify(s)
6055}
6056
6057// GoString returns the string representation
6058func (s ListVirtualServicesOutput) GoString() string {
6059	return s.String()
6060}
6061
6062// SetNextToken sets the NextToken field's value.
6063func (s *ListVirtualServicesOutput) SetNextToken(v string) *ListVirtualServicesOutput {
6064	s.NextToken = &v
6065	return s
6066}
6067
6068// SetVirtualServices sets the VirtualServices field's value.
6069func (s *ListVirtualServicesOutput) SetVirtualServices(v []*VirtualServiceRef) *ListVirtualServicesOutput {
6070	s.VirtualServices = v
6071	return s
6072}
6073
6074// An object representing a listener for a virtual node.
6075type Listener struct {
6076	_ struct{} `type:"structure"`
6077
6078	// An object representing the health check policy for a virtual node's listener.
6079	HealthCheck *HealthCheckPolicy `locationName:"healthCheck" type:"structure"`
6080
6081	// An object representing a virtual node or virtual router listener port mapping.
6082	//
6083	// PortMapping is a required field
6084	PortMapping *PortMapping `locationName:"portMapping" type:"structure" required:"true"`
6085}
6086
6087// String returns the string representation
6088func (s Listener) String() string {
6089	return awsutil.Prettify(s)
6090}
6091
6092// GoString returns the string representation
6093func (s Listener) GoString() string {
6094	return s.String()
6095}
6096
6097// Validate inspects the fields of the type to determine if they are valid.
6098func (s *Listener) Validate() error {
6099	invalidParams := request.ErrInvalidParams{Context: "Listener"}
6100	if s.PortMapping == nil {
6101		invalidParams.Add(request.NewErrParamRequired("PortMapping"))
6102	}
6103	if s.HealthCheck != nil {
6104		if err := s.HealthCheck.Validate(); err != nil {
6105			invalidParams.AddNested("HealthCheck", err.(request.ErrInvalidParams))
6106		}
6107	}
6108	if s.PortMapping != nil {
6109		if err := s.PortMapping.Validate(); err != nil {
6110			invalidParams.AddNested("PortMapping", err.(request.ErrInvalidParams))
6111		}
6112	}
6113
6114	if invalidParams.Len() > 0 {
6115		return invalidParams
6116	}
6117	return nil
6118}
6119
6120// SetHealthCheck sets the HealthCheck field's value.
6121func (s *Listener) SetHealthCheck(v *HealthCheckPolicy) *Listener {
6122	s.HealthCheck = v
6123	return s
6124}
6125
6126// SetPortMapping sets the PortMapping field's value.
6127func (s *Listener) SetPortMapping(v *PortMapping) *Listener {
6128	s.PortMapping = v
6129	return s
6130}
6131
6132// An object representing the logging information for a virtual node.
6133type Logging struct {
6134	_ struct{} `type:"structure"`
6135
6136	// An object representing the access logging information for a virtual node.
6137	AccessLog *AccessLog `locationName:"accessLog" type:"structure"`
6138}
6139
6140// String returns the string representation
6141func (s Logging) String() string {
6142	return awsutil.Prettify(s)
6143}
6144
6145// GoString returns the string representation
6146func (s Logging) GoString() string {
6147	return s.String()
6148}
6149
6150// Validate inspects the fields of the type to determine if they are valid.
6151func (s *Logging) Validate() error {
6152	invalidParams := request.ErrInvalidParams{Context: "Logging"}
6153	if s.AccessLog != nil {
6154		if err := s.AccessLog.Validate(); err != nil {
6155			invalidParams.AddNested("AccessLog", err.(request.ErrInvalidParams))
6156		}
6157	}
6158
6159	if invalidParams.Len() > 0 {
6160		return invalidParams
6161	}
6162	return nil
6163}
6164
6165// SetAccessLog sets the AccessLog field's value.
6166func (s *Logging) SetAccessLog(v *AccessLog) *Logging {
6167	s.AccessLog = v
6168	return s
6169}
6170
6171// The range of values to match on. The first character of the range is included
6172// in the range, though the last character is not. For example, if the range
6173// specified were 1-100, only values 1-99 would be matched.
6174type MatchRange struct {
6175	_ struct{} `type:"structure"`
6176
6177	// End is a required field
6178	End *int64 `locationName:"end" type:"long" required:"true"`
6179
6180	// Start is a required field
6181	Start *int64 `locationName:"start" type:"long" required:"true"`
6182}
6183
6184// String returns the string representation
6185func (s MatchRange) String() string {
6186	return awsutil.Prettify(s)
6187}
6188
6189// GoString returns the string representation
6190func (s MatchRange) GoString() string {
6191	return s.String()
6192}
6193
6194// Validate inspects the fields of the type to determine if they are valid.
6195func (s *MatchRange) Validate() error {
6196	invalidParams := request.ErrInvalidParams{Context: "MatchRange"}
6197	if s.End == nil {
6198		invalidParams.Add(request.NewErrParamRequired("End"))
6199	}
6200	if s.Start == nil {
6201		invalidParams.Add(request.NewErrParamRequired("Start"))
6202	}
6203
6204	if invalidParams.Len() > 0 {
6205		return invalidParams
6206	}
6207	return nil
6208}
6209
6210// SetEnd sets the End field's value.
6211func (s *MatchRange) SetEnd(v int64) *MatchRange {
6212	s.End = &v
6213	return s
6214}
6215
6216// SetStart sets the Start field's value.
6217func (s *MatchRange) SetStart(v int64) *MatchRange {
6218	s.Start = &v
6219	return s
6220}
6221
6222// An object representing a service mesh returned by a describe operation.
6223type MeshData struct {
6224	_ struct{} `type:"structure"`
6225
6226	// MeshName is a required field
6227	MeshName *string `locationName:"meshName" min:"1" type:"string" required:"true"`
6228
6229	// An object representing metadata for a resource.
6230	//
6231	// Metadata is a required field
6232	Metadata *ResourceMetadata `locationName:"metadata" type:"structure" required:"true"`
6233
6234	// An object representing the specification of a service mesh.
6235	//
6236	// Spec is a required field
6237	Spec *MeshSpec `locationName:"spec" type:"structure" required:"true"`
6238
6239	// An object representing the status of a service mesh.
6240	//
6241	// Status is a required field
6242	Status *MeshStatus `locationName:"status" type:"structure" required:"true"`
6243}
6244
6245// String returns the string representation
6246func (s MeshData) String() string {
6247	return awsutil.Prettify(s)
6248}
6249
6250// GoString returns the string representation
6251func (s MeshData) GoString() string {
6252	return s.String()
6253}
6254
6255// SetMeshName sets the MeshName field's value.
6256func (s *MeshData) SetMeshName(v string) *MeshData {
6257	s.MeshName = &v
6258	return s
6259}
6260
6261// SetMetadata sets the Metadata field's value.
6262func (s *MeshData) SetMetadata(v *ResourceMetadata) *MeshData {
6263	s.Metadata = v
6264	return s
6265}
6266
6267// SetSpec sets the Spec field's value.
6268func (s *MeshData) SetSpec(v *MeshSpec) *MeshData {
6269	s.Spec = v
6270	return s
6271}
6272
6273// SetStatus sets the Status field's value.
6274func (s *MeshData) SetStatus(v *MeshStatus) *MeshData {
6275	s.Status = v
6276	return s
6277}
6278
6279// An object representing a service mesh returned by a list operation.
6280type MeshRef struct {
6281	_ struct{} `type:"structure"`
6282
6283	// Arn is a required field
6284	Arn *string `locationName:"arn" type:"string" required:"true"`
6285
6286	// MeshName is a required field
6287	MeshName *string `locationName:"meshName" min:"1" type:"string" required:"true"`
6288}
6289
6290// String returns the string representation
6291func (s MeshRef) String() string {
6292	return awsutil.Prettify(s)
6293}
6294
6295// GoString returns the string representation
6296func (s MeshRef) GoString() string {
6297	return s.String()
6298}
6299
6300// SetArn sets the Arn field's value.
6301func (s *MeshRef) SetArn(v string) *MeshRef {
6302	s.Arn = &v
6303	return s
6304}
6305
6306// SetMeshName sets the MeshName field's value.
6307func (s *MeshRef) SetMeshName(v string) *MeshRef {
6308	s.MeshName = &v
6309	return s
6310}
6311
6312// An object representing the specification of a service mesh.
6313type MeshSpec struct {
6314	_ struct{} `type:"structure"`
6315
6316	// An object representing the egress filter rules for a service mesh.
6317	EgressFilter *EgressFilter `locationName:"egressFilter" type:"structure"`
6318}
6319
6320// String returns the string representation
6321func (s MeshSpec) String() string {
6322	return awsutil.Prettify(s)
6323}
6324
6325// GoString returns the string representation
6326func (s MeshSpec) GoString() string {
6327	return s.String()
6328}
6329
6330// Validate inspects the fields of the type to determine if they are valid.
6331func (s *MeshSpec) Validate() error {
6332	invalidParams := request.ErrInvalidParams{Context: "MeshSpec"}
6333	if s.EgressFilter != nil {
6334		if err := s.EgressFilter.Validate(); err != nil {
6335			invalidParams.AddNested("EgressFilter", err.(request.ErrInvalidParams))
6336		}
6337	}
6338
6339	if invalidParams.Len() > 0 {
6340		return invalidParams
6341	}
6342	return nil
6343}
6344
6345// SetEgressFilter sets the EgressFilter field's value.
6346func (s *MeshSpec) SetEgressFilter(v *EgressFilter) *MeshSpec {
6347	s.EgressFilter = v
6348	return s
6349}
6350
6351// An object representing the status of a service mesh.
6352type MeshStatus struct {
6353	_ struct{} `type:"structure"`
6354
6355	Status *string `locationName:"status" type:"string" enum:"MeshStatusCode"`
6356}
6357
6358// String returns the string representation
6359func (s MeshStatus) String() string {
6360	return awsutil.Prettify(s)
6361}
6362
6363// GoString returns the string representation
6364func (s MeshStatus) GoString() string {
6365	return s.String()
6366}
6367
6368// SetStatus sets the Status field's value.
6369func (s *MeshStatus) SetStatus(v string) *MeshStatus {
6370	s.Status = &v
6371	return s
6372}
6373
6374// An object representing a virtual node or virtual router listener port mapping.
6375type PortMapping struct {
6376	_ struct{} `type:"structure"`
6377
6378	// Port is a required field
6379	Port *int64 `locationName:"port" min:"1" type:"integer" required:"true"`
6380
6381	// Protocol is a required field
6382	Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"PortProtocol"`
6383}
6384
6385// String returns the string representation
6386func (s PortMapping) String() string {
6387	return awsutil.Prettify(s)
6388}
6389
6390// GoString returns the string representation
6391func (s PortMapping) GoString() string {
6392	return s.String()
6393}
6394
6395// Validate inspects the fields of the type to determine if they are valid.
6396func (s *PortMapping) Validate() error {
6397	invalidParams := request.ErrInvalidParams{Context: "PortMapping"}
6398	if s.Port == nil {
6399		invalidParams.Add(request.NewErrParamRequired("Port"))
6400	}
6401	if s.Port != nil && *s.Port < 1 {
6402		invalidParams.Add(request.NewErrParamMinValue("Port", 1))
6403	}
6404	if s.Protocol == nil {
6405		invalidParams.Add(request.NewErrParamRequired("Protocol"))
6406	}
6407
6408	if invalidParams.Len() > 0 {
6409		return invalidParams
6410	}
6411	return nil
6412}
6413
6414// SetPort sets the Port field's value.
6415func (s *PortMapping) SetPort(v int64) *PortMapping {
6416	s.Port = &v
6417	return s
6418}
6419
6420// SetProtocol sets the Protocol field's value.
6421func (s *PortMapping) SetProtocol(v string) *PortMapping {
6422	s.Protocol = &v
6423	return s
6424}
6425
6426// An object representing metadata for a resource.
6427type ResourceMetadata struct {
6428	_ struct{} `type:"structure"`
6429
6430	// Arn is a required field
6431	Arn *string `locationName:"arn" type:"string" required:"true"`
6432
6433	// CreatedAt is a required field
6434	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`
6435
6436	// LastUpdatedAt is a required field
6437	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp" required:"true"`
6438
6439	// Uid is a required field
6440	Uid *string `locationName:"uid" type:"string" required:"true"`
6441
6442	// Version is a required field
6443	Version *int64 `locationName:"version" type:"long" required:"true"`
6444}
6445
6446// String returns the string representation
6447func (s ResourceMetadata) String() string {
6448	return awsutil.Prettify(s)
6449}
6450
6451// GoString returns the string representation
6452func (s ResourceMetadata) GoString() string {
6453	return s.String()
6454}
6455
6456// SetArn sets the Arn field's value.
6457func (s *ResourceMetadata) SetArn(v string) *ResourceMetadata {
6458	s.Arn = &v
6459	return s
6460}
6461
6462// SetCreatedAt sets the CreatedAt field's value.
6463func (s *ResourceMetadata) SetCreatedAt(v time.Time) *ResourceMetadata {
6464	s.CreatedAt = &v
6465	return s
6466}
6467
6468// SetLastUpdatedAt sets the LastUpdatedAt field's value.
6469func (s *ResourceMetadata) SetLastUpdatedAt(v time.Time) *ResourceMetadata {
6470	s.LastUpdatedAt = &v
6471	return s
6472}
6473
6474// SetUid sets the Uid field's value.
6475func (s *ResourceMetadata) SetUid(v string) *ResourceMetadata {
6476	s.Uid = &v
6477	return s
6478}
6479
6480// SetVersion sets the Version field's value.
6481func (s *ResourceMetadata) SetVersion(v int64) *ResourceMetadata {
6482	s.Version = &v
6483	return s
6484}
6485
6486// An object representing a route returned by a describe operation.
6487type RouteData struct {
6488	_ struct{} `type:"structure"`
6489
6490	// MeshName is a required field
6491	MeshName *string `locationName:"meshName" min:"1" type:"string" required:"true"`
6492
6493	// An object representing metadata for a resource.
6494	//
6495	// Metadata is a required field
6496	Metadata *ResourceMetadata `locationName:"metadata" type:"structure" required:"true"`
6497
6498	// RouteName is a required field
6499	RouteName *string `locationName:"routeName" min:"1" type:"string" required:"true"`
6500
6501	// An object representing the specification of a route.
6502	//
6503	// Spec is a required field
6504	Spec *RouteSpec `locationName:"spec" type:"structure" required:"true"`
6505
6506	// An object representing the current status of a route.
6507	//
6508	// Status is a required field
6509	Status *RouteStatus `locationName:"status" type:"structure" required:"true"`
6510
6511	// VirtualRouterName is a required field
6512	VirtualRouterName *string `locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
6513}
6514
6515// String returns the string representation
6516func (s RouteData) String() string {
6517	return awsutil.Prettify(s)
6518}
6519
6520// GoString returns the string representation
6521func (s RouteData) GoString() string {
6522	return s.String()
6523}
6524
6525// SetMeshName sets the MeshName field's value.
6526func (s *RouteData) SetMeshName(v string) *RouteData {
6527	s.MeshName = &v
6528	return s
6529}
6530
6531// SetMetadata sets the Metadata field's value.
6532func (s *RouteData) SetMetadata(v *ResourceMetadata) *RouteData {
6533	s.Metadata = v
6534	return s
6535}
6536
6537// SetRouteName sets the RouteName field's value.
6538func (s *RouteData) SetRouteName(v string) *RouteData {
6539	s.RouteName = &v
6540	return s
6541}
6542
6543// SetSpec sets the Spec field's value.
6544func (s *RouteData) SetSpec(v *RouteSpec) *RouteData {
6545	s.Spec = v
6546	return s
6547}
6548
6549// SetStatus sets the Status field's value.
6550func (s *RouteData) SetStatus(v *RouteStatus) *RouteData {
6551	s.Status = v
6552	return s
6553}
6554
6555// SetVirtualRouterName sets the VirtualRouterName field's value.
6556func (s *RouteData) SetVirtualRouterName(v string) *RouteData {
6557	s.VirtualRouterName = &v
6558	return s
6559}
6560
6561// An object representing a route returned by a list operation.
6562type RouteRef struct {
6563	_ struct{} `type:"structure"`
6564
6565	// Arn is a required field
6566	Arn *string `locationName:"arn" type:"string" required:"true"`
6567
6568	// MeshName is a required field
6569	MeshName *string `locationName:"meshName" min:"1" type:"string" required:"true"`
6570
6571	// RouteName is a required field
6572	RouteName *string `locationName:"routeName" min:"1" type:"string" required:"true"`
6573
6574	// VirtualRouterName is a required field
6575	VirtualRouterName *string `locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
6576}
6577
6578// String returns the string representation
6579func (s RouteRef) String() string {
6580	return awsutil.Prettify(s)
6581}
6582
6583// GoString returns the string representation
6584func (s RouteRef) GoString() string {
6585	return s.String()
6586}
6587
6588// SetArn sets the Arn field's value.
6589func (s *RouteRef) SetArn(v string) *RouteRef {
6590	s.Arn = &v
6591	return s
6592}
6593
6594// SetMeshName sets the MeshName field's value.
6595func (s *RouteRef) SetMeshName(v string) *RouteRef {
6596	s.MeshName = &v
6597	return s
6598}
6599
6600// SetRouteName sets the RouteName field's value.
6601func (s *RouteRef) SetRouteName(v string) *RouteRef {
6602	s.RouteName = &v
6603	return s
6604}
6605
6606// SetVirtualRouterName sets the VirtualRouterName field's value.
6607func (s *RouteRef) SetVirtualRouterName(v string) *RouteRef {
6608	s.VirtualRouterName = &v
6609	return s
6610}
6611
6612// An object representing the specification of a route.
6613type RouteSpec struct {
6614	_ struct{} `type:"structure"`
6615
6616	// An object representing the HTTP routing specification for a route.
6617	HttpRoute *HttpRoute `locationName:"httpRoute" type:"structure"`
6618
6619	Priority *int64 `locationName:"priority" type:"integer"`
6620
6621	// An object representing the TCP routing specification for a route.
6622	TcpRoute *TcpRoute `locationName:"tcpRoute" type:"structure"`
6623}
6624
6625// String returns the string representation
6626func (s RouteSpec) String() string {
6627	return awsutil.Prettify(s)
6628}
6629
6630// GoString returns the string representation
6631func (s RouteSpec) GoString() string {
6632	return s.String()
6633}
6634
6635// Validate inspects the fields of the type to determine if they are valid.
6636func (s *RouteSpec) Validate() error {
6637	invalidParams := request.ErrInvalidParams{Context: "RouteSpec"}
6638	if s.HttpRoute != nil {
6639		if err := s.HttpRoute.Validate(); err != nil {
6640			invalidParams.AddNested("HttpRoute", err.(request.ErrInvalidParams))
6641		}
6642	}
6643	if s.TcpRoute != nil {
6644		if err := s.TcpRoute.Validate(); err != nil {
6645			invalidParams.AddNested("TcpRoute", err.(request.ErrInvalidParams))
6646		}
6647	}
6648
6649	if invalidParams.Len() > 0 {
6650		return invalidParams
6651	}
6652	return nil
6653}
6654
6655// SetHttpRoute sets the HttpRoute field's value.
6656func (s *RouteSpec) SetHttpRoute(v *HttpRoute) *RouteSpec {
6657	s.HttpRoute = v
6658	return s
6659}
6660
6661// SetPriority sets the Priority field's value.
6662func (s *RouteSpec) SetPriority(v int64) *RouteSpec {
6663	s.Priority = &v
6664	return s
6665}
6666
6667// SetTcpRoute sets the TcpRoute field's value.
6668func (s *RouteSpec) SetTcpRoute(v *TcpRoute) *RouteSpec {
6669	s.TcpRoute = v
6670	return s
6671}
6672
6673// An object representing the current status of a route.
6674type RouteStatus struct {
6675	_ struct{} `type:"structure"`
6676
6677	// Status is a required field
6678	Status *string `locationName:"status" type:"string" required:"true" enum:"RouteStatusCode"`
6679}
6680
6681// String returns the string representation
6682func (s RouteStatus) String() string {
6683	return awsutil.Prettify(s)
6684}
6685
6686// GoString returns the string representation
6687func (s RouteStatus) GoString() string {
6688	return s.String()
6689}
6690
6691// SetStatus sets the Status field's value.
6692func (s *RouteStatus) SetStatus(v string) *RouteStatus {
6693	s.Status = &v
6694	return s
6695}
6696
6697// An object representing the service discovery information for a virtual node.
6698type ServiceDiscovery struct {
6699	_ struct{} `type:"structure"`
6700
6701	// An object representing the AWS Cloud Map service discovery information for
6702	// your virtual node.
6703	AwsCloudMap *AwsCloudMapServiceDiscovery `locationName:"awsCloudMap" type:"structure"`
6704
6705	// An object representing the DNS service discovery information for your virtual
6706	// node.
6707	Dns *DnsServiceDiscovery `locationName:"dns" type:"structure"`
6708}
6709
6710// String returns the string representation
6711func (s ServiceDiscovery) String() string {
6712	return awsutil.Prettify(s)
6713}
6714
6715// GoString returns the string representation
6716func (s ServiceDiscovery) GoString() string {
6717	return s.String()
6718}
6719
6720// Validate inspects the fields of the type to determine if they are valid.
6721func (s *ServiceDiscovery) Validate() error {
6722	invalidParams := request.ErrInvalidParams{Context: "ServiceDiscovery"}
6723	if s.AwsCloudMap != nil {
6724		if err := s.AwsCloudMap.Validate(); err != nil {
6725			invalidParams.AddNested("AwsCloudMap", err.(request.ErrInvalidParams))
6726		}
6727	}
6728	if s.Dns != nil {
6729		if err := s.Dns.Validate(); err != nil {
6730			invalidParams.AddNested("Dns", err.(request.ErrInvalidParams))
6731		}
6732	}
6733
6734	if invalidParams.Len() > 0 {
6735		return invalidParams
6736	}
6737	return nil
6738}
6739
6740// SetAwsCloudMap sets the AwsCloudMap field's value.
6741func (s *ServiceDiscovery) SetAwsCloudMap(v *AwsCloudMapServiceDiscovery) *ServiceDiscovery {
6742	s.AwsCloudMap = v
6743	return s
6744}
6745
6746// SetDns sets the Dns field's value.
6747func (s *ServiceDiscovery) SetDns(v *DnsServiceDiscovery) *ServiceDiscovery {
6748	s.Dns = v
6749	return s
6750}
6751
6752// Optional metadata that you apply to a resource to assist with categorization
6753// and organization. Each tag consists of a key and an optional value, both
6754// of which you define. Tag keys can have a maximum character length of 128
6755// characters, and tag values can have a maximum length of 256 characters.
6756type TagRef struct {
6757	_ struct{} `type:"structure"`
6758
6759	// Key is a required field
6760	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
6761
6762	Value *string `locationName:"value" type:"string"`
6763}
6764
6765// String returns the string representation
6766func (s TagRef) String() string {
6767	return awsutil.Prettify(s)
6768}
6769
6770// GoString returns the string representation
6771func (s TagRef) GoString() string {
6772	return s.String()
6773}
6774
6775// Validate inspects the fields of the type to determine if they are valid.
6776func (s *TagRef) Validate() error {
6777	invalidParams := request.ErrInvalidParams{Context: "TagRef"}
6778	if s.Key == nil {
6779		invalidParams.Add(request.NewErrParamRequired("Key"))
6780	}
6781	if s.Key != nil && len(*s.Key) < 1 {
6782		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
6783	}
6784
6785	if invalidParams.Len() > 0 {
6786		return invalidParams
6787	}
6788	return nil
6789}
6790
6791// SetKey sets the Key field's value.
6792func (s *TagRef) SetKey(v string) *TagRef {
6793	s.Key = &v
6794	return s
6795}
6796
6797// SetValue sets the Value field's value.
6798func (s *TagRef) SetValue(v string) *TagRef {
6799	s.Value = &v
6800	return s
6801}
6802
6803type TagResourceInput struct {
6804	_ struct{} `type:"structure"`
6805
6806	// ResourceArn is a required field
6807	ResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string" required:"true"`
6808
6809	// Tags is a required field
6810	Tags []*TagRef `locationName:"tags" type:"list" required:"true"`
6811}
6812
6813// String returns the string representation
6814func (s TagResourceInput) String() string {
6815	return awsutil.Prettify(s)
6816}
6817
6818// GoString returns the string representation
6819func (s TagResourceInput) GoString() string {
6820	return s.String()
6821}
6822
6823// Validate inspects the fields of the type to determine if they are valid.
6824func (s *TagResourceInput) Validate() error {
6825	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
6826	if s.ResourceArn == nil {
6827		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6828	}
6829	if s.Tags == nil {
6830		invalidParams.Add(request.NewErrParamRequired("Tags"))
6831	}
6832	if s.Tags != nil {
6833		for i, v := range s.Tags {
6834			if v == nil {
6835				continue
6836			}
6837			if err := v.Validate(); err != nil {
6838				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6839			}
6840		}
6841	}
6842
6843	if invalidParams.Len() > 0 {
6844		return invalidParams
6845	}
6846	return nil
6847}
6848
6849// SetResourceArn sets the ResourceArn field's value.
6850func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
6851	s.ResourceArn = &v
6852	return s
6853}
6854
6855// SetTags sets the Tags field's value.
6856func (s *TagResourceInput) SetTags(v []*TagRef) *TagResourceInput {
6857	s.Tags = v
6858	return s
6859}
6860
6861type TagResourceOutput struct {
6862	_ struct{} `type:"structure"`
6863}
6864
6865// String returns the string representation
6866func (s TagResourceOutput) String() string {
6867	return awsutil.Prettify(s)
6868}
6869
6870// GoString returns the string representation
6871func (s TagResourceOutput) GoString() string {
6872	return s.String()
6873}
6874
6875// An object representing the TCP routing specification for a route.
6876type TcpRoute struct {
6877	_ struct{} `type:"structure"`
6878
6879	// An object representing the traffic distribution requirements for matched
6880	// TCP requests.
6881	//
6882	// Action is a required field
6883	Action *TcpRouteAction `locationName:"action" type:"structure" required:"true"`
6884}
6885
6886// String returns the string representation
6887func (s TcpRoute) String() string {
6888	return awsutil.Prettify(s)
6889}
6890
6891// GoString returns the string representation
6892func (s TcpRoute) GoString() string {
6893	return s.String()
6894}
6895
6896// Validate inspects the fields of the type to determine if they are valid.
6897func (s *TcpRoute) Validate() error {
6898	invalidParams := request.ErrInvalidParams{Context: "TcpRoute"}
6899	if s.Action == nil {
6900		invalidParams.Add(request.NewErrParamRequired("Action"))
6901	}
6902	if s.Action != nil {
6903		if err := s.Action.Validate(); err != nil {
6904			invalidParams.AddNested("Action", err.(request.ErrInvalidParams))
6905		}
6906	}
6907
6908	if invalidParams.Len() > 0 {
6909		return invalidParams
6910	}
6911	return nil
6912}
6913
6914// SetAction sets the Action field's value.
6915func (s *TcpRoute) SetAction(v *TcpRouteAction) *TcpRoute {
6916	s.Action = v
6917	return s
6918}
6919
6920// An object representing the traffic distribution requirements for matched
6921// TCP requests.
6922type TcpRouteAction struct {
6923	_ struct{} `type:"structure"`
6924
6925	// WeightedTargets is a required field
6926	WeightedTargets []*WeightedTarget `locationName:"weightedTargets" min:"1" type:"list" required:"true"`
6927}
6928
6929// String returns the string representation
6930func (s TcpRouteAction) String() string {
6931	return awsutil.Prettify(s)
6932}
6933
6934// GoString returns the string representation
6935func (s TcpRouteAction) GoString() string {
6936	return s.String()
6937}
6938
6939// Validate inspects the fields of the type to determine if they are valid.
6940func (s *TcpRouteAction) Validate() error {
6941	invalidParams := request.ErrInvalidParams{Context: "TcpRouteAction"}
6942	if s.WeightedTargets == nil {
6943		invalidParams.Add(request.NewErrParamRequired("WeightedTargets"))
6944	}
6945	if s.WeightedTargets != nil && len(s.WeightedTargets) < 1 {
6946		invalidParams.Add(request.NewErrParamMinLen("WeightedTargets", 1))
6947	}
6948	if s.WeightedTargets != nil {
6949		for i, v := range s.WeightedTargets {
6950			if v == nil {
6951				continue
6952			}
6953			if err := v.Validate(); err != nil {
6954				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "WeightedTargets", i), err.(request.ErrInvalidParams))
6955			}
6956		}
6957	}
6958
6959	if invalidParams.Len() > 0 {
6960		return invalidParams
6961	}
6962	return nil
6963}
6964
6965// SetWeightedTargets sets the WeightedTargets field's value.
6966func (s *TcpRouteAction) SetWeightedTargets(v []*WeightedTarget) *TcpRouteAction {
6967	s.WeightedTargets = v
6968	return s
6969}
6970
6971type UntagResourceInput struct {
6972	_ struct{} `type:"structure"`
6973
6974	// ResourceArn is a required field
6975	ResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string" required:"true"`
6976
6977	// TagKeys is a required field
6978	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
6979}
6980
6981// String returns the string representation
6982func (s UntagResourceInput) String() string {
6983	return awsutil.Prettify(s)
6984}
6985
6986// GoString returns the string representation
6987func (s UntagResourceInput) GoString() string {
6988	return s.String()
6989}
6990
6991// Validate inspects the fields of the type to determine if they are valid.
6992func (s *UntagResourceInput) Validate() error {
6993	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
6994	if s.ResourceArn == nil {
6995		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6996	}
6997	if s.TagKeys == nil {
6998		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
6999	}
7000
7001	if invalidParams.Len() > 0 {
7002		return invalidParams
7003	}
7004	return nil
7005}
7006
7007// SetResourceArn sets the ResourceArn field's value.
7008func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
7009	s.ResourceArn = &v
7010	return s
7011}
7012
7013// SetTagKeys sets the TagKeys field's value.
7014func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
7015	s.TagKeys = v
7016	return s
7017}
7018
7019type UntagResourceOutput struct {
7020	_ struct{} `type:"structure"`
7021}
7022
7023// String returns the string representation
7024func (s UntagResourceOutput) String() string {
7025	return awsutil.Prettify(s)
7026}
7027
7028// GoString returns the string representation
7029func (s UntagResourceOutput) GoString() string {
7030	return s.String()
7031}
7032
7033type UpdateMeshInput struct {
7034	_ struct{} `type:"structure"`
7035
7036	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
7037
7038	// MeshName is a required field
7039	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
7040
7041	// An object representing the specification of a service mesh.
7042	Spec *MeshSpec `locationName:"spec" type:"structure"`
7043}
7044
7045// String returns the string representation
7046func (s UpdateMeshInput) String() string {
7047	return awsutil.Prettify(s)
7048}
7049
7050// GoString returns the string representation
7051func (s UpdateMeshInput) GoString() string {
7052	return s.String()
7053}
7054
7055// Validate inspects the fields of the type to determine if they are valid.
7056func (s *UpdateMeshInput) Validate() error {
7057	invalidParams := request.ErrInvalidParams{Context: "UpdateMeshInput"}
7058	if s.MeshName == nil {
7059		invalidParams.Add(request.NewErrParamRequired("MeshName"))
7060	}
7061	if s.MeshName != nil && len(*s.MeshName) < 1 {
7062		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
7063	}
7064	if s.Spec != nil {
7065		if err := s.Spec.Validate(); err != nil {
7066			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
7067		}
7068	}
7069
7070	if invalidParams.Len() > 0 {
7071		return invalidParams
7072	}
7073	return nil
7074}
7075
7076// SetClientToken sets the ClientToken field's value.
7077func (s *UpdateMeshInput) SetClientToken(v string) *UpdateMeshInput {
7078	s.ClientToken = &v
7079	return s
7080}
7081
7082// SetMeshName sets the MeshName field's value.
7083func (s *UpdateMeshInput) SetMeshName(v string) *UpdateMeshInput {
7084	s.MeshName = &v
7085	return s
7086}
7087
7088// SetSpec sets the Spec field's value.
7089func (s *UpdateMeshInput) SetSpec(v *MeshSpec) *UpdateMeshInput {
7090	s.Spec = v
7091	return s
7092}
7093
7094type UpdateMeshOutput struct {
7095	_ struct{} `type:"structure" payload:"Mesh"`
7096
7097	// An object representing a service mesh returned by a describe operation.
7098	//
7099	// Mesh is a required field
7100	Mesh *MeshData `locationName:"mesh" type:"structure" required:"true"`
7101}
7102
7103// String returns the string representation
7104func (s UpdateMeshOutput) String() string {
7105	return awsutil.Prettify(s)
7106}
7107
7108// GoString returns the string representation
7109func (s UpdateMeshOutput) GoString() string {
7110	return s.String()
7111}
7112
7113// SetMesh sets the Mesh field's value.
7114func (s *UpdateMeshOutput) SetMesh(v *MeshData) *UpdateMeshOutput {
7115	s.Mesh = v
7116	return s
7117}
7118
7119type UpdateRouteInput struct {
7120	_ struct{} `type:"structure"`
7121
7122	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
7123
7124	// MeshName is a required field
7125	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
7126
7127	// RouteName is a required field
7128	RouteName *string `location:"uri" locationName:"routeName" min:"1" type:"string" required:"true"`
7129
7130	// An object representing the specification of a route.
7131	//
7132	// Spec is a required field
7133	Spec *RouteSpec `locationName:"spec" type:"structure" required:"true"`
7134
7135	// VirtualRouterName is a required field
7136	VirtualRouterName *string `location:"uri" locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
7137}
7138
7139// String returns the string representation
7140func (s UpdateRouteInput) String() string {
7141	return awsutil.Prettify(s)
7142}
7143
7144// GoString returns the string representation
7145func (s UpdateRouteInput) GoString() string {
7146	return s.String()
7147}
7148
7149// Validate inspects the fields of the type to determine if they are valid.
7150func (s *UpdateRouteInput) Validate() error {
7151	invalidParams := request.ErrInvalidParams{Context: "UpdateRouteInput"}
7152	if s.MeshName == nil {
7153		invalidParams.Add(request.NewErrParamRequired("MeshName"))
7154	}
7155	if s.MeshName != nil && len(*s.MeshName) < 1 {
7156		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
7157	}
7158	if s.RouteName == nil {
7159		invalidParams.Add(request.NewErrParamRequired("RouteName"))
7160	}
7161	if s.RouteName != nil && len(*s.RouteName) < 1 {
7162		invalidParams.Add(request.NewErrParamMinLen("RouteName", 1))
7163	}
7164	if s.Spec == nil {
7165		invalidParams.Add(request.NewErrParamRequired("Spec"))
7166	}
7167	if s.VirtualRouterName == nil {
7168		invalidParams.Add(request.NewErrParamRequired("VirtualRouterName"))
7169	}
7170	if s.VirtualRouterName != nil && len(*s.VirtualRouterName) < 1 {
7171		invalidParams.Add(request.NewErrParamMinLen("VirtualRouterName", 1))
7172	}
7173	if s.Spec != nil {
7174		if err := s.Spec.Validate(); err != nil {
7175			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
7176		}
7177	}
7178
7179	if invalidParams.Len() > 0 {
7180		return invalidParams
7181	}
7182	return nil
7183}
7184
7185// SetClientToken sets the ClientToken field's value.
7186func (s *UpdateRouteInput) SetClientToken(v string) *UpdateRouteInput {
7187	s.ClientToken = &v
7188	return s
7189}
7190
7191// SetMeshName sets the MeshName field's value.
7192func (s *UpdateRouteInput) SetMeshName(v string) *UpdateRouteInput {
7193	s.MeshName = &v
7194	return s
7195}
7196
7197// SetRouteName sets the RouteName field's value.
7198func (s *UpdateRouteInput) SetRouteName(v string) *UpdateRouteInput {
7199	s.RouteName = &v
7200	return s
7201}
7202
7203// SetSpec sets the Spec field's value.
7204func (s *UpdateRouteInput) SetSpec(v *RouteSpec) *UpdateRouteInput {
7205	s.Spec = v
7206	return s
7207}
7208
7209// SetVirtualRouterName sets the VirtualRouterName field's value.
7210func (s *UpdateRouteInput) SetVirtualRouterName(v string) *UpdateRouteInput {
7211	s.VirtualRouterName = &v
7212	return s
7213}
7214
7215type UpdateRouteOutput struct {
7216	_ struct{} `type:"structure" payload:"Route"`
7217
7218	// An object representing a route returned by a describe operation.
7219	//
7220	// Route is a required field
7221	Route *RouteData `locationName:"route" type:"structure" required:"true"`
7222}
7223
7224// String returns the string representation
7225func (s UpdateRouteOutput) String() string {
7226	return awsutil.Prettify(s)
7227}
7228
7229// GoString returns the string representation
7230func (s UpdateRouteOutput) GoString() string {
7231	return s.String()
7232}
7233
7234// SetRoute sets the Route field's value.
7235func (s *UpdateRouteOutput) SetRoute(v *RouteData) *UpdateRouteOutput {
7236	s.Route = v
7237	return s
7238}
7239
7240type UpdateVirtualNodeInput struct {
7241	_ struct{} `type:"structure"`
7242
7243	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
7244
7245	// MeshName is a required field
7246	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
7247
7248	// An object representing the specification of a virtual node.
7249	//
7250	// Spec is a required field
7251	Spec *VirtualNodeSpec `locationName:"spec" type:"structure" required:"true"`
7252
7253	// VirtualNodeName is a required field
7254	VirtualNodeName *string `location:"uri" locationName:"virtualNodeName" min:"1" type:"string" required:"true"`
7255}
7256
7257// String returns the string representation
7258func (s UpdateVirtualNodeInput) String() string {
7259	return awsutil.Prettify(s)
7260}
7261
7262// GoString returns the string representation
7263func (s UpdateVirtualNodeInput) GoString() string {
7264	return s.String()
7265}
7266
7267// Validate inspects the fields of the type to determine if they are valid.
7268func (s *UpdateVirtualNodeInput) Validate() error {
7269	invalidParams := request.ErrInvalidParams{Context: "UpdateVirtualNodeInput"}
7270	if s.MeshName == nil {
7271		invalidParams.Add(request.NewErrParamRequired("MeshName"))
7272	}
7273	if s.MeshName != nil && len(*s.MeshName) < 1 {
7274		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
7275	}
7276	if s.Spec == nil {
7277		invalidParams.Add(request.NewErrParamRequired("Spec"))
7278	}
7279	if s.VirtualNodeName == nil {
7280		invalidParams.Add(request.NewErrParamRequired("VirtualNodeName"))
7281	}
7282	if s.VirtualNodeName != nil && len(*s.VirtualNodeName) < 1 {
7283		invalidParams.Add(request.NewErrParamMinLen("VirtualNodeName", 1))
7284	}
7285	if s.Spec != nil {
7286		if err := s.Spec.Validate(); err != nil {
7287			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
7288		}
7289	}
7290
7291	if invalidParams.Len() > 0 {
7292		return invalidParams
7293	}
7294	return nil
7295}
7296
7297// SetClientToken sets the ClientToken field's value.
7298func (s *UpdateVirtualNodeInput) SetClientToken(v string) *UpdateVirtualNodeInput {
7299	s.ClientToken = &v
7300	return s
7301}
7302
7303// SetMeshName sets the MeshName field's value.
7304func (s *UpdateVirtualNodeInput) SetMeshName(v string) *UpdateVirtualNodeInput {
7305	s.MeshName = &v
7306	return s
7307}
7308
7309// SetSpec sets the Spec field's value.
7310func (s *UpdateVirtualNodeInput) SetSpec(v *VirtualNodeSpec) *UpdateVirtualNodeInput {
7311	s.Spec = v
7312	return s
7313}
7314
7315// SetVirtualNodeName sets the VirtualNodeName field's value.
7316func (s *UpdateVirtualNodeInput) SetVirtualNodeName(v string) *UpdateVirtualNodeInput {
7317	s.VirtualNodeName = &v
7318	return s
7319}
7320
7321type UpdateVirtualNodeOutput struct {
7322	_ struct{} `type:"structure" payload:"VirtualNode"`
7323
7324	// An object representing a virtual node returned by a describe operation.
7325	//
7326	// VirtualNode is a required field
7327	VirtualNode *VirtualNodeData `locationName:"virtualNode" type:"structure" required:"true"`
7328}
7329
7330// String returns the string representation
7331func (s UpdateVirtualNodeOutput) String() string {
7332	return awsutil.Prettify(s)
7333}
7334
7335// GoString returns the string representation
7336func (s UpdateVirtualNodeOutput) GoString() string {
7337	return s.String()
7338}
7339
7340// SetVirtualNode sets the VirtualNode field's value.
7341func (s *UpdateVirtualNodeOutput) SetVirtualNode(v *VirtualNodeData) *UpdateVirtualNodeOutput {
7342	s.VirtualNode = v
7343	return s
7344}
7345
7346type UpdateVirtualRouterInput struct {
7347	_ struct{} `type:"structure"`
7348
7349	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
7350
7351	// MeshName is a required field
7352	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
7353
7354	// An object representing the specification of a virtual router.
7355	//
7356	// Spec is a required field
7357	Spec *VirtualRouterSpec `locationName:"spec" type:"structure" required:"true"`
7358
7359	// VirtualRouterName is a required field
7360	VirtualRouterName *string `location:"uri" locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
7361}
7362
7363// String returns the string representation
7364func (s UpdateVirtualRouterInput) String() string {
7365	return awsutil.Prettify(s)
7366}
7367
7368// GoString returns the string representation
7369func (s UpdateVirtualRouterInput) GoString() string {
7370	return s.String()
7371}
7372
7373// Validate inspects the fields of the type to determine if they are valid.
7374func (s *UpdateVirtualRouterInput) Validate() error {
7375	invalidParams := request.ErrInvalidParams{Context: "UpdateVirtualRouterInput"}
7376	if s.MeshName == nil {
7377		invalidParams.Add(request.NewErrParamRequired("MeshName"))
7378	}
7379	if s.MeshName != nil && len(*s.MeshName) < 1 {
7380		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
7381	}
7382	if s.Spec == nil {
7383		invalidParams.Add(request.NewErrParamRequired("Spec"))
7384	}
7385	if s.VirtualRouterName == nil {
7386		invalidParams.Add(request.NewErrParamRequired("VirtualRouterName"))
7387	}
7388	if s.VirtualRouterName != nil && len(*s.VirtualRouterName) < 1 {
7389		invalidParams.Add(request.NewErrParamMinLen("VirtualRouterName", 1))
7390	}
7391	if s.Spec != nil {
7392		if err := s.Spec.Validate(); err != nil {
7393			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
7394		}
7395	}
7396
7397	if invalidParams.Len() > 0 {
7398		return invalidParams
7399	}
7400	return nil
7401}
7402
7403// SetClientToken sets the ClientToken field's value.
7404func (s *UpdateVirtualRouterInput) SetClientToken(v string) *UpdateVirtualRouterInput {
7405	s.ClientToken = &v
7406	return s
7407}
7408
7409// SetMeshName sets the MeshName field's value.
7410func (s *UpdateVirtualRouterInput) SetMeshName(v string) *UpdateVirtualRouterInput {
7411	s.MeshName = &v
7412	return s
7413}
7414
7415// SetSpec sets the Spec field's value.
7416func (s *UpdateVirtualRouterInput) SetSpec(v *VirtualRouterSpec) *UpdateVirtualRouterInput {
7417	s.Spec = v
7418	return s
7419}
7420
7421// SetVirtualRouterName sets the VirtualRouterName field's value.
7422func (s *UpdateVirtualRouterInput) SetVirtualRouterName(v string) *UpdateVirtualRouterInput {
7423	s.VirtualRouterName = &v
7424	return s
7425}
7426
7427type UpdateVirtualRouterOutput struct {
7428	_ struct{} `type:"structure" payload:"VirtualRouter"`
7429
7430	// An object representing a virtual router returned by a describe operation.
7431	//
7432	// VirtualRouter is a required field
7433	VirtualRouter *VirtualRouterData `locationName:"virtualRouter" type:"structure" required:"true"`
7434}
7435
7436// String returns the string representation
7437func (s UpdateVirtualRouterOutput) String() string {
7438	return awsutil.Prettify(s)
7439}
7440
7441// GoString returns the string representation
7442func (s UpdateVirtualRouterOutput) GoString() string {
7443	return s.String()
7444}
7445
7446// SetVirtualRouter sets the VirtualRouter field's value.
7447func (s *UpdateVirtualRouterOutput) SetVirtualRouter(v *VirtualRouterData) *UpdateVirtualRouterOutput {
7448	s.VirtualRouter = v
7449	return s
7450}
7451
7452type UpdateVirtualServiceInput struct {
7453	_ struct{} `type:"structure"`
7454
7455	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
7456
7457	// MeshName is a required field
7458	MeshName *string `location:"uri" locationName:"meshName" min:"1" type:"string" required:"true"`
7459
7460	// An object representing the specification of a virtual service.
7461	//
7462	// Spec is a required field
7463	Spec *VirtualServiceSpec `locationName:"spec" type:"structure" required:"true"`
7464
7465	// VirtualServiceName is a required field
7466	VirtualServiceName *string `location:"uri" locationName:"virtualServiceName" type:"string" required:"true"`
7467}
7468
7469// String returns the string representation
7470func (s UpdateVirtualServiceInput) String() string {
7471	return awsutil.Prettify(s)
7472}
7473
7474// GoString returns the string representation
7475func (s UpdateVirtualServiceInput) GoString() string {
7476	return s.String()
7477}
7478
7479// Validate inspects the fields of the type to determine if they are valid.
7480func (s *UpdateVirtualServiceInput) Validate() error {
7481	invalidParams := request.ErrInvalidParams{Context: "UpdateVirtualServiceInput"}
7482	if s.MeshName == nil {
7483		invalidParams.Add(request.NewErrParamRequired("MeshName"))
7484	}
7485	if s.MeshName != nil && len(*s.MeshName) < 1 {
7486		invalidParams.Add(request.NewErrParamMinLen("MeshName", 1))
7487	}
7488	if s.Spec == nil {
7489		invalidParams.Add(request.NewErrParamRequired("Spec"))
7490	}
7491	if s.VirtualServiceName == nil {
7492		invalidParams.Add(request.NewErrParamRequired("VirtualServiceName"))
7493	}
7494	if s.VirtualServiceName != nil && len(*s.VirtualServiceName) < 1 {
7495		invalidParams.Add(request.NewErrParamMinLen("VirtualServiceName", 1))
7496	}
7497	if s.Spec != nil {
7498		if err := s.Spec.Validate(); err != nil {
7499			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
7500		}
7501	}
7502
7503	if invalidParams.Len() > 0 {
7504		return invalidParams
7505	}
7506	return nil
7507}
7508
7509// SetClientToken sets the ClientToken field's value.
7510func (s *UpdateVirtualServiceInput) SetClientToken(v string) *UpdateVirtualServiceInput {
7511	s.ClientToken = &v
7512	return s
7513}
7514
7515// SetMeshName sets the MeshName field's value.
7516func (s *UpdateVirtualServiceInput) SetMeshName(v string) *UpdateVirtualServiceInput {
7517	s.MeshName = &v
7518	return s
7519}
7520
7521// SetSpec sets the Spec field's value.
7522func (s *UpdateVirtualServiceInput) SetSpec(v *VirtualServiceSpec) *UpdateVirtualServiceInput {
7523	s.Spec = v
7524	return s
7525}
7526
7527// SetVirtualServiceName sets the VirtualServiceName field's value.
7528func (s *UpdateVirtualServiceInput) SetVirtualServiceName(v string) *UpdateVirtualServiceInput {
7529	s.VirtualServiceName = &v
7530	return s
7531}
7532
7533type UpdateVirtualServiceOutput struct {
7534	_ struct{} `type:"structure" payload:"VirtualService"`
7535
7536	// An object representing a virtual service returned by a describe operation.
7537	//
7538	// VirtualService is a required field
7539	VirtualService *VirtualServiceData `locationName:"virtualService" type:"structure" required:"true"`
7540}
7541
7542// String returns the string representation
7543func (s UpdateVirtualServiceOutput) String() string {
7544	return awsutil.Prettify(s)
7545}
7546
7547// GoString returns the string representation
7548func (s UpdateVirtualServiceOutput) GoString() string {
7549	return s.String()
7550}
7551
7552// SetVirtualService sets the VirtualService field's value.
7553func (s *UpdateVirtualServiceOutput) SetVirtualService(v *VirtualServiceData) *UpdateVirtualServiceOutput {
7554	s.VirtualService = v
7555	return s
7556}
7557
7558// An object representing a virtual node returned by a describe operation.
7559type VirtualNodeData struct {
7560	_ struct{} `type:"structure"`
7561
7562	// MeshName is a required field
7563	MeshName *string `locationName:"meshName" min:"1" type:"string" required:"true"`
7564
7565	// An object representing metadata for a resource.
7566	//
7567	// Metadata is a required field
7568	Metadata *ResourceMetadata `locationName:"metadata" type:"structure" required:"true"`
7569
7570	// An object representing the specification of a virtual node.
7571	//
7572	// Spec is a required field
7573	Spec *VirtualNodeSpec `locationName:"spec" type:"structure" required:"true"`
7574
7575	// An object representing the current status of the virtual node.
7576	//
7577	// Status is a required field
7578	Status *VirtualNodeStatus `locationName:"status" type:"structure" required:"true"`
7579
7580	// VirtualNodeName is a required field
7581	VirtualNodeName *string `locationName:"virtualNodeName" min:"1" type:"string" required:"true"`
7582}
7583
7584// String returns the string representation
7585func (s VirtualNodeData) String() string {
7586	return awsutil.Prettify(s)
7587}
7588
7589// GoString returns the string representation
7590func (s VirtualNodeData) GoString() string {
7591	return s.String()
7592}
7593
7594// SetMeshName sets the MeshName field's value.
7595func (s *VirtualNodeData) SetMeshName(v string) *VirtualNodeData {
7596	s.MeshName = &v
7597	return s
7598}
7599
7600// SetMetadata sets the Metadata field's value.
7601func (s *VirtualNodeData) SetMetadata(v *ResourceMetadata) *VirtualNodeData {
7602	s.Metadata = v
7603	return s
7604}
7605
7606// SetSpec sets the Spec field's value.
7607func (s *VirtualNodeData) SetSpec(v *VirtualNodeSpec) *VirtualNodeData {
7608	s.Spec = v
7609	return s
7610}
7611
7612// SetStatus sets the Status field's value.
7613func (s *VirtualNodeData) SetStatus(v *VirtualNodeStatus) *VirtualNodeData {
7614	s.Status = v
7615	return s
7616}
7617
7618// SetVirtualNodeName sets the VirtualNodeName field's value.
7619func (s *VirtualNodeData) SetVirtualNodeName(v string) *VirtualNodeData {
7620	s.VirtualNodeName = &v
7621	return s
7622}
7623
7624// An object representing a virtual node returned by a list operation.
7625type VirtualNodeRef struct {
7626	_ struct{} `type:"structure"`
7627
7628	// Arn is a required field
7629	Arn *string `locationName:"arn" type:"string" required:"true"`
7630
7631	// MeshName is a required field
7632	MeshName *string `locationName:"meshName" min:"1" type:"string" required:"true"`
7633
7634	// VirtualNodeName is a required field
7635	VirtualNodeName *string `locationName:"virtualNodeName" min:"1" type:"string" required:"true"`
7636}
7637
7638// String returns the string representation
7639func (s VirtualNodeRef) String() string {
7640	return awsutil.Prettify(s)
7641}
7642
7643// GoString returns the string representation
7644func (s VirtualNodeRef) GoString() string {
7645	return s.String()
7646}
7647
7648// SetArn sets the Arn field's value.
7649func (s *VirtualNodeRef) SetArn(v string) *VirtualNodeRef {
7650	s.Arn = &v
7651	return s
7652}
7653
7654// SetMeshName sets the MeshName field's value.
7655func (s *VirtualNodeRef) SetMeshName(v string) *VirtualNodeRef {
7656	s.MeshName = &v
7657	return s
7658}
7659
7660// SetVirtualNodeName sets the VirtualNodeName field's value.
7661func (s *VirtualNodeRef) SetVirtualNodeName(v string) *VirtualNodeRef {
7662	s.VirtualNodeName = &v
7663	return s
7664}
7665
7666// An object representing a virtual node service provider.
7667type VirtualNodeServiceProvider struct {
7668	_ struct{} `type:"structure"`
7669
7670	// VirtualNodeName is a required field
7671	VirtualNodeName *string `locationName:"virtualNodeName" min:"1" type:"string" required:"true"`
7672}
7673
7674// String returns the string representation
7675func (s VirtualNodeServiceProvider) String() string {
7676	return awsutil.Prettify(s)
7677}
7678
7679// GoString returns the string representation
7680func (s VirtualNodeServiceProvider) GoString() string {
7681	return s.String()
7682}
7683
7684// Validate inspects the fields of the type to determine if they are valid.
7685func (s *VirtualNodeServiceProvider) Validate() error {
7686	invalidParams := request.ErrInvalidParams{Context: "VirtualNodeServiceProvider"}
7687	if s.VirtualNodeName == nil {
7688		invalidParams.Add(request.NewErrParamRequired("VirtualNodeName"))
7689	}
7690	if s.VirtualNodeName != nil && len(*s.VirtualNodeName) < 1 {
7691		invalidParams.Add(request.NewErrParamMinLen("VirtualNodeName", 1))
7692	}
7693
7694	if invalidParams.Len() > 0 {
7695		return invalidParams
7696	}
7697	return nil
7698}
7699
7700// SetVirtualNodeName sets the VirtualNodeName field's value.
7701func (s *VirtualNodeServiceProvider) SetVirtualNodeName(v string) *VirtualNodeServiceProvider {
7702	s.VirtualNodeName = &v
7703	return s
7704}
7705
7706// An object representing the specification of a virtual node.
7707type VirtualNodeSpec struct {
7708	_ struct{} `type:"structure"`
7709
7710	Backends []*Backend `locationName:"backends" type:"list"`
7711
7712	Listeners []*Listener `locationName:"listeners" type:"list"`
7713
7714	// An object representing the logging information for a virtual node.
7715	Logging *Logging `locationName:"logging" type:"structure"`
7716
7717	// An object representing the service discovery information for a virtual node.
7718	ServiceDiscovery *ServiceDiscovery `locationName:"serviceDiscovery" type:"structure"`
7719}
7720
7721// String returns the string representation
7722func (s VirtualNodeSpec) String() string {
7723	return awsutil.Prettify(s)
7724}
7725
7726// GoString returns the string representation
7727func (s VirtualNodeSpec) GoString() string {
7728	return s.String()
7729}
7730
7731// Validate inspects the fields of the type to determine if they are valid.
7732func (s *VirtualNodeSpec) Validate() error {
7733	invalidParams := request.ErrInvalidParams{Context: "VirtualNodeSpec"}
7734	if s.Backends != nil {
7735		for i, v := range s.Backends {
7736			if v == nil {
7737				continue
7738			}
7739			if err := v.Validate(); err != nil {
7740				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Backends", i), err.(request.ErrInvalidParams))
7741			}
7742		}
7743	}
7744	if s.Listeners != nil {
7745		for i, v := range s.Listeners {
7746			if v == nil {
7747				continue
7748			}
7749			if err := v.Validate(); err != nil {
7750				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Listeners", i), err.(request.ErrInvalidParams))
7751			}
7752		}
7753	}
7754	if s.Logging != nil {
7755		if err := s.Logging.Validate(); err != nil {
7756			invalidParams.AddNested("Logging", err.(request.ErrInvalidParams))
7757		}
7758	}
7759	if s.ServiceDiscovery != nil {
7760		if err := s.ServiceDiscovery.Validate(); err != nil {
7761			invalidParams.AddNested("ServiceDiscovery", err.(request.ErrInvalidParams))
7762		}
7763	}
7764
7765	if invalidParams.Len() > 0 {
7766		return invalidParams
7767	}
7768	return nil
7769}
7770
7771// SetBackends sets the Backends field's value.
7772func (s *VirtualNodeSpec) SetBackends(v []*Backend) *VirtualNodeSpec {
7773	s.Backends = v
7774	return s
7775}
7776
7777// SetListeners sets the Listeners field's value.
7778func (s *VirtualNodeSpec) SetListeners(v []*Listener) *VirtualNodeSpec {
7779	s.Listeners = v
7780	return s
7781}
7782
7783// SetLogging sets the Logging field's value.
7784func (s *VirtualNodeSpec) SetLogging(v *Logging) *VirtualNodeSpec {
7785	s.Logging = v
7786	return s
7787}
7788
7789// SetServiceDiscovery sets the ServiceDiscovery field's value.
7790func (s *VirtualNodeSpec) SetServiceDiscovery(v *ServiceDiscovery) *VirtualNodeSpec {
7791	s.ServiceDiscovery = v
7792	return s
7793}
7794
7795// An object representing the current status of the virtual node.
7796type VirtualNodeStatus struct {
7797	_ struct{} `type:"structure"`
7798
7799	// Status is a required field
7800	Status *string `locationName:"status" type:"string" required:"true" enum:"VirtualNodeStatusCode"`
7801}
7802
7803// String returns the string representation
7804func (s VirtualNodeStatus) String() string {
7805	return awsutil.Prettify(s)
7806}
7807
7808// GoString returns the string representation
7809func (s VirtualNodeStatus) GoString() string {
7810	return s.String()
7811}
7812
7813// SetStatus sets the Status field's value.
7814func (s *VirtualNodeStatus) SetStatus(v string) *VirtualNodeStatus {
7815	s.Status = &v
7816	return s
7817}
7818
7819// An object representing a virtual router returned by a describe operation.
7820type VirtualRouterData struct {
7821	_ struct{} `type:"structure"`
7822
7823	// MeshName is a required field
7824	MeshName *string `locationName:"meshName" min:"1" type:"string" required:"true"`
7825
7826	// An object representing metadata for a resource.
7827	//
7828	// Metadata is a required field
7829	Metadata *ResourceMetadata `locationName:"metadata" type:"structure" required:"true"`
7830
7831	// An object representing the specification of a virtual router.
7832	//
7833	// Spec is a required field
7834	Spec *VirtualRouterSpec `locationName:"spec" type:"structure" required:"true"`
7835
7836	// An object representing the status of a virtual router.
7837	//
7838	// Status is a required field
7839	Status *VirtualRouterStatus `locationName:"status" type:"structure" required:"true"`
7840
7841	// VirtualRouterName is a required field
7842	VirtualRouterName *string `locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
7843}
7844
7845// String returns the string representation
7846func (s VirtualRouterData) String() string {
7847	return awsutil.Prettify(s)
7848}
7849
7850// GoString returns the string representation
7851func (s VirtualRouterData) GoString() string {
7852	return s.String()
7853}
7854
7855// SetMeshName sets the MeshName field's value.
7856func (s *VirtualRouterData) SetMeshName(v string) *VirtualRouterData {
7857	s.MeshName = &v
7858	return s
7859}
7860
7861// SetMetadata sets the Metadata field's value.
7862func (s *VirtualRouterData) SetMetadata(v *ResourceMetadata) *VirtualRouterData {
7863	s.Metadata = v
7864	return s
7865}
7866
7867// SetSpec sets the Spec field's value.
7868func (s *VirtualRouterData) SetSpec(v *VirtualRouterSpec) *VirtualRouterData {
7869	s.Spec = v
7870	return s
7871}
7872
7873// SetStatus sets the Status field's value.
7874func (s *VirtualRouterData) SetStatus(v *VirtualRouterStatus) *VirtualRouterData {
7875	s.Status = v
7876	return s
7877}
7878
7879// SetVirtualRouterName sets the VirtualRouterName field's value.
7880func (s *VirtualRouterData) SetVirtualRouterName(v string) *VirtualRouterData {
7881	s.VirtualRouterName = &v
7882	return s
7883}
7884
7885// An object representing a virtual router listener.
7886type VirtualRouterListener struct {
7887	_ struct{} `type:"structure"`
7888
7889	// An object representing a virtual node or virtual router listener port mapping.
7890	//
7891	// PortMapping is a required field
7892	PortMapping *PortMapping `locationName:"portMapping" type:"structure" required:"true"`
7893}
7894
7895// String returns the string representation
7896func (s VirtualRouterListener) String() string {
7897	return awsutil.Prettify(s)
7898}
7899
7900// GoString returns the string representation
7901func (s VirtualRouterListener) GoString() string {
7902	return s.String()
7903}
7904
7905// Validate inspects the fields of the type to determine if they are valid.
7906func (s *VirtualRouterListener) Validate() error {
7907	invalidParams := request.ErrInvalidParams{Context: "VirtualRouterListener"}
7908	if s.PortMapping == nil {
7909		invalidParams.Add(request.NewErrParamRequired("PortMapping"))
7910	}
7911	if s.PortMapping != nil {
7912		if err := s.PortMapping.Validate(); err != nil {
7913			invalidParams.AddNested("PortMapping", err.(request.ErrInvalidParams))
7914		}
7915	}
7916
7917	if invalidParams.Len() > 0 {
7918		return invalidParams
7919	}
7920	return nil
7921}
7922
7923// SetPortMapping sets the PortMapping field's value.
7924func (s *VirtualRouterListener) SetPortMapping(v *PortMapping) *VirtualRouterListener {
7925	s.PortMapping = v
7926	return s
7927}
7928
7929// An object representing a virtual router returned by a list operation.
7930type VirtualRouterRef struct {
7931	_ struct{} `type:"structure"`
7932
7933	// Arn is a required field
7934	Arn *string `locationName:"arn" type:"string" required:"true"`
7935
7936	// MeshName is a required field
7937	MeshName *string `locationName:"meshName" min:"1" type:"string" required:"true"`
7938
7939	// VirtualRouterName is a required field
7940	VirtualRouterName *string `locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
7941}
7942
7943// String returns the string representation
7944func (s VirtualRouterRef) String() string {
7945	return awsutil.Prettify(s)
7946}
7947
7948// GoString returns the string representation
7949func (s VirtualRouterRef) GoString() string {
7950	return s.String()
7951}
7952
7953// SetArn sets the Arn field's value.
7954func (s *VirtualRouterRef) SetArn(v string) *VirtualRouterRef {
7955	s.Arn = &v
7956	return s
7957}
7958
7959// SetMeshName sets the MeshName field's value.
7960func (s *VirtualRouterRef) SetMeshName(v string) *VirtualRouterRef {
7961	s.MeshName = &v
7962	return s
7963}
7964
7965// SetVirtualRouterName sets the VirtualRouterName field's value.
7966func (s *VirtualRouterRef) SetVirtualRouterName(v string) *VirtualRouterRef {
7967	s.VirtualRouterName = &v
7968	return s
7969}
7970
7971// An object representing a virtual node service provider.
7972type VirtualRouterServiceProvider struct {
7973	_ struct{} `type:"structure"`
7974
7975	// VirtualRouterName is a required field
7976	VirtualRouterName *string `locationName:"virtualRouterName" min:"1" type:"string" required:"true"`
7977}
7978
7979// String returns the string representation
7980func (s VirtualRouterServiceProvider) String() string {
7981	return awsutil.Prettify(s)
7982}
7983
7984// GoString returns the string representation
7985func (s VirtualRouterServiceProvider) GoString() string {
7986	return s.String()
7987}
7988
7989// Validate inspects the fields of the type to determine if they are valid.
7990func (s *VirtualRouterServiceProvider) Validate() error {
7991	invalidParams := request.ErrInvalidParams{Context: "VirtualRouterServiceProvider"}
7992	if s.VirtualRouterName == nil {
7993		invalidParams.Add(request.NewErrParamRequired("VirtualRouterName"))
7994	}
7995	if s.VirtualRouterName != nil && len(*s.VirtualRouterName) < 1 {
7996		invalidParams.Add(request.NewErrParamMinLen("VirtualRouterName", 1))
7997	}
7998
7999	if invalidParams.Len() > 0 {
8000		return invalidParams
8001	}
8002	return nil
8003}
8004
8005// SetVirtualRouterName sets the VirtualRouterName field's value.
8006func (s *VirtualRouterServiceProvider) SetVirtualRouterName(v string) *VirtualRouterServiceProvider {
8007	s.VirtualRouterName = &v
8008	return s
8009}
8010
8011// An object representing the specification of a virtual router.
8012type VirtualRouterSpec struct {
8013	_ struct{} `type:"structure"`
8014
8015	Listeners []*VirtualRouterListener `locationName:"listeners" min:"1" type:"list"`
8016}
8017
8018// String returns the string representation
8019func (s VirtualRouterSpec) String() string {
8020	return awsutil.Prettify(s)
8021}
8022
8023// GoString returns the string representation
8024func (s VirtualRouterSpec) GoString() string {
8025	return s.String()
8026}
8027
8028// Validate inspects the fields of the type to determine if they are valid.
8029func (s *VirtualRouterSpec) Validate() error {
8030	invalidParams := request.ErrInvalidParams{Context: "VirtualRouterSpec"}
8031	if s.Listeners != nil && len(s.Listeners) < 1 {
8032		invalidParams.Add(request.NewErrParamMinLen("Listeners", 1))
8033	}
8034	if s.Listeners != nil {
8035		for i, v := range s.Listeners {
8036			if v == nil {
8037				continue
8038			}
8039			if err := v.Validate(); err != nil {
8040				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Listeners", i), err.(request.ErrInvalidParams))
8041			}
8042		}
8043	}
8044
8045	if invalidParams.Len() > 0 {
8046		return invalidParams
8047	}
8048	return nil
8049}
8050
8051// SetListeners sets the Listeners field's value.
8052func (s *VirtualRouterSpec) SetListeners(v []*VirtualRouterListener) *VirtualRouterSpec {
8053	s.Listeners = v
8054	return s
8055}
8056
8057// An object representing the status of a virtual router.
8058type VirtualRouterStatus struct {
8059	_ struct{} `type:"structure"`
8060
8061	// Status is a required field
8062	Status *string `locationName:"status" type:"string" required:"true" enum:"VirtualRouterStatusCode"`
8063}
8064
8065// String returns the string representation
8066func (s VirtualRouterStatus) String() string {
8067	return awsutil.Prettify(s)
8068}
8069
8070// GoString returns the string representation
8071func (s VirtualRouterStatus) GoString() string {
8072	return s.String()
8073}
8074
8075// SetStatus sets the Status field's value.
8076func (s *VirtualRouterStatus) SetStatus(v string) *VirtualRouterStatus {
8077	s.Status = &v
8078	return s
8079}
8080
8081// An object representing a virtual service backend for a virtual node.
8082type VirtualServiceBackend struct {
8083	_ struct{} `type:"structure"`
8084
8085	// VirtualServiceName is a required field
8086	VirtualServiceName *string `locationName:"virtualServiceName" type:"string" required:"true"`
8087}
8088
8089// String returns the string representation
8090func (s VirtualServiceBackend) String() string {
8091	return awsutil.Prettify(s)
8092}
8093
8094// GoString returns the string representation
8095func (s VirtualServiceBackend) GoString() string {
8096	return s.String()
8097}
8098
8099// Validate inspects the fields of the type to determine if they are valid.
8100func (s *VirtualServiceBackend) Validate() error {
8101	invalidParams := request.ErrInvalidParams{Context: "VirtualServiceBackend"}
8102	if s.VirtualServiceName == nil {
8103		invalidParams.Add(request.NewErrParamRequired("VirtualServiceName"))
8104	}
8105
8106	if invalidParams.Len() > 0 {
8107		return invalidParams
8108	}
8109	return nil
8110}
8111
8112// SetVirtualServiceName sets the VirtualServiceName field's value.
8113func (s *VirtualServiceBackend) SetVirtualServiceName(v string) *VirtualServiceBackend {
8114	s.VirtualServiceName = &v
8115	return s
8116}
8117
8118// An object representing a virtual service returned by a describe operation.
8119type VirtualServiceData struct {
8120	_ struct{} `type:"structure"`
8121
8122	// MeshName is a required field
8123	MeshName *string `locationName:"meshName" min:"1" type:"string" required:"true"`
8124
8125	// An object representing metadata for a resource.
8126	//
8127	// Metadata is a required field
8128	Metadata *ResourceMetadata `locationName:"metadata" type:"structure" required:"true"`
8129
8130	// An object representing the specification of a virtual service.
8131	//
8132	// Spec is a required field
8133	Spec *VirtualServiceSpec `locationName:"spec" type:"structure" required:"true"`
8134
8135	// An object representing the status of a virtual service.
8136	//
8137	// Status is a required field
8138	Status *VirtualServiceStatus `locationName:"status" type:"structure" required:"true"`
8139
8140	// VirtualServiceName is a required field
8141	VirtualServiceName *string `locationName:"virtualServiceName" type:"string" required:"true"`
8142}
8143
8144// String returns the string representation
8145func (s VirtualServiceData) String() string {
8146	return awsutil.Prettify(s)
8147}
8148
8149// GoString returns the string representation
8150func (s VirtualServiceData) GoString() string {
8151	return s.String()
8152}
8153
8154// SetMeshName sets the MeshName field's value.
8155func (s *VirtualServiceData) SetMeshName(v string) *VirtualServiceData {
8156	s.MeshName = &v
8157	return s
8158}
8159
8160// SetMetadata sets the Metadata field's value.
8161func (s *VirtualServiceData) SetMetadata(v *ResourceMetadata) *VirtualServiceData {
8162	s.Metadata = v
8163	return s
8164}
8165
8166// SetSpec sets the Spec field's value.
8167func (s *VirtualServiceData) SetSpec(v *VirtualServiceSpec) *VirtualServiceData {
8168	s.Spec = v
8169	return s
8170}
8171
8172// SetStatus sets the Status field's value.
8173func (s *VirtualServiceData) SetStatus(v *VirtualServiceStatus) *VirtualServiceData {
8174	s.Status = v
8175	return s
8176}
8177
8178// SetVirtualServiceName sets the VirtualServiceName field's value.
8179func (s *VirtualServiceData) SetVirtualServiceName(v string) *VirtualServiceData {
8180	s.VirtualServiceName = &v
8181	return s
8182}
8183
8184// An object representing the provider for a virtual service.
8185type VirtualServiceProvider struct {
8186	_ struct{} `type:"structure"`
8187
8188	// An object representing a virtual node service provider.
8189	VirtualNode *VirtualNodeServiceProvider `locationName:"virtualNode" type:"structure"`
8190
8191	// An object representing a virtual node service provider.
8192	VirtualRouter *VirtualRouterServiceProvider `locationName:"virtualRouter" type:"structure"`
8193}
8194
8195// String returns the string representation
8196func (s VirtualServiceProvider) String() string {
8197	return awsutil.Prettify(s)
8198}
8199
8200// GoString returns the string representation
8201func (s VirtualServiceProvider) GoString() string {
8202	return s.String()
8203}
8204
8205// Validate inspects the fields of the type to determine if they are valid.
8206func (s *VirtualServiceProvider) Validate() error {
8207	invalidParams := request.ErrInvalidParams{Context: "VirtualServiceProvider"}
8208	if s.VirtualNode != nil {
8209		if err := s.VirtualNode.Validate(); err != nil {
8210			invalidParams.AddNested("VirtualNode", err.(request.ErrInvalidParams))
8211		}
8212	}
8213	if s.VirtualRouter != nil {
8214		if err := s.VirtualRouter.Validate(); err != nil {
8215			invalidParams.AddNested("VirtualRouter", err.(request.ErrInvalidParams))
8216		}
8217	}
8218
8219	if invalidParams.Len() > 0 {
8220		return invalidParams
8221	}
8222	return nil
8223}
8224
8225// SetVirtualNode sets the VirtualNode field's value.
8226func (s *VirtualServiceProvider) SetVirtualNode(v *VirtualNodeServiceProvider) *VirtualServiceProvider {
8227	s.VirtualNode = v
8228	return s
8229}
8230
8231// SetVirtualRouter sets the VirtualRouter field's value.
8232func (s *VirtualServiceProvider) SetVirtualRouter(v *VirtualRouterServiceProvider) *VirtualServiceProvider {
8233	s.VirtualRouter = v
8234	return s
8235}
8236
8237// An object representing a virtual service returned by a list operation.
8238type VirtualServiceRef struct {
8239	_ struct{} `type:"structure"`
8240
8241	// Arn is a required field
8242	Arn *string `locationName:"arn" type:"string" required:"true"`
8243
8244	// MeshName is a required field
8245	MeshName *string `locationName:"meshName" min:"1" type:"string" required:"true"`
8246
8247	// VirtualServiceName is a required field
8248	VirtualServiceName *string `locationName:"virtualServiceName" type:"string" required:"true"`
8249}
8250
8251// String returns the string representation
8252func (s VirtualServiceRef) String() string {
8253	return awsutil.Prettify(s)
8254}
8255
8256// GoString returns the string representation
8257func (s VirtualServiceRef) GoString() string {
8258	return s.String()
8259}
8260
8261// SetArn sets the Arn field's value.
8262func (s *VirtualServiceRef) SetArn(v string) *VirtualServiceRef {
8263	s.Arn = &v
8264	return s
8265}
8266
8267// SetMeshName sets the MeshName field's value.
8268func (s *VirtualServiceRef) SetMeshName(v string) *VirtualServiceRef {
8269	s.MeshName = &v
8270	return s
8271}
8272
8273// SetVirtualServiceName sets the VirtualServiceName field's value.
8274func (s *VirtualServiceRef) SetVirtualServiceName(v string) *VirtualServiceRef {
8275	s.VirtualServiceName = &v
8276	return s
8277}
8278
8279// An object representing the specification of a virtual service.
8280type VirtualServiceSpec struct {
8281	_ struct{} `type:"structure"`
8282
8283	// An object representing the provider for a virtual service.
8284	Provider *VirtualServiceProvider `locationName:"provider" type:"structure"`
8285}
8286
8287// String returns the string representation
8288func (s VirtualServiceSpec) String() string {
8289	return awsutil.Prettify(s)
8290}
8291
8292// GoString returns the string representation
8293func (s VirtualServiceSpec) GoString() string {
8294	return s.String()
8295}
8296
8297// Validate inspects the fields of the type to determine if they are valid.
8298func (s *VirtualServiceSpec) Validate() error {
8299	invalidParams := request.ErrInvalidParams{Context: "VirtualServiceSpec"}
8300	if s.Provider != nil {
8301		if err := s.Provider.Validate(); err != nil {
8302			invalidParams.AddNested("Provider", err.(request.ErrInvalidParams))
8303		}
8304	}
8305
8306	if invalidParams.Len() > 0 {
8307		return invalidParams
8308	}
8309	return nil
8310}
8311
8312// SetProvider sets the Provider field's value.
8313func (s *VirtualServiceSpec) SetProvider(v *VirtualServiceProvider) *VirtualServiceSpec {
8314	s.Provider = v
8315	return s
8316}
8317
8318// An object representing the status of a virtual service.
8319type VirtualServiceStatus struct {
8320	_ struct{} `type:"structure"`
8321
8322	// Status is a required field
8323	Status *string `locationName:"status" type:"string" required:"true" enum:"VirtualServiceStatusCode"`
8324}
8325
8326// String returns the string representation
8327func (s VirtualServiceStatus) String() string {
8328	return awsutil.Prettify(s)
8329}
8330
8331// GoString returns the string representation
8332func (s VirtualServiceStatus) GoString() string {
8333	return s.String()
8334}
8335
8336// SetStatus sets the Status field's value.
8337func (s *VirtualServiceStatus) SetStatus(v string) *VirtualServiceStatus {
8338	s.Status = &v
8339	return s
8340}
8341
8342// An object representing a target and its relative weight. Traffic is distributed
8343// across targets according to their relative weight. For example, a weighted
8344// target with a relative weight of 50 receives five times as much traffic as
8345// one with a relative weight of 10.
8346type WeightedTarget struct {
8347	_ struct{} `type:"structure"`
8348
8349	// VirtualNode is a required field
8350	VirtualNode *string `locationName:"virtualNode" min:"1" type:"string" required:"true"`
8351
8352	// Weight is a required field
8353	Weight *int64 `locationName:"weight" type:"integer" required:"true"`
8354}
8355
8356// String returns the string representation
8357func (s WeightedTarget) String() string {
8358	return awsutil.Prettify(s)
8359}
8360
8361// GoString returns the string representation
8362func (s WeightedTarget) GoString() string {
8363	return s.String()
8364}
8365
8366// Validate inspects the fields of the type to determine if they are valid.
8367func (s *WeightedTarget) Validate() error {
8368	invalidParams := request.ErrInvalidParams{Context: "WeightedTarget"}
8369	if s.VirtualNode == nil {
8370		invalidParams.Add(request.NewErrParamRequired("VirtualNode"))
8371	}
8372	if s.VirtualNode != nil && len(*s.VirtualNode) < 1 {
8373		invalidParams.Add(request.NewErrParamMinLen("VirtualNode", 1))
8374	}
8375	if s.Weight == nil {
8376		invalidParams.Add(request.NewErrParamRequired("Weight"))
8377	}
8378
8379	if invalidParams.Len() > 0 {
8380		return invalidParams
8381	}
8382	return nil
8383}
8384
8385// SetVirtualNode sets the VirtualNode field's value.
8386func (s *WeightedTarget) SetVirtualNode(v string) *WeightedTarget {
8387	s.VirtualNode = &v
8388	return s
8389}
8390
8391// SetWeight sets the Weight field's value.
8392func (s *WeightedTarget) SetWeight(v int64) *WeightedTarget {
8393	s.Weight = &v
8394	return s
8395}
8396
8397const (
8398	// DurationUnitMs is a DurationUnit enum value
8399	DurationUnitMs = "ms"
8400
8401	// DurationUnitS is a DurationUnit enum value
8402	DurationUnitS = "s"
8403)
8404
8405const (
8406	// EgressFilterTypeAllowAll is a EgressFilterType enum value
8407	EgressFilterTypeAllowAll = "ALLOW_ALL"
8408
8409	// EgressFilterTypeDropAll is a EgressFilterType enum value
8410	EgressFilterTypeDropAll = "DROP_ALL"
8411)
8412
8413const (
8414	// HttpMethodConnect is a HttpMethod enum value
8415	HttpMethodConnect = "CONNECT"
8416
8417	// HttpMethodDelete is a HttpMethod enum value
8418	HttpMethodDelete = "DELETE"
8419
8420	// HttpMethodGet is a HttpMethod enum value
8421	HttpMethodGet = "GET"
8422
8423	// HttpMethodHead is a HttpMethod enum value
8424	HttpMethodHead = "HEAD"
8425
8426	// HttpMethodOptions is a HttpMethod enum value
8427	HttpMethodOptions = "OPTIONS"
8428
8429	// HttpMethodPatch is a HttpMethod enum value
8430	HttpMethodPatch = "PATCH"
8431
8432	// HttpMethodPost is a HttpMethod enum value
8433	HttpMethodPost = "POST"
8434
8435	// HttpMethodPut is a HttpMethod enum value
8436	HttpMethodPut = "PUT"
8437
8438	// HttpMethodTrace is a HttpMethod enum value
8439	HttpMethodTrace = "TRACE"
8440)
8441
8442const (
8443	// HttpSchemeHttp is a HttpScheme enum value
8444	HttpSchemeHttp = "http"
8445
8446	// HttpSchemeHttps is a HttpScheme enum value
8447	HttpSchemeHttps = "https"
8448)
8449
8450const (
8451	// MeshStatusCodeActive is a MeshStatusCode enum value
8452	MeshStatusCodeActive = "ACTIVE"
8453
8454	// MeshStatusCodeDeleted is a MeshStatusCode enum value
8455	MeshStatusCodeDeleted = "DELETED"
8456
8457	// MeshStatusCodeInactive is a MeshStatusCode enum value
8458	MeshStatusCodeInactive = "INACTIVE"
8459)
8460
8461const (
8462	// PortProtocolHttp is a PortProtocol enum value
8463	PortProtocolHttp = "http"
8464
8465	// PortProtocolTcp is a PortProtocol enum value
8466	PortProtocolTcp = "tcp"
8467)
8468
8469const (
8470	// RouteStatusCodeActive is a RouteStatusCode enum value
8471	RouteStatusCodeActive = "ACTIVE"
8472
8473	// RouteStatusCodeDeleted is a RouteStatusCode enum value
8474	RouteStatusCodeDeleted = "DELETED"
8475
8476	// RouteStatusCodeInactive is a RouteStatusCode enum value
8477	RouteStatusCodeInactive = "INACTIVE"
8478)
8479
8480const (
8481	// TcpRetryPolicyEventConnectionError is a TcpRetryPolicyEvent enum value
8482	TcpRetryPolicyEventConnectionError = "connection-error"
8483)
8484
8485const (
8486	// VirtualNodeStatusCodeActive is a VirtualNodeStatusCode enum value
8487	VirtualNodeStatusCodeActive = "ACTIVE"
8488
8489	// VirtualNodeStatusCodeDeleted is a VirtualNodeStatusCode enum value
8490	VirtualNodeStatusCodeDeleted = "DELETED"
8491
8492	// VirtualNodeStatusCodeInactive is a VirtualNodeStatusCode enum value
8493	VirtualNodeStatusCodeInactive = "INACTIVE"
8494)
8495
8496const (
8497	// VirtualRouterStatusCodeActive is a VirtualRouterStatusCode enum value
8498	VirtualRouterStatusCodeActive = "ACTIVE"
8499
8500	// VirtualRouterStatusCodeDeleted is a VirtualRouterStatusCode enum value
8501	VirtualRouterStatusCodeDeleted = "DELETED"
8502
8503	// VirtualRouterStatusCodeInactive is a VirtualRouterStatusCode enum value
8504	VirtualRouterStatusCodeInactive = "INACTIVE"
8505)
8506
8507const (
8508	// VirtualServiceStatusCodeActive is a VirtualServiceStatusCode enum value
8509	VirtualServiceStatusCodeActive = "ACTIVE"
8510
8511	// VirtualServiceStatusCodeDeleted is a VirtualServiceStatusCode enum value
8512	VirtualServiceStatusCodeDeleted = "DELETED"
8513
8514	// VirtualServiceStatusCodeInactive is a VirtualServiceStatusCode enum value
8515	VirtualServiceStatusCodeInactive = "INACTIVE"
8516)
8517