1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package globalaccelerator
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/jsonrpc"
14)
15
16const opAddCustomRoutingEndpoints = "AddCustomRoutingEndpoints"
17
18// AddCustomRoutingEndpointsRequest generates a "aws/request.Request" representing the
19// client's request for the AddCustomRoutingEndpoints 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 AddCustomRoutingEndpoints for more information on using the AddCustomRoutingEndpoints
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 AddCustomRoutingEndpointsRequest method.
34//    req, resp := client.AddCustomRoutingEndpointsRequest(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/globalaccelerator-2018-08-08/AddCustomRoutingEndpoints
42func (c *GlobalAccelerator) AddCustomRoutingEndpointsRequest(input *AddCustomRoutingEndpointsInput) (req *request.Request, output *AddCustomRoutingEndpointsOutput) {
43	op := &request.Operation{
44		Name:       opAddCustomRoutingEndpoints,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AddCustomRoutingEndpointsInput{}
51	}
52
53	output = &AddCustomRoutingEndpointsOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AddCustomRoutingEndpoints API operation for AWS Global Accelerator.
59//
60// Associate a virtual private cloud (VPC) subnet endpoint with your custom
61// routing accelerator.
62//
63// The listener port range must be large enough to support the number of IP
64// addresses that can be specified in your subnet. The number of ports required
65// is: subnet size times the number of ports per destination EC2 instances.
66// For example, a subnet defined as /24 requires a listener port range of at
67// least 255 ports.
68//
69// Note: You must have enough remaining listener ports available to map to the
70// subnet ports, or the call will fail with a LimitExceededException.
71//
72// By default, all destinations in a subnet in a custom routing accelerator
73// cannot receive traffic. To enable all destinations to receive traffic, or
74// to specify individual port mappings that can receive traffic, see the AllowCustomRoutingTraffic
75// (https://docs.aws.amazon.com/global-accelerator/latest/api/API_AllowCustomRoutingTraffic.html)
76// operation.
77//
78// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
79// with awserr.Error's Code and Message methods to get detailed information about
80// the error.
81//
82// See the AWS API reference guide for AWS Global Accelerator's
83// API operation AddCustomRoutingEndpoints for usage and error information.
84//
85// Returned Error Types:
86//   * EndpointAlreadyExistsException
87//   The endpoint that you specified doesn't exist.
88//
89//   * EndpointGroupNotFoundException
90//   The endpoint group that you specified doesn't exist.
91//
92//   * InternalServiceErrorException
93//   There was an internal error for AWS Global Accelerator.
94//
95//   * InvalidArgumentException
96//   An argument that you specified is invalid.
97//
98//   * LimitExceededException
99//   Processing your request would cause you to exceed an AWS Global Accelerator
100//   limit.
101//
102//   * AccessDeniedException
103//   You don't have access permission.
104//
105//   * ConflictException
106//   You can't use both of those options.
107//
108// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/AddCustomRoutingEndpoints
109func (c *GlobalAccelerator) AddCustomRoutingEndpoints(input *AddCustomRoutingEndpointsInput) (*AddCustomRoutingEndpointsOutput, error) {
110	req, out := c.AddCustomRoutingEndpointsRequest(input)
111	return out, req.Send()
112}
113
114// AddCustomRoutingEndpointsWithContext is the same as AddCustomRoutingEndpoints with the addition of
115// the ability to pass a context and additional request options.
116//
117// See AddCustomRoutingEndpoints for details on how to use this API operation.
118//
119// The context must be non-nil and will be used for request cancellation. If
120// the context is nil a panic will occur. In the future the SDK may create
121// sub-contexts for http.Requests. See https://golang.org/pkg/context/
122// for more information on using Contexts.
123func (c *GlobalAccelerator) AddCustomRoutingEndpointsWithContext(ctx aws.Context, input *AddCustomRoutingEndpointsInput, opts ...request.Option) (*AddCustomRoutingEndpointsOutput, error) {
124	req, out := c.AddCustomRoutingEndpointsRequest(input)
125	req.SetContext(ctx)
126	req.ApplyOptions(opts...)
127	return out, req.Send()
128}
129
130const opAdvertiseByoipCidr = "AdvertiseByoipCidr"
131
132// AdvertiseByoipCidrRequest generates a "aws/request.Request" representing the
133// client's request for the AdvertiseByoipCidr operation. The "output" return
134// value will be populated with the request's response once the request completes
135// successfully.
136//
137// Use "Send" method on the returned Request to send the API call to the service.
138// the "output" return value is not valid until after Send returns without error.
139//
140// See AdvertiseByoipCidr for more information on using the AdvertiseByoipCidr
141// API call, and error handling.
142//
143// This method is useful when you want to inject custom logic or configuration
144// into the SDK's request lifecycle. Such as custom headers, or retry logic.
145//
146//
147//    // Example sending a request using the AdvertiseByoipCidrRequest method.
148//    req, resp := client.AdvertiseByoipCidrRequest(params)
149//
150//    err := req.Send()
151//    if err == nil { // resp is now filled
152//        fmt.Println(resp)
153//    }
154//
155// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/AdvertiseByoipCidr
156func (c *GlobalAccelerator) AdvertiseByoipCidrRequest(input *AdvertiseByoipCidrInput) (req *request.Request, output *AdvertiseByoipCidrOutput) {
157	op := &request.Operation{
158		Name:       opAdvertiseByoipCidr,
159		HTTPMethod: "POST",
160		HTTPPath:   "/",
161	}
162
163	if input == nil {
164		input = &AdvertiseByoipCidrInput{}
165	}
166
167	output = &AdvertiseByoipCidrOutput{}
168	req = c.newRequest(op, input, output)
169	return
170}
171
172// AdvertiseByoipCidr API operation for AWS Global Accelerator.
173//
174// Advertises an IPv4 address range that is provisioned for use with your AWS
175// resources through bring your own IP addresses (BYOIP). It can take a few
176// minutes before traffic to the specified addresses starts routing to AWS because
177// of propagation delays.
178//
179// To stop advertising the BYOIP address range, use WithdrawByoipCidr (https://docs.aws.amazon.com/global-accelerator/latest/api/WithdrawByoipCidr.html).
180//
181// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
182// in the AWS Global Accelerator Developer Guide.
183//
184// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
185// with awserr.Error's Code and Message methods to get detailed information about
186// the error.
187//
188// See the AWS API reference guide for AWS Global Accelerator's
189// API operation AdvertiseByoipCidr for usage and error information.
190//
191// Returned Error Types:
192//   * InternalServiceErrorException
193//   There was an internal error for AWS Global Accelerator.
194//
195//   * InvalidArgumentException
196//   An argument that you specified is invalid.
197//
198//   * AccessDeniedException
199//   You don't have access permission.
200//
201//   * ByoipCidrNotFoundException
202//   The CIDR that you specified was not found or is incorrect.
203//
204//   * IncorrectCidrStateException
205//   The CIDR that you specified is not valid for this action. For example, the
206//   state of the CIDR might be incorrect for this action.
207//
208// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/AdvertiseByoipCidr
209func (c *GlobalAccelerator) AdvertiseByoipCidr(input *AdvertiseByoipCidrInput) (*AdvertiseByoipCidrOutput, error) {
210	req, out := c.AdvertiseByoipCidrRequest(input)
211	return out, req.Send()
212}
213
214// AdvertiseByoipCidrWithContext is the same as AdvertiseByoipCidr with the addition of
215// the ability to pass a context and additional request options.
216//
217// See AdvertiseByoipCidr for details on how to use this API operation.
218//
219// The context must be non-nil and will be used for request cancellation. If
220// the context is nil a panic will occur. In the future the SDK may create
221// sub-contexts for http.Requests. See https://golang.org/pkg/context/
222// for more information on using Contexts.
223func (c *GlobalAccelerator) AdvertiseByoipCidrWithContext(ctx aws.Context, input *AdvertiseByoipCidrInput, opts ...request.Option) (*AdvertiseByoipCidrOutput, error) {
224	req, out := c.AdvertiseByoipCidrRequest(input)
225	req.SetContext(ctx)
226	req.ApplyOptions(opts...)
227	return out, req.Send()
228}
229
230const opAllowCustomRoutingTraffic = "AllowCustomRoutingTraffic"
231
232// AllowCustomRoutingTrafficRequest generates a "aws/request.Request" representing the
233// client's request for the AllowCustomRoutingTraffic operation. The "output" return
234// value will be populated with the request's response once the request completes
235// successfully.
236//
237// Use "Send" method on the returned Request to send the API call to the service.
238// the "output" return value is not valid until after Send returns without error.
239//
240// See AllowCustomRoutingTraffic for more information on using the AllowCustomRoutingTraffic
241// API call, and error handling.
242//
243// This method is useful when you want to inject custom logic or configuration
244// into the SDK's request lifecycle. Such as custom headers, or retry logic.
245//
246//
247//    // Example sending a request using the AllowCustomRoutingTrafficRequest method.
248//    req, resp := client.AllowCustomRoutingTrafficRequest(params)
249//
250//    err := req.Send()
251//    if err == nil { // resp is now filled
252//        fmt.Println(resp)
253//    }
254//
255// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/AllowCustomRoutingTraffic
256func (c *GlobalAccelerator) AllowCustomRoutingTrafficRequest(input *AllowCustomRoutingTrafficInput) (req *request.Request, output *AllowCustomRoutingTrafficOutput) {
257	op := &request.Operation{
258		Name:       opAllowCustomRoutingTraffic,
259		HTTPMethod: "POST",
260		HTTPPath:   "/",
261	}
262
263	if input == nil {
264		input = &AllowCustomRoutingTrafficInput{}
265	}
266
267	output = &AllowCustomRoutingTrafficOutput{}
268	req = c.newRequest(op, input, output)
269	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
270	return
271}
272
273// AllowCustomRoutingTraffic API operation for AWS Global Accelerator.
274//
275// Specify the Amazon EC2 instance (destination) IP addresses and ports for
276// a VPC subnet endpoint that can receive traffic for a custom routing accelerator.
277// You can allow traffic to all destinations in the subnet endpoint, or allow
278// traffic to a specified list of destination IP addresses and ports in the
279// subnet. Note that you cannot specify IP addresses or ports outside of the
280// range that you configured for the endpoint group.
281//
282// After you make changes, you can verify that the updates are complete by checking
283// the status of your accelerator: the status changes from IN_PROGRESS to DEPLOYED.
284//
285// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
286// with awserr.Error's Code and Message methods to get detailed information about
287// the error.
288//
289// See the AWS API reference guide for AWS Global Accelerator's
290// API operation AllowCustomRoutingTraffic for usage and error information.
291//
292// Returned Error Types:
293//   * InvalidArgumentException
294//   An argument that you specified is invalid.
295//
296//   * InternalServiceErrorException
297//   There was an internal error for AWS Global Accelerator.
298//
299// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/AllowCustomRoutingTraffic
300func (c *GlobalAccelerator) AllowCustomRoutingTraffic(input *AllowCustomRoutingTrafficInput) (*AllowCustomRoutingTrafficOutput, error) {
301	req, out := c.AllowCustomRoutingTrafficRequest(input)
302	return out, req.Send()
303}
304
305// AllowCustomRoutingTrafficWithContext is the same as AllowCustomRoutingTraffic with the addition of
306// the ability to pass a context and additional request options.
307//
308// See AllowCustomRoutingTraffic for details on how to use this API operation.
309//
310// The context must be non-nil and will be used for request cancellation. If
311// the context is nil a panic will occur. In the future the SDK may create
312// sub-contexts for http.Requests. See https://golang.org/pkg/context/
313// for more information on using Contexts.
314func (c *GlobalAccelerator) AllowCustomRoutingTrafficWithContext(ctx aws.Context, input *AllowCustomRoutingTrafficInput, opts ...request.Option) (*AllowCustomRoutingTrafficOutput, error) {
315	req, out := c.AllowCustomRoutingTrafficRequest(input)
316	req.SetContext(ctx)
317	req.ApplyOptions(opts...)
318	return out, req.Send()
319}
320
321const opCreateAccelerator = "CreateAccelerator"
322
323// CreateAcceleratorRequest generates a "aws/request.Request" representing the
324// client's request for the CreateAccelerator operation. The "output" return
325// value will be populated with the request's response once the request completes
326// successfully.
327//
328// Use "Send" method on the returned Request to send the API call to the service.
329// the "output" return value is not valid until after Send returns without error.
330//
331// See CreateAccelerator for more information on using the CreateAccelerator
332// API call, and error handling.
333//
334// This method is useful when you want to inject custom logic or configuration
335// into the SDK's request lifecycle. Such as custom headers, or retry logic.
336//
337//
338//    // Example sending a request using the CreateAcceleratorRequest method.
339//    req, resp := client.CreateAcceleratorRequest(params)
340//
341//    err := req.Send()
342//    if err == nil { // resp is now filled
343//        fmt.Println(resp)
344//    }
345//
346// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateAccelerator
347func (c *GlobalAccelerator) CreateAcceleratorRequest(input *CreateAcceleratorInput) (req *request.Request, output *CreateAcceleratorOutput) {
348	op := &request.Operation{
349		Name:       opCreateAccelerator,
350		HTTPMethod: "POST",
351		HTTPPath:   "/",
352	}
353
354	if input == nil {
355		input = &CreateAcceleratorInput{}
356	}
357
358	output = &CreateAcceleratorOutput{}
359	req = c.newRequest(op, input, output)
360	return
361}
362
363// CreateAccelerator API operation for AWS Global Accelerator.
364//
365// Create an accelerator. An accelerator includes one or more listeners that
366// process inbound connections and direct traffic to one or more endpoint groups,
367// each of which includes endpoints, such as Network Load Balancers.
368//
369// Global Accelerator is a global service that supports endpoints in multiple
370// AWS Regions but you must specify the US West (Oregon) Region to create or
371// update accelerators.
372//
373// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
374// with awserr.Error's Code and Message methods to get detailed information about
375// the error.
376//
377// See the AWS API reference guide for AWS Global Accelerator's
378// API operation CreateAccelerator for usage and error information.
379//
380// Returned Error Types:
381//   * InternalServiceErrorException
382//   There was an internal error for AWS Global Accelerator.
383//
384//   * InvalidArgumentException
385//   An argument that you specified is invalid.
386//
387//   * LimitExceededException
388//   Processing your request would cause you to exceed an AWS Global Accelerator
389//   limit.
390//
391// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateAccelerator
392func (c *GlobalAccelerator) CreateAccelerator(input *CreateAcceleratorInput) (*CreateAcceleratorOutput, error) {
393	req, out := c.CreateAcceleratorRequest(input)
394	return out, req.Send()
395}
396
397// CreateAcceleratorWithContext is the same as CreateAccelerator with the addition of
398// the ability to pass a context and additional request options.
399//
400// See CreateAccelerator for details on how to use this API operation.
401//
402// The context must be non-nil and will be used for request cancellation. If
403// the context is nil a panic will occur. In the future the SDK may create
404// sub-contexts for http.Requests. See https://golang.org/pkg/context/
405// for more information on using Contexts.
406func (c *GlobalAccelerator) CreateAcceleratorWithContext(ctx aws.Context, input *CreateAcceleratorInput, opts ...request.Option) (*CreateAcceleratorOutput, error) {
407	req, out := c.CreateAcceleratorRequest(input)
408	req.SetContext(ctx)
409	req.ApplyOptions(opts...)
410	return out, req.Send()
411}
412
413const opCreateCustomRoutingAccelerator = "CreateCustomRoutingAccelerator"
414
415// CreateCustomRoutingAcceleratorRequest generates a "aws/request.Request" representing the
416// client's request for the CreateCustomRoutingAccelerator operation. The "output" return
417// value will be populated with the request's response once the request completes
418// successfully.
419//
420// Use "Send" method on the returned Request to send the API call to the service.
421// the "output" return value is not valid until after Send returns without error.
422//
423// See CreateCustomRoutingAccelerator for more information on using the CreateCustomRoutingAccelerator
424// API call, and error handling.
425//
426// This method is useful when you want to inject custom logic or configuration
427// into the SDK's request lifecycle. Such as custom headers, or retry logic.
428//
429//
430//    // Example sending a request using the CreateCustomRoutingAcceleratorRequest method.
431//    req, resp := client.CreateCustomRoutingAcceleratorRequest(params)
432//
433//    err := req.Send()
434//    if err == nil { // resp is now filled
435//        fmt.Println(resp)
436//    }
437//
438// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateCustomRoutingAccelerator
439func (c *GlobalAccelerator) CreateCustomRoutingAcceleratorRequest(input *CreateCustomRoutingAcceleratorInput) (req *request.Request, output *CreateCustomRoutingAcceleratorOutput) {
440	op := &request.Operation{
441		Name:       opCreateCustomRoutingAccelerator,
442		HTTPMethod: "POST",
443		HTTPPath:   "/",
444	}
445
446	if input == nil {
447		input = &CreateCustomRoutingAcceleratorInput{}
448	}
449
450	output = &CreateCustomRoutingAcceleratorOutput{}
451	req = c.newRequest(op, input, output)
452	return
453}
454
455// CreateCustomRoutingAccelerator API operation for AWS Global Accelerator.
456//
457// Create a custom routing accelerator. A custom routing accelerator directs
458// traffic to one of possibly thousands of Amazon EC2 instance destinations
459// running in a single or multiple virtual private clouds (VPC) subnet endpoints.
460//
461// Be aware that, by default, all destination EC2 instances in a VPC subnet
462// endpoint cannot receive traffic. To enable all destinations to receive traffic,
463// or to specify individual port mappings that can receive traffic, see the
464// AllowCustomRoutingTraffic (https://docs.aws.amazon.com/global-accelerator/latest/api/API_AllowCustomRoutingTraffic.html)
465// operation.
466//
467// Global Accelerator is a global service that supports endpoints in multiple
468// AWS Regions but you must specify the US West (Oregon) Region to create or
469// update accelerators.
470//
471// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
472// with awserr.Error's Code and Message methods to get detailed information about
473// the error.
474//
475// See the AWS API reference guide for AWS Global Accelerator's
476// API operation CreateCustomRoutingAccelerator for usage and error information.
477//
478// Returned Error Types:
479//   * InternalServiceErrorException
480//   There was an internal error for AWS Global Accelerator.
481//
482//   * InvalidArgumentException
483//   An argument that you specified is invalid.
484//
485//   * LimitExceededException
486//   Processing your request would cause you to exceed an AWS Global Accelerator
487//   limit.
488//
489//   * AccessDeniedException
490//   You don't have access permission.
491//
492// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateCustomRoutingAccelerator
493func (c *GlobalAccelerator) CreateCustomRoutingAccelerator(input *CreateCustomRoutingAcceleratorInput) (*CreateCustomRoutingAcceleratorOutput, error) {
494	req, out := c.CreateCustomRoutingAcceleratorRequest(input)
495	return out, req.Send()
496}
497
498// CreateCustomRoutingAcceleratorWithContext is the same as CreateCustomRoutingAccelerator with the addition of
499// the ability to pass a context and additional request options.
500//
501// See CreateCustomRoutingAccelerator for details on how to use this API operation.
502//
503// The context must be non-nil and will be used for request cancellation. If
504// the context is nil a panic will occur. In the future the SDK may create
505// sub-contexts for http.Requests. See https://golang.org/pkg/context/
506// for more information on using Contexts.
507func (c *GlobalAccelerator) CreateCustomRoutingAcceleratorWithContext(ctx aws.Context, input *CreateCustomRoutingAcceleratorInput, opts ...request.Option) (*CreateCustomRoutingAcceleratorOutput, error) {
508	req, out := c.CreateCustomRoutingAcceleratorRequest(input)
509	req.SetContext(ctx)
510	req.ApplyOptions(opts...)
511	return out, req.Send()
512}
513
514const opCreateCustomRoutingEndpointGroup = "CreateCustomRoutingEndpointGroup"
515
516// CreateCustomRoutingEndpointGroupRequest generates a "aws/request.Request" representing the
517// client's request for the CreateCustomRoutingEndpointGroup operation. The "output" return
518// value will be populated with the request's response once the request completes
519// successfully.
520//
521// Use "Send" method on the returned Request to send the API call to the service.
522// the "output" return value is not valid until after Send returns without error.
523//
524// See CreateCustomRoutingEndpointGroup for more information on using the CreateCustomRoutingEndpointGroup
525// API call, and error handling.
526//
527// This method is useful when you want to inject custom logic or configuration
528// into the SDK's request lifecycle. Such as custom headers, or retry logic.
529//
530//
531//    // Example sending a request using the CreateCustomRoutingEndpointGroupRequest method.
532//    req, resp := client.CreateCustomRoutingEndpointGroupRequest(params)
533//
534//    err := req.Send()
535//    if err == nil { // resp is now filled
536//        fmt.Println(resp)
537//    }
538//
539// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateCustomRoutingEndpointGroup
540func (c *GlobalAccelerator) CreateCustomRoutingEndpointGroupRequest(input *CreateCustomRoutingEndpointGroupInput) (req *request.Request, output *CreateCustomRoutingEndpointGroupOutput) {
541	op := &request.Operation{
542		Name:       opCreateCustomRoutingEndpointGroup,
543		HTTPMethod: "POST",
544		HTTPPath:   "/",
545	}
546
547	if input == nil {
548		input = &CreateCustomRoutingEndpointGroupInput{}
549	}
550
551	output = &CreateCustomRoutingEndpointGroupOutput{}
552	req = c.newRequest(op, input, output)
553	return
554}
555
556// CreateCustomRoutingEndpointGroup API operation for AWS Global Accelerator.
557//
558// Create an endpoint group for the specified listener for a custom routing
559// accelerator. An endpoint group is a collection of endpoints in one AWS Region.
560//
561// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
562// with awserr.Error's Code and Message methods to get detailed information about
563// the error.
564//
565// See the AWS API reference guide for AWS Global Accelerator's
566// API operation CreateCustomRoutingEndpointGroup for usage and error information.
567//
568// Returned Error Types:
569//   * AcceleratorNotFoundException
570//   The accelerator that you specified doesn't exist.
571//
572//   * EndpointGroupAlreadyExistsException
573//   The endpoint group that you specified already exists.
574//
575//   * ListenerNotFoundException
576//   The listener that you specified doesn't exist.
577//
578//   * InternalServiceErrorException
579//   There was an internal error for AWS Global Accelerator.
580//
581//   * InvalidArgumentException
582//   An argument that you specified is invalid.
583//
584//   * InvalidPortRangeException
585//   The port numbers that you specified are not valid numbers or are not unique
586//   for this accelerator.
587//
588//   * LimitExceededException
589//   Processing your request would cause you to exceed an AWS Global Accelerator
590//   limit.
591//
592//   * AccessDeniedException
593//   You don't have access permission.
594//
595// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateCustomRoutingEndpointGroup
596func (c *GlobalAccelerator) CreateCustomRoutingEndpointGroup(input *CreateCustomRoutingEndpointGroupInput) (*CreateCustomRoutingEndpointGroupOutput, error) {
597	req, out := c.CreateCustomRoutingEndpointGroupRequest(input)
598	return out, req.Send()
599}
600
601// CreateCustomRoutingEndpointGroupWithContext is the same as CreateCustomRoutingEndpointGroup with the addition of
602// the ability to pass a context and additional request options.
603//
604// See CreateCustomRoutingEndpointGroup for details on how to use this API operation.
605//
606// The context must be non-nil and will be used for request cancellation. If
607// the context is nil a panic will occur. In the future the SDK may create
608// sub-contexts for http.Requests. See https://golang.org/pkg/context/
609// for more information on using Contexts.
610func (c *GlobalAccelerator) CreateCustomRoutingEndpointGroupWithContext(ctx aws.Context, input *CreateCustomRoutingEndpointGroupInput, opts ...request.Option) (*CreateCustomRoutingEndpointGroupOutput, error) {
611	req, out := c.CreateCustomRoutingEndpointGroupRequest(input)
612	req.SetContext(ctx)
613	req.ApplyOptions(opts...)
614	return out, req.Send()
615}
616
617const opCreateCustomRoutingListener = "CreateCustomRoutingListener"
618
619// CreateCustomRoutingListenerRequest generates a "aws/request.Request" representing the
620// client's request for the CreateCustomRoutingListener operation. The "output" return
621// value will be populated with the request's response once the request completes
622// successfully.
623//
624// Use "Send" method on the returned Request to send the API call to the service.
625// the "output" return value is not valid until after Send returns without error.
626//
627// See CreateCustomRoutingListener for more information on using the CreateCustomRoutingListener
628// API call, and error handling.
629//
630// This method is useful when you want to inject custom logic or configuration
631// into the SDK's request lifecycle. Such as custom headers, or retry logic.
632//
633//
634//    // Example sending a request using the CreateCustomRoutingListenerRequest method.
635//    req, resp := client.CreateCustomRoutingListenerRequest(params)
636//
637//    err := req.Send()
638//    if err == nil { // resp is now filled
639//        fmt.Println(resp)
640//    }
641//
642// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateCustomRoutingListener
643func (c *GlobalAccelerator) CreateCustomRoutingListenerRequest(input *CreateCustomRoutingListenerInput) (req *request.Request, output *CreateCustomRoutingListenerOutput) {
644	op := &request.Operation{
645		Name:       opCreateCustomRoutingListener,
646		HTTPMethod: "POST",
647		HTTPPath:   "/",
648	}
649
650	if input == nil {
651		input = &CreateCustomRoutingListenerInput{}
652	}
653
654	output = &CreateCustomRoutingListenerOutput{}
655	req = c.newRequest(op, input, output)
656	return
657}
658
659// CreateCustomRoutingListener API operation for AWS Global Accelerator.
660//
661// Create a listener to process inbound connections from clients to a custom
662// routing accelerator. Connections arrive to assigned static IP addresses on
663// the port range that you specify.
664//
665// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
666// with awserr.Error's Code and Message methods to get detailed information about
667// the error.
668//
669// See the AWS API reference guide for AWS Global Accelerator's
670// API operation CreateCustomRoutingListener for usage and error information.
671//
672// Returned Error Types:
673//   * InvalidArgumentException
674//   An argument that you specified is invalid.
675//
676//   * AcceleratorNotFoundException
677//   The accelerator that you specified doesn't exist.
678//
679//   * InvalidPortRangeException
680//   The port numbers that you specified are not valid numbers or are not unique
681//   for this accelerator.
682//
683//   * InternalServiceErrorException
684//   There was an internal error for AWS Global Accelerator.
685//
686//   * LimitExceededException
687//   Processing your request would cause you to exceed an AWS Global Accelerator
688//   limit.
689//
690// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateCustomRoutingListener
691func (c *GlobalAccelerator) CreateCustomRoutingListener(input *CreateCustomRoutingListenerInput) (*CreateCustomRoutingListenerOutput, error) {
692	req, out := c.CreateCustomRoutingListenerRequest(input)
693	return out, req.Send()
694}
695
696// CreateCustomRoutingListenerWithContext is the same as CreateCustomRoutingListener with the addition of
697// the ability to pass a context and additional request options.
698//
699// See CreateCustomRoutingListener for details on how to use this API operation.
700//
701// The context must be non-nil and will be used for request cancellation. If
702// the context is nil a panic will occur. In the future the SDK may create
703// sub-contexts for http.Requests. See https://golang.org/pkg/context/
704// for more information on using Contexts.
705func (c *GlobalAccelerator) CreateCustomRoutingListenerWithContext(ctx aws.Context, input *CreateCustomRoutingListenerInput, opts ...request.Option) (*CreateCustomRoutingListenerOutput, error) {
706	req, out := c.CreateCustomRoutingListenerRequest(input)
707	req.SetContext(ctx)
708	req.ApplyOptions(opts...)
709	return out, req.Send()
710}
711
712const opCreateEndpointGroup = "CreateEndpointGroup"
713
714// CreateEndpointGroupRequest generates a "aws/request.Request" representing the
715// client's request for the CreateEndpointGroup operation. The "output" return
716// value will be populated with the request's response once the request completes
717// successfully.
718//
719// Use "Send" method on the returned Request to send the API call to the service.
720// the "output" return value is not valid until after Send returns without error.
721//
722// See CreateEndpointGroup for more information on using the CreateEndpointGroup
723// API call, and error handling.
724//
725// This method is useful when you want to inject custom logic or configuration
726// into the SDK's request lifecycle. Such as custom headers, or retry logic.
727//
728//
729//    // Example sending a request using the CreateEndpointGroupRequest method.
730//    req, resp := client.CreateEndpointGroupRequest(params)
731//
732//    err := req.Send()
733//    if err == nil { // resp is now filled
734//        fmt.Println(resp)
735//    }
736//
737// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateEndpointGroup
738func (c *GlobalAccelerator) CreateEndpointGroupRequest(input *CreateEndpointGroupInput) (req *request.Request, output *CreateEndpointGroupOutput) {
739	op := &request.Operation{
740		Name:       opCreateEndpointGroup,
741		HTTPMethod: "POST",
742		HTTPPath:   "/",
743	}
744
745	if input == nil {
746		input = &CreateEndpointGroupInput{}
747	}
748
749	output = &CreateEndpointGroupOutput{}
750	req = c.newRequest(op, input, output)
751	return
752}
753
754// CreateEndpointGroup API operation for AWS Global Accelerator.
755//
756// Create an endpoint group for the specified listener. An endpoint group is
757// a collection of endpoints in one AWS Region. A resource must be valid and
758// active when you add it as an endpoint.
759//
760// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
761// with awserr.Error's Code and Message methods to get detailed information about
762// the error.
763//
764// See the AWS API reference guide for AWS Global Accelerator's
765// API operation CreateEndpointGroup for usage and error information.
766//
767// Returned Error Types:
768//   * AcceleratorNotFoundException
769//   The accelerator that you specified doesn't exist.
770//
771//   * EndpointGroupAlreadyExistsException
772//   The endpoint group that you specified already exists.
773//
774//   * ListenerNotFoundException
775//   The listener that you specified doesn't exist.
776//
777//   * InternalServiceErrorException
778//   There was an internal error for AWS Global Accelerator.
779//
780//   * InvalidArgumentException
781//   An argument that you specified is invalid.
782//
783//   * LimitExceededException
784//   Processing your request would cause you to exceed an AWS Global Accelerator
785//   limit.
786//
787//   * AccessDeniedException
788//   You don't have access permission.
789//
790// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateEndpointGroup
791func (c *GlobalAccelerator) CreateEndpointGroup(input *CreateEndpointGroupInput) (*CreateEndpointGroupOutput, error) {
792	req, out := c.CreateEndpointGroupRequest(input)
793	return out, req.Send()
794}
795
796// CreateEndpointGroupWithContext is the same as CreateEndpointGroup with the addition of
797// the ability to pass a context and additional request options.
798//
799// See CreateEndpointGroup for details on how to use this API operation.
800//
801// The context must be non-nil and will be used for request cancellation. If
802// the context is nil a panic will occur. In the future the SDK may create
803// sub-contexts for http.Requests. See https://golang.org/pkg/context/
804// for more information on using Contexts.
805func (c *GlobalAccelerator) CreateEndpointGroupWithContext(ctx aws.Context, input *CreateEndpointGroupInput, opts ...request.Option) (*CreateEndpointGroupOutput, error) {
806	req, out := c.CreateEndpointGroupRequest(input)
807	req.SetContext(ctx)
808	req.ApplyOptions(opts...)
809	return out, req.Send()
810}
811
812const opCreateListener = "CreateListener"
813
814// CreateListenerRequest generates a "aws/request.Request" representing the
815// client's request for the CreateListener operation. The "output" return
816// value will be populated with the request's response once the request completes
817// successfully.
818//
819// Use "Send" method on the returned Request to send the API call to the service.
820// the "output" return value is not valid until after Send returns without error.
821//
822// See CreateListener for more information on using the CreateListener
823// API call, and error handling.
824//
825// This method is useful when you want to inject custom logic or configuration
826// into the SDK's request lifecycle. Such as custom headers, or retry logic.
827//
828//
829//    // Example sending a request using the CreateListenerRequest method.
830//    req, resp := client.CreateListenerRequest(params)
831//
832//    err := req.Send()
833//    if err == nil { // resp is now filled
834//        fmt.Println(resp)
835//    }
836//
837// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateListener
838func (c *GlobalAccelerator) CreateListenerRequest(input *CreateListenerInput) (req *request.Request, output *CreateListenerOutput) {
839	op := &request.Operation{
840		Name:       opCreateListener,
841		HTTPMethod: "POST",
842		HTTPPath:   "/",
843	}
844
845	if input == nil {
846		input = &CreateListenerInput{}
847	}
848
849	output = &CreateListenerOutput{}
850	req = c.newRequest(op, input, output)
851	return
852}
853
854// CreateListener API operation for AWS Global Accelerator.
855//
856// Create a listener to process inbound connections from clients to an accelerator.
857// Connections arrive to assigned static IP addresses on a port, port range,
858// or list of port ranges that you specify.
859//
860// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
861// with awserr.Error's Code and Message methods to get detailed information about
862// the error.
863//
864// See the AWS API reference guide for AWS Global Accelerator's
865// API operation CreateListener for usage and error information.
866//
867// Returned Error Types:
868//   * InvalidArgumentException
869//   An argument that you specified is invalid.
870//
871//   * AcceleratorNotFoundException
872//   The accelerator that you specified doesn't exist.
873//
874//   * InvalidPortRangeException
875//   The port numbers that you specified are not valid numbers or are not unique
876//   for this accelerator.
877//
878//   * InternalServiceErrorException
879//   There was an internal error for AWS Global Accelerator.
880//
881//   * LimitExceededException
882//   Processing your request would cause you to exceed an AWS Global Accelerator
883//   limit.
884//
885// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateListener
886func (c *GlobalAccelerator) CreateListener(input *CreateListenerInput) (*CreateListenerOutput, error) {
887	req, out := c.CreateListenerRequest(input)
888	return out, req.Send()
889}
890
891// CreateListenerWithContext is the same as CreateListener with the addition of
892// the ability to pass a context and additional request options.
893//
894// See CreateListener for details on how to use this API operation.
895//
896// The context must be non-nil and will be used for request cancellation. If
897// the context is nil a panic will occur. In the future the SDK may create
898// sub-contexts for http.Requests. See https://golang.org/pkg/context/
899// for more information on using Contexts.
900func (c *GlobalAccelerator) CreateListenerWithContext(ctx aws.Context, input *CreateListenerInput, opts ...request.Option) (*CreateListenerOutput, error) {
901	req, out := c.CreateListenerRequest(input)
902	req.SetContext(ctx)
903	req.ApplyOptions(opts...)
904	return out, req.Send()
905}
906
907const opDeleteAccelerator = "DeleteAccelerator"
908
909// DeleteAcceleratorRequest generates a "aws/request.Request" representing the
910// client's request for the DeleteAccelerator operation. The "output" return
911// value will be populated with the request's response once the request completes
912// successfully.
913//
914// Use "Send" method on the returned Request to send the API call to the service.
915// the "output" return value is not valid until after Send returns without error.
916//
917// See DeleteAccelerator for more information on using the DeleteAccelerator
918// API call, and error handling.
919//
920// This method is useful when you want to inject custom logic or configuration
921// into the SDK's request lifecycle. Such as custom headers, or retry logic.
922//
923//
924//    // Example sending a request using the DeleteAcceleratorRequest method.
925//    req, resp := client.DeleteAcceleratorRequest(params)
926//
927//    err := req.Send()
928//    if err == nil { // resp is now filled
929//        fmt.Println(resp)
930//    }
931//
932// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteAccelerator
933func (c *GlobalAccelerator) DeleteAcceleratorRequest(input *DeleteAcceleratorInput) (req *request.Request, output *DeleteAcceleratorOutput) {
934	op := &request.Operation{
935		Name:       opDeleteAccelerator,
936		HTTPMethod: "POST",
937		HTTPPath:   "/",
938	}
939
940	if input == nil {
941		input = &DeleteAcceleratorInput{}
942	}
943
944	output = &DeleteAcceleratorOutput{}
945	req = c.newRequest(op, input, output)
946	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
947	return
948}
949
950// DeleteAccelerator API operation for AWS Global Accelerator.
951//
952// Delete an accelerator. Before you can delete an accelerator, you must disable
953// it and remove all dependent resources (listeners and endpoint groups). To
954// disable the accelerator, update the accelerator to set Enabled to false.
955//
956// When you create an accelerator, by default, Global Accelerator provides you
957// with a set of two static IP addresses. Alternatively, you can bring your
958// own IP address ranges to Global Accelerator and assign IP addresses from
959// those ranges.
960//
961// The IP addresses are assigned to your accelerator for as long as it exists,
962// even if you disable the accelerator and it no longer accepts or routes traffic.
963// However, when you delete an accelerator, you lose the static IP addresses
964// that are assigned to the accelerator, so you can no longer route traffic
965// by using them. As a best practice, ensure that you have permissions in place
966// to avoid inadvertently deleting accelerators. You can use IAM policies with
967// Global Accelerator to limit the users who have permissions to delete an accelerator.
968// For more information, see Authentication and Access Control (https://docs.aws.amazon.com/global-accelerator/latest/dg/auth-and-access-control.html)
969// in the AWS Global Accelerator Developer Guide.
970//
971// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
972// with awserr.Error's Code and Message methods to get detailed information about
973// the error.
974//
975// See the AWS API reference guide for AWS Global Accelerator's
976// API operation DeleteAccelerator for usage and error information.
977//
978// Returned Error Types:
979//   * AcceleratorNotFoundException
980//   The accelerator that you specified doesn't exist.
981//
982//   * AcceleratorNotDisabledException
983//   The accelerator that you specified could not be disabled.
984//
985//   * AssociatedListenerFoundException
986//   The accelerator that you specified has a listener associated with it. You
987//   must remove all dependent resources from an accelerator before you can delete
988//   it.
989//
990//   * InternalServiceErrorException
991//   There was an internal error for AWS Global Accelerator.
992//
993//   * InvalidArgumentException
994//   An argument that you specified is invalid.
995//
996// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteAccelerator
997func (c *GlobalAccelerator) DeleteAccelerator(input *DeleteAcceleratorInput) (*DeleteAcceleratorOutput, error) {
998	req, out := c.DeleteAcceleratorRequest(input)
999	return out, req.Send()
1000}
1001
1002// DeleteAcceleratorWithContext is the same as DeleteAccelerator with the addition of
1003// the ability to pass a context and additional request options.
1004//
1005// See DeleteAccelerator for details on how to use this API operation.
1006//
1007// The context must be non-nil and will be used for request cancellation. If
1008// the context is nil a panic will occur. In the future the SDK may create
1009// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1010// for more information on using Contexts.
1011func (c *GlobalAccelerator) DeleteAcceleratorWithContext(ctx aws.Context, input *DeleteAcceleratorInput, opts ...request.Option) (*DeleteAcceleratorOutput, error) {
1012	req, out := c.DeleteAcceleratorRequest(input)
1013	req.SetContext(ctx)
1014	req.ApplyOptions(opts...)
1015	return out, req.Send()
1016}
1017
1018const opDeleteCustomRoutingAccelerator = "DeleteCustomRoutingAccelerator"
1019
1020// DeleteCustomRoutingAcceleratorRequest generates a "aws/request.Request" representing the
1021// client's request for the DeleteCustomRoutingAccelerator operation. The "output" return
1022// value will be populated with the request's response once the request completes
1023// successfully.
1024//
1025// Use "Send" method on the returned Request to send the API call to the service.
1026// the "output" return value is not valid until after Send returns without error.
1027//
1028// See DeleteCustomRoutingAccelerator for more information on using the DeleteCustomRoutingAccelerator
1029// API call, and error handling.
1030//
1031// This method is useful when you want to inject custom logic or configuration
1032// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1033//
1034//
1035//    // Example sending a request using the DeleteCustomRoutingAcceleratorRequest method.
1036//    req, resp := client.DeleteCustomRoutingAcceleratorRequest(params)
1037//
1038//    err := req.Send()
1039//    if err == nil { // resp is now filled
1040//        fmt.Println(resp)
1041//    }
1042//
1043// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteCustomRoutingAccelerator
1044func (c *GlobalAccelerator) DeleteCustomRoutingAcceleratorRequest(input *DeleteCustomRoutingAcceleratorInput) (req *request.Request, output *DeleteCustomRoutingAcceleratorOutput) {
1045	op := &request.Operation{
1046		Name:       opDeleteCustomRoutingAccelerator,
1047		HTTPMethod: "POST",
1048		HTTPPath:   "/",
1049	}
1050
1051	if input == nil {
1052		input = &DeleteCustomRoutingAcceleratorInput{}
1053	}
1054
1055	output = &DeleteCustomRoutingAcceleratorOutput{}
1056	req = c.newRequest(op, input, output)
1057	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1058	return
1059}
1060
1061// DeleteCustomRoutingAccelerator API operation for AWS Global Accelerator.
1062//
1063// Delete a custom routing accelerator. Before you can delete an accelerator,
1064// you must disable it and remove all dependent resources (listeners and endpoint
1065// groups). To disable the accelerator, update the accelerator to set Enabled
1066// to false.
1067//
1068// When you create a custom routing accelerator, by default, Global Accelerator
1069// provides you with a set of two static IP addresses.
1070//
1071// The IP addresses are assigned to your accelerator for as long as it exists,
1072// even if you disable the accelerator and it no longer accepts or routes traffic.
1073// However, when you delete an accelerator, you lose the static IP addresses
1074// that are assigned to the accelerator, so you can no longer route traffic
1075// by using them. As a best practice, ensure that you have permissions in place
1076// to avoid inadvertently deleting accelerators. You can use IAM policies with
1077// Global Accelerator to limit the users who have permissions to delete an accelerator.
1078// For more information, see Authentication and Access Control (https://docs.aws.amazon.com/global-accelerator/latest/dg/auth-and-access-control.html)
1079// in the AWS Global Accelerator Developer Guide.
1080//
1081// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1082// with awserr.Error's Code and Message methods to get detailed information about
1083// the error.
1084//
1085// See the AWS API reference guide for AWS Global Accelerator's
1086// API operation DeleteCustomRoutingAccelerator for usage and error information.
1087//
1088// Returned Error Types:
1089//   * AcceleratorNotFoundException
1090//   The accelerator that you specified doesn't exist.
1091//
1092//   * AcceleratorNotDisabledException
1093//   The accelerator that you specified could not be disabled.
1094//
1095//   * AssociatedListenerFoundException
1096//   The accelerator that you specified has a listener associated with it. You
1097//   must remove all dependent resources from an accelerator before you can delete
1098//   it.
1099//
1100//   * InternalServiceErrorException
1101//   There was an internal error for AWS Global Accelerator.
1102//
1103//   * InvalidArgumentException
1104//   An argument that you specified is invalid.
1105//
1106// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteCustomRoutingAccelerator
1107func (c *GlobalAccelerator) DeleteCustomRoutingAccelerator(input *DeleteCustomRoutingAcceleratorInput) (*DeleteCustomRoutingAcceleratorOutput, error) {
1108	req, out := c.DeleteCustomRoutingAcceleratorRequest(input)
1109	return out, req.Send()
1110}
1111
1112// DeleteCustomRoutingAcceleratorWithContext is the same as DeleteCustomRoutingAccelerator with the addition of
1113// the ability to pass a context and additional request options.
1114//
1115// See DeleteCustomRoutingAccelerator for details on how to use this API operation.
1116//
1117// The context must be non-nil and will be used for request cancellation. If
1118// the context is nil a panic will occur. In the future the SDK may create
1119// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1120// for more information on using Contexts.
1121func (c *GlobalAccelerator) DeleteCustomRoutingAcceleratorWithContext(ctx aws.Context, input *DeleteCustomRoutingAcceleratorInput, opts ...request.Option) (*DeleteCustomRoutingAcceleratorOutput, error) {
1122	req, out := c.DeleteCustomRoutingAcceleratorRequest(input)
1123	req.SetContext(ctx)
1124	req.ApplyOptions(opts...)
1125	return out, req.Send()
1126}
1127
1128const opDeleteCustomRoutingEndpointGroup = "DeleteCustomRoutingEndpointGroup"
1129
1130// DeleteCustomRoutingEndpointGroupRequest generates a "aws/request.Request" representing the
1131// client's request for the DeleteCustomRoutingEndpointGroup operation. The "output" return
1132// value will be populated with the request's response once the request completes
1133// successfully.
1134//
1135// Use "Send" method on the returned Request to send the API call to the service.
1136// the "output" return value is not valid until after Send returns without error.
1137//
1138// See DeleteCustomRoutingEndpointGroup for more information on using the DeleteCustomRoutingEndpointGroup
1139// API call, and error handling.
1140//
1141// This method is useful when you want to inject custom logic or configuration
1142// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1143//
1144//
1145//    // Example sending a request using the DeleteCustomRoutingEndpointGroupRequest method.
1146//    req, resp := client.DeleteCustomRoutingEndpointGroupRequest(params)
1147//
1148//    err := req.Send()
1149//    if err == nil { // resp is now filled
1150//        fmt.Println(resp)
1151//    }
1152//
1153// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteCustomRoutingEndpointGroup
1154func (c *GlobalAccelerator) DeleteCustomRoutingEndpointGroupRequest(input *DeleteCustomRoutingEndpointGroupInput) (req *request.Request, output *DeleteCustomRoutingEndpointGroupOutput) {
1155	op := &request.Operation{
1156		Name:       opDeleteCustomRoutingEndpointGroup,
1157		HTTPMethod: "POST",
1158		HTTPPath:   "/",
1159	}
1160
1161	if input == nil {
1162		input = &DeleteCustomRoutingEndpointGroupInput{}
1163	}
1164
1165	output = &DeleteCustomRoutingEndpointGroupOutput{}
1166	req = c.newRequest(op, input, output)
1167	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1168	return
1169}
1170
1171// DeleteCustomRoutingEndpointGroup API operation for AWS Global Accelerator.
1172//
1173// Delete an endpoint group from a listener for a custom routing accelerator.
1174//
1175// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1176// with awserr.Error's Code and Message methods to get detailed information about
1177// the error.
1178//
1179// See the AWS API reference guide for AWS Global Accelerator's
1180// API operation DeleteCustomRoutingEndpointGroup for usage and error information.
1181//
1182// Returned Error Types:
1183//   * InvalidArgumentException
1184//   An argument that you specified is invalid.
1185//
1186//   * EndpointGroupNotFoundException
1187//   The endpoint group that you specified doesn't exist.
1188//
1189//   * InternalServiceErrorException
1190//   There was an internal error for AWS Global Accelerator.
1191//
1192// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteCustomRoutingEndpointGroup
1193func (c *GlobalAccelerator) DeleteCustomRoutingEndpointGroup(input *DeleteCustomRoutingEndpointGroupInput) (*DeleteCustomRoutingEndpointGroupOutput, error) {
1194	req, out := c.DeleteCustomRoutingEndpointGroupRequest(input)
1195	return out, req.Send()
1196}
1197
1198// DeleteCustomRoutingEndpointGroupWithContext is the same as DeleteCustomRoutingEndpointGroup with the addition of
1199// the ability to pass a context and additional request options.
1200//
1201// See DeleteCustomRoutingEndpointGroup for details on how to use this API operation.
1202//
1203// The context must be non-nil and will be used for request cancellation. If
1204// the context is nil a panic will occur. In the future the SDK may create
1205// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1206// for more information on using Contexts.
1207func (c *GlobalAccelerator) DeleteCustomRoutingEndpointGroupWithContext(ctx aws.Context, input *DeleteCustomRoutingEndpointGroupInput, opts ...request.Option) (*DeleteCustomRoutingEndpointGroupOutput, error) {
1208	req, out := c.DeleteCustomRoutingEndpointGroupRequest(input)
1209	req.SetContext(ctx)
1210	req.ApplyOptions(opts...)
1211	return out, req.Send()
1212}
1213
1214const opDeleteCustomRoutingListener = "DeleteCustomRoutingListener"
1215
1216// DeleteCustomRoutingListenerRequest generates a "aws/request.Request" representing the
1217// client's request for the DeleteCustomRoutingListener operation. The "output" return
1218// value will be populated with the request's response once the request completes
1219// successfully.
1220//
1221// Use "Send" method on the returned Request to send the API call to the service.
1222// the "output" return value is not valid until after Send returns without error.
1223//
1224// See DeleteCustomRoutingListener for more information on using the DeleteCustomRoutingListener
1225// API call, and error handling.
1226//
1227// This method is useful when you want to inject custom logic or configuration
1228// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1229//
1230//
1231//    // Example sending a request using the DeleteCustomRoutingListenerRequest method.
1232//    req, resp := client.DeleteCustomRoutingListenerRequest(params)
1233//
1234//    err := req.Send()
1235//    if err == nil { // resp is now filled
1236//        fmt.Println(resp)
1237//    }
1238//
1239// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteCustomRoutingListener
1240func (c *GlobalAccelerator) DeleteCustomRoutingListenerRequest(input *DeleteCustomRoutingListenerInput) (req *request.Request, output *DeleteCustomRoutingListenerOutput) {
1241	op := &request.Operation{
1242		Name:       opDeleteCustomRoutingListener,
1243		HTTPMethod: "POST",
1244		HTTPPath:   "/",
1245	}
1246
1247	if input == nil {
1248		input = &DeleteCustomRoutingListenerInput{}
1249	}
1250
1251	output = &DeleteCustomRoutingListenerOutput{}
1252	req = c.newRequest(op, input, output)
1253	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1254	return
1255}
1256
1257// DeleteCustomRoutingListener API operation for AWS Global Accelerator.
1258//
1259// Delete a listener for a custom routing accelerator.
1260//
1261// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1262// with awserr.Error's Code and Message methods to get detailed information about
1263// the error.
1264//
1265// See the AWS API reference guide for AWS Global Accelerator's
1266// API operation DeleteCustomRoutingListener for usage and error information.
1267//
1268// Returned Error Types:
1269//   * InvalidArgumentException
1270//   An argument that you specified is invalid.
1271//
1272//   * ListenerNotFoundException
1273//   The listener that you specified doesn't exist.
1274//
1275//   * AssociatedEndpointGroupFoundException
1276//   The listener that you specified has an endpoint group associated with it.
1277//   You must remove all dependent resources from a listener before you can delete
1278//   it.
1279//
1280//   * InternalServiceErrorException
1281//   There was an internal error for AWS Global Accelerator.
1282//
1283// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteCustomRoutingListener
1284func (c *GlobalAccelerator) DeleteCustomRoutingListener(input *DeleteCustomRoutingListenerInput) (*DeleteCustomRoutingListenerOutput, error) {
1285	req, out := c.DeleteCustomRoutingListenerRequest(input)
1286	return out, req.Send()
1287}
1288
1289// DeleteCustomRoutingListenerWithContext is the same as DeleteCustomRoutingListener with the addition of
1290// the ability to pass a context and additional request options.
1291//
1292// See DeleteCustomRoutingListener for details on how to use this API operation.
1293//
1294// The context must be non-nil and will be used for request cancellation. If
1295// the context is nil a panic will occur. In the future the SDK may create
1296// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1297// for more information on using Contexts.
1298func (c *GlobalAccelerator) DeleteCustomRoutingListenerWithContext(ctx aws.Context, input *DeleteCustomRoutingListenerInput, opts ...request.Option) (*DeleteCustomRoutingListenerOutput, error) {
1299	req, out := c.DeleteCustomRoutingListenerRequest(input)
1300	req.SetContext(ctx)
1301	req.ApplyOptions(opts...)
1302	return out, req.Send()
1303}
1304
1305const opDeleteEndpointGroup = "DeleteEndpointGroup"
1306
1307// DeleteEndpointGroupRequest generates a "aws/request.Request" representing the
1308// client's request for the DeleteEndpointGroup operation. The "output" return
1309// value will be populated with the request's response once the request completes
1310// successfully.
1311//
1312// Use "Send" method on the returned Request to send the API call to the service.
1313// the "output" return value is not valid until after Send returns without error.
1314//
1315// See DeleteEndpointGroup for more information on using the DeleteEndpointGroup
1316// API call, and error handling.
1317//
1318// This method is useful when you want to inject custom logic or configuration
1319// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1320//
1321//
1322//    // Example sending a request using the DeleteEndpointGroupRequest method.
1323//    req, resp := client.DeleteEndpointGroupRequest(params)
1324//
1325//    err := req.Send()
1326//    if err == nil { // resp is now filled
1327//        fmt.Println(resp)
1328//    }
1329//
1330// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteEndpointGroup
1331func (c *GlobalAccelerator) DeleteEndpointGroupRequest(input *DeleteEndpointGroupInput) (req *request.Request, output *DeleteEndpointGroupOutput) {
1332	op := &request.Operation{
1333		Name:       opDeleteEndpointGroup,
1334		HTTPMethod: "POST",
1335		HTTPPath:   "/",
1336	}
1337
1338	if input == nil {
1339		input = &DeleteEndpointGroupInput{}
1340	}
1341
1342	output = &DeleteEndpointGroupOutput{}
1343	req = c.newRequest(op, input, output)
1344	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1345	return
1346}
1347
1348// DeleteEndpointGroup API operation for AWS Global Accelerator.
1349//
1350// Delete an endpoint group from a listener.
1351//
1352// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1353// with awserr.Error's Code and Message methods to get detailed information about
1354// the error.
1355//
1356// See the AWS API reference guide for AWS Global Accelerator's
1357// API operation DeleteEndpointGroup for usage and error information.
1358//
1359// Returned Error Types:
1360//   * InvalidArgumentException
1361//   An argument that you specified is invalid.
1362//
1363//   * EndpointGroupNotFoundException
1364//   The endpoint group that you specified doesn't exist.
1365//
1366//   * InternalServiceErrorException
1367//   There was an internal error for AWS Global Accelerator.
1368//
1369// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteEndpointGroup
1370func (c *GlobalAccelerator) DeleteEndpointGroup(input *DeleteEndpointGroupInput) (*DeleteEndpointGroupOutput, error) {
1371	req, out := c.DeleteEndpointGroupRequest(input)
1372	return out, req.Send()
1373}
1374
1375// DeleteEndpointGroupWithContext is the same as DeleteEndpointGroup with the addition of
1376// the ability to pass a context and additional request options.
1377//
1378// See DeleteEndpointGroup for details on how to use this API operation.
1379//
1380// The context must be non-nil and will be used for request cancellation. If
1381// the context is nil a panic will occur. In the future the SDK may create
1382// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1383// for more information on using Contexts.
1384func (c *GlobalAccelerator) DeleteEndpointGroupWithContext(ctx aws.Context, input *DeleteEndpointGroupInput, opts ...request.Option) (*DeleteEndpointGroupOutput, error) {
1385	req, out := c.DeleteEndpointGroupRequest(input)
1386	req.SetContext(ctx)
1387	req.ApplyOptions(opts...)
1388	return out, req.Send()
1389}
1390
1391const opDeleteListener = "DeleteListener"
1392
1393// DeleteListenerRequest generates a "aws/request.Request" representing the
1394// client's request for the DeleteListener operation. The "output" return
1395// value will be populated with the request's response once the request completes
1396// successfully.
1397//
1398// Use "Send" method on the returned Request to send the API call to the service.
1399// the "output" return value is not valid until after Send returns without error.
1400//
1401// See DeleteListener for more information on using the DeleteListener
1402// API call, and error handling.
1403//
1404// This method is useful when you want to inject custom logic or configuration
1405// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1406//
1407//
1408//    // Example sending a request using the DeleteListenerRequest method.
1409//    req, resp := client.DeleteListenerRequest(params)
1410//
1411//    err := req.Send()
1412//    if err == nil { // resp is now filled
1413//        fmt.Println(resp)
1414//    }
1415//
1416// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteListener
1417func (c *GlobalAccelerator) DeleteListenerRequest(input *DeleteListenerInput) (req *request.Request, output *DeleteListenerOutput) {
1418	op := &request.Operation{
1419		Name:       opDeleteListener,
1420		HTTPMethod: "POST",
1421		HTTPPath:   "/",
1422	}
1423
1424	if input == nil {
1425		input = &DeleteListenerInput{}
1426	}
1427
1428	output = &DeleteListenerOutput{}
1429	req = c.newRequest(op, input, output)
1430	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1431	return
1432}
1433
1434// DeleteListener API operation for AWS Global Accelerator.
1435//
1436// Delete a listener from an accelerator.
1437//
1438// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1439// with awserr.Error's Code and Message methods to get detailed information about
1440// the error.
1441//
1442// See the AWS API reference guide for AWS Global Accelerator's
1443// API operation DeleteListener for usage and error information.
1444//
1445// Returned Error Types:
1446//   * InvalidArgumentException
1447//   An argument that you specified is invalid.
1448//
1449//   * ListenerNotFoundException
1450//   The listener that you specified doesn't exist.
1451//
1452//   * AssociatedEndpointGroupFoundException
1453//   The listener that you specified has an endpoint group associated with it.
1454//   You must remove all dependent resources from a listener before you can delete
1455//   it.
1456//
1457//   * InternalServiceErrorException
1458//   There was an internal error for AWS Global Accelerator.
1459//
1460// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteListener
1461func (c *GlobalAccelerator) DeleteListener(input *DeleteListenerInput) (*DeleteListenerOutput, error) {
1462	req, out := c.DeleteListenerRequest(input)
1463	return out, req.Send()
1464}
1465
1466// DeleteListenerWithContext is the same as DeleteListener with the addition of
1467// the ability to pass a context and additional request options.
1468//
1469// See DeleteListener for details on how to use this API operation.
1470//
1471// The context must be non-nil and will be used for request cancellation. If
1472// the context is nil a panic will occur. In the future the SDK may create
1473// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1474// for more information on using Contexts.
1475func (c *GlobalAccelerator) DeleteListenerWithContext(ctx aws.Context, input *DeleteListenerInput, opts ...request.Option) (*DeleteListenerOutput, error) {
1476	req, out := c.DeleteListenerRequest(input)
1477	req.SetContext(ctx)
1478	req.ApplyOptions(opts...)
1479	return out, req.Send()
1480}
1481
1482const opDenyCustomRoutingTraffic = "DenyCustomRoutingTraffic"
1483
1484// DenyCustomRoutingTrafficRequest generates a "aws/request.Request" representing the
1485// client's request for the DenyCustomRoutingTraffic operation. The "output" return
1486// value will be populated with the request's response once the request completes
1487// successfully.
1488//
1489// Use "Send" method on the returned Request to send the API call to the service.
1490// the "output" return value is not valid until after Send returns without error.
1491//
1492// See DenyCustomRoutingTraffic for more information on using the DenyCustomRoutingTraffic
1493// API call, and error handling.
1494//
1495// This method is useful when you want to inject custom logic or configuration
1496// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1497//
1498//
1499//    // Example sending a request using the DenyCustomRoutingTrafficRequest method.
1500//    req, resp := client.DenyCustomRoutingTrafficRequest(params)
1501//
1502//    err := req.Send()
1503//    if err == nil { // resp is now filled
1504//        fmt.Println(resp)
1505//    }
1506//
1507// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DenyCustomRoutingTraffic
1508func (c *GlobalAccelerator) DenyCustomRoutingTrafficRequest(input *DenyCustomRoutingTrafficInput) (req *request.Request, output *DenyCustomRoutingTrafficOutput) {
1509	op := &request.Operation{
1510		Name:       opDenyCustomRoutingTraffic,
1511		HTTPMethod: "POST",
1512		HTTPPath:   "/",
1513	}
1514
1515	if input == nil {
1516		input = &DenyCustomRoutingTrafficInput{}
1517	}
1518
1519	output = &DenyCustomRoutingTrafficOutput{}
1520	req = c.newRequest(op, input, output)
1521	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1522	return
1523}
1524
1525// DenyCustomRoutingTraffic API operation for AWS Global Accelerator.
1526//
1527// Specify the Amazon EC2 instance (destination) IP addresses and ports for
1528// a VPC subnet endpoint that cannot receive traffic for a custom routing accelerator.
1529// You can deny traffic to all destinations in the VPC endpoint, or deny traffic
1530// to a specified list of destination IP addresses and ports. Note that you
1531// cannot specify IP addresses or ports outside of the range that you configured
1532// for the endpoint group.
1533//
1534// After you make changes, you can verify that the updates are complete by checking
1535// the status of your accelerator: the status changes from IN_PROGRESS to DEPLOYED.
1536//
1537// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1538// with awserr.Error's Code and Message methods to get detailed information about
1539// the error.
1540//
1541// See the AWS API reference guide for AWS Global Accelerator's
1542// API operation DenyCustomRoutingTraffic for usage and error information.
1543//
1544// Returned Error Types:
1545//   * InvalidArgumentException
1546//   An argument that you specified is invalid.
1547//
1548//   * InternalServiceErrorException
1549//   There was an internal error for AWS Global Accelerator.
1550//
1551// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DenyCustomRoutingTraffic
1552func (c *GlobalAccelerator) DenyCustomRoutingTraffic(input *DenyCustomRoutingTrafficInput) (*DenyCustomRoutingTrafficOutput, error) {
1553	req, out := c.DenyCustomRoutingTrafficRequest(input)
1554	return out, req.Send()
1555}
1556
1557// DenyCustomRoutingTrafficWithContext is the same as DenyCustomRoutingTraffic with the addition of
1558// the ability to pass a context and additional request options.
1559//
1560// See DenyCustomRoutingTraffic for details on how to use this API operation.
1561//
1562// The context must be non-nil and will be used for request cancellation. If
1563// the context is nil a panic will occur. In the future the SDK may create
1564// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1565// for more information on using Contexts.
1566func (c *GlobalAccelerator) DenyCustomRoutingTrafficWithContext(ctx aws.Context, input *DenyCustomRoutingTrafficInput, opts ...request.Option) (*DenyCustomRoutingTrafficOutput, error) {
1567	req, out := c.DenyCustomRoutingTrafficRequest(input)
1568	req.SetContext(ctx)
1569	req.ApplyOptions(opts...)
1570	return out, req.Send()
1571}
1572
1573const opDeprovisionByoipCidr = "DeprovisionByoipCidr"
1574
1575// DeprovisionByoipCidrRequest generates a "aws/request.Request" representing the
1576// client's request for the DeprovisionByoipCidr operation. The "output" return
1577// value will be populated with the request's response once the request completes
1578// successfully.
1579//
1580// Use "Send" method on the returned Request to send the API call to the service.
1581// the "output" return value is not valid until after Send returns without error.
1582//
1583// See DeprovisionByoipCidr for more information on using the DeprovisionByoipCidr
1584// API call, and error handling.
1585//
1586// This method is useful when you want to inject custom logic or configuration
1587// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1588//
1589//
1590//    // Example sending a request using the DeprovisionByoipCidrRequest method.
1591//    req, resp := client.DeprovisionByoipCidrRequest(params)
1592//
1593//    err := req.Send()
1594//    if err == nil { // resp is now filled
1595//        fmt.Println(resp)
1596//    }
1597//
1598// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeprovisionByoipCidr
1599func (c *GlobalAccelerator) DeprovisionByoipCidrRequest(input *DeprovisionByoipCidrInput) (req *request.Request, output *DeprovisionByoipCidrOutput) {
1600	op := &request.Operation{
1601		Name:       opDeprovisionByoipCidr,
1602		HTTPMethod: "POST",
1603		HTTPPath:   "/",
1604	}
1605
1606	if input == nil {
1607		input = &DeprovisionByoipCidrInput{}
1608	}
1609
1610	output = &DeprovisionByoipCidrOutput{}
1611	req = c.newRequest(op, input, output)
1612	return
1613}
1614
1615// DeprovisionByoipCidr API operation for AWS Global Accelerator.
1616//
1617// Releases the specified address range that you provisioned to use with your
1618// AWS resources through bring your own IP addresses (BYOIP) and deletes the
1619// corresponding address pool.
1620//
1621// Before you can release an address range, you must stop advertising it by
1622// using WithdrawByoipCidr (https://docs.aws.amazon.com/global-accelerator/latest/api/WithdrawByoipCidr.html)
1623// and you must not have any accelerators that are using static IP addresses
1624// allocated from its address range.
1625//
1626// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
1627// in the AWS Global Accelerator Developer Guide.
1628//
1629// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1630// with awserr.Error's Code and Message methods to get detailed information about
1631// the error.
1632//
1633// See the AWS API reference guide for AWS Global Accelerator's
1634// API operation DeprovisionByoipCidr for usage and error information.
1635//
1636// Returned Error Types:
1637//   * InternalServiceErrorException
1638//   There was an internal error for AWS Global Accelerator.
1639//
1640//   * InvalidArgumentException
1641//   An argument that you specified is invalid.
1642//
1643//   * AccessDeniedException
1644//   You don't have access permission.
1645//
1646//   * ByoipCidrNotFoundException
1647//   The CIDR that you specified was not found or is incorrect.
1648//
1649//   * IncorrectCidrStateException
1650//   The CIDR that you specified is not valid for this action. For example, the
1651//   state of the CIDR might be incorrect for this action.
1652//
1653// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeprovisionByoipCidr
1654func (c *GlobalAccelerator) DeprovisionByoipCidr(input *DeprovisionByoipCidrInput) (*DeprovisionByoipCidrOutput, error) {
1655	req, out := c.DeprovisionByoipCidrRequest(input)
1656	return out, req.Send()
1657}
1658
1659// DeprovisionByoipCidrWithContext is the same as DeprovisionByoipCidr with the addition of
1660// the ability to pass a context and additional request options.
1661//
1662// See DeprovisionByoipCidr for details on how to use this API operation.
1663//
1664// The context must be non-nil and will be used for request cancellation. If
1665// the context is nil a panic will occur. In the future the SDK may create
1666// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1667// for more information on using Contexts.
1668func (c *GlobalAccelerator) DeprovisionByoipCidrWithContext(ctx aws.Context, input *DeprovisionByoipCidrInput, opts ...request.Option) (*DeprovisionByoipCidrOutput, error) {
1669	req, out := c.DeprovisionByoipCidrRequest(input)
1670	req.SetContext(ctx)
1671	req.ApplyOptions(opts...)
1672	return out, req.Send()
1673}
1674
1675const opDescribeAccelerator = "DescribeAccelerator"
1676
1677// DescribeAcceleratorRequest generates a "aws/request.Request" representing the
1678// client's request for the DescribeAccelerator operation. The "output" return
1679// value will be populated with the request's response once the request completes
1680// successfully.
1681//
1682// Use "Send" method on the returned Request to send the API call to the service.
1683// the "output" return value is not valid until after Send returns without error.
1684//
1685// See DescribeAccelerator for more information on using the DescribeAccelerator
1686// API call, and error handling.
1687//
1688// This method is useful when you want to inject custom logic or configuration
1689// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1690//
1691//
1692//    // Example sending a request using the DescribeAcceleratorRequest method.
1693//    req, resp := client.DescribeAcceleratorRequest(params)
1694//
1695//    err := req.Send()
1696//    if err == nil { // resp is now filled
1697//        fmt.Println(resp)
1698//    }
1699//
1700// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeAccelerator
1701func (c *GlobalAccelerator) DescribeAcceleratorRequest(input *DescribeAcceleratorInput) (req *request.Request, output *DescribeAcceleratorOutput) {
1702	op := &request.Operation{
1703		Name:       opDescribeAccelerator,
1704		HTTPMethod: "POST",
1705		HTTPPath:   "/",
1706	}
1707
1708	if input == nil {
1709		input = &DescribeAcceleratorInput{}
1710	}
1711
1712	output = &DescribeAcceleratorOutput{}
1713	req = c.newRequest(op, input, output)
1714	return
1715}
1716
1717// DescribeAccelerator API operation for AWS Global Accelerator.
1718//
1719// Describe an accelerator.
1720//
1721// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1722// with awserr.Error's Code and Message methods to get detailed information about
1723// the error.
1724//
1725// See the AWS API reference guide for AWS Global Accelerator's
1726// API operation DescribeAccelerator for usage and error information.
1727//
1728// Returned Error Types:
1729//   * AcceleratorNotFoundException
1730//   The accelerator that you specified doesn't exist.
1731//
1732//   * InternalServiceErrorException
1733//   There was an internal error for AWS Global Accelerator.
1734//
1735//   * InvalidArgumentException
1736//   An argument that you specified is invalid.
1737//
1738// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeAccelerator
1739func (c *GlobalAccelerator) DescribeAccelerator(input *DescribeAcceleratorInput) (*DescribeAcceleratorOutput, error) {
1740	req, out := c.DescribeAcceleratorRequest(input)
1741	return out, req.Send()
1742}
1743
1744// DescribeAcceleratorWithContext is the same as DescribeAccelerator with the addition of
1745// the ability to pass a context and additional request options.
1746//
1747// See DescribeAccelerator for details on how to use this API operation.
1748//
1749// The context must be non-nil and will be used for request cancellation. If
1750// the context is nil a panic will occur. In the future the SDK may create
1751// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1752// for more information on using Contexts.
1753func (c *GlobalAccelerator) DescribeAcceleratorWithContext(ctx aws.Context, input *DescribeAcceleratorInput, opts ...request.Option) (*DescribeAcceleratorOutput, error) {
1754	req, out := c.DescribeAcceleratorRequest(input)
1755	req.SetContext(ctx)
1756	req.ApplyOptions(opts...)
1757	return out, req.Send()
1758}
1759
1760const opDescribeAcceleratorAttributes = "DescribeAcceleratorAttributes"
1761
1762// DescribeAcceleratorAttributesRequest generates a "aws/request.Request" representing the
1763// client's request for the DescribeAcceleratorAttributes operation. The "output" return
1764// value will be populated with the request's response once the request completes
1765// successfully.
1766//
1767// Use "Send" method on the returned Request to send the API call to the service.
1768// the "output" return value is not valid until after Send returns without error.
1769//
1770// See DescribeAcceleratorAttributes for more information on using the DescribeAcceleratorAttributes
1771// API call, and error handling.
1772//
1773// This method is useful when you want to inject custom logic or configuration
1774// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1775//
1776//
1777//    // Example sending a request using the DescribeAcceleratorAttributesRequest method.
1778//    req, resp := client.DescribeAcceleratorAttributesRequest(params)
1779//
1780//    err := req.Send()
1781//    if err == nil { // resp is now filled
1782//        fmt.Println(resp)
1783//    }
1784//
1785// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeAcceleratorAttributes
1786func (c *GlobalAccelerator) DescribeAcceleratorAttributesRequest(input *DescribeAcceleratorAttributesInput) (req *request.Request, output *DescribeAcceleratorAttributesOutput) {
1787	op := &request.Operation{
1788		Name:       opDescribeAcceleratorAttributes,
1789		HTTPMethod: "POST",
1790		HTTPPath:   "/",
1791	}
1792
1793	if input == nil {
1794		input = &DescribeAcceleratorAttributesInput{}
1795	}
1796
1797	output = &DescribeAcceleratorAttributesOutput{}
1798	req = c.newRequest(op, input, output)
1799	return
1800}
1801
1802// DescribeAcceleratorAttributes API operation for AWS Global Accelerator.
1803//
1804// Describe the attributes of an accelerator.
1805//
1806// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1807// with awserr.Error's Code and Message methods to get detailed information about
1808// the error.
1809//
1810// See the AWS API reference guide for AWS Global Accelerator's
1811// API operation DescribeAcceleratorAttributes for usage and error information.
1812//
1813// Returned Error Types:
1814//   * AcceleratorNotFoundException
1815//   The accelerator that you specified doesn't exist.
1816//
1817//   * InternalServiceErrorException
1818//   There was an internal error for AWS Global Accelerator.
1819//
1820//   * InvalidArgumentException
1821//   An argument that you specified is invalid.
1822//
1823// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeAcceleratorAttributes
1824func (c *GlobalAccelerator) DescribeAcceleratorAttributes(input *DescribeAcceleratorAttributesInput) (*DescribeAcceleratorAttributesOutput, error) {
1825	req, out := c.DescribeAcceleratorAttributesRequest(input)
1826	return out, req.Send()
1827}
1828
1829// DescribeAcceleratorAttributesWithContext is the same as DescribeAcceleratorAttributes with the addition of
1830// the ability to pass a context and additional request options.
1831//
1832// See DescribeAcceleratorAttributes for details on how to use this API operation.
1833//
1834// The context must be non-nil and will be used for request cancellation. If
1835// the context is nil a panic will occur. In the future the SDK may create
1836// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1837// for more information on using Contexts.
1838func (c *GlobalAccelerator) DescribeAcceleratorAttributesWithContext(ctx aws.Context, input *DescribeAcceleratorAttributesInput, opts ...request.Option) (*DescribeAcceleratorAttributesOutput, error) {
1839	req, out := c.DescribeAcceleratorAttributesRequest(input)
1840	req.SetContext(ctx)
1841	req.ApplyOptions(opts...)
1842	return out, req.Send()
1843}
1844
1845const opDescribeCustomRoutingAccelerator = "DescribeCustomRoutingAccelerator"
1846
1847// DescribeCustomRoutingAcceleratorRequest generates a "aws/request.Request" representing the
1848// client's request for the DescribeCustomRoutingAccelerator operation. The "output" return
1849// value will be populated with the request's response once the request completes
1850// successfully.
1851//
1852// Use "Send" method on the returned Request to send the API call to the service.
1853// the "output" return value is not valid until after Send returns without error.
1854//
1855// See DescribeCustomRoutingAccelerator for more information on using the DescribeCustomRoutingAccelerator
1856// API call, and error handling.
1857//
1858// This method is useful when you want to inject custom logic or configuration
1859// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1860//
1861//
1862//    // Example sending a request using the DescribeCustomRoutingAcceleratorRequest method.
1863//    req, resp := client.DescribeCustomRoutingAcceleratorRequest(params)
1864//
1865//    err := req.Send()
1866//    if err == nil { // resp is now filled
1867//        fmt.Println(resp)
1868//    }
1869//
1870// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingAccelerator
1871func (c *GlobalAccelerator) DescribeCustomRoutingAcceleratorRequest(input *DescribeCustomRoutingAcceleratorInput) (req *request.Request, output *DescribeCustomRoutingAcceleratorOutput) {
1872	op := &request.Operation{
1873		Name:       opDescribeCustomRoutingAccelerator,
1874		HTTPMethod: "POST",
1875		HTTPPath:   "/",
1876	}
1877
1878	if input == nil {
1879		input = &DescribeCustomRoutingAcceleratorInput{}
1880	}
1881
1882	output = &DescribeCustomRoutingAcceleratorOutput{}
1883	req = c.newRequest(op, input, output)
1884	return
1885}
1886
1887// DescribeCustomRoutingAccelerator API operation for AWS Global Accelerator.
1888//
1889// Describe a custom routing accelerator.
1890//
1891// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1892// with awserr.Error's Code and Message methods to get detailed information about
1893// the error.
1894//
1895// See the AWS API reference guide for AWS Global Accelerator's
1896// API operation DescribeCustomRoutingAccelerator for usage and error information.
1897//
1898// Returned Error Types:
1899//   * AcceleratorNotFoundException
1900//   The accelerator that you specified doesn't exist.
1901//
1902//   * InternalServiceErrorException
1903//   There was an internal error for AWS Global Accelerator.
1904//
1905//   * InvalidArgumentException
1906//   An argument that you specified is invalid.
1907//
1908// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingAccelerator
1909func (c *GlobalAccelerator) DescribeCustomRoutingAccelerator(input *DescribeCustomRoutingAcceleratorInput) (*DescribeCustomRoutingAcceleratorOutput, error) {
1910	req, out := c.DescribeCustomRoutingAcceleratorRequest(input)
1911	return out, req.Send()
1912}
1913
1914// DescribeCustomRoutingAcceleratorWithContext is the same as DescribeCustomRoutingAccelerator with the addition of
1915// the ability to pass a context and additional request options.
1916//
1917// See DescribeCustomRoutingAccelerator for details on how to use this API operation.
1918//
1919// The context must be non-nil and will be used for request cancellation. If
1920// the context is nil a panic will occur. In the future the SDK may create
1921// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1922// for more information on using Contexts.
1923func (c *GlobalAccelerator) DescribeCustomRoutingAcceleratorWithContext(ctx aws.Context, input *DescribeCustomRoutingAcceleratorInput, opts ...request.Option) (*DescribeCustomRoutingAcceleratorOutput, error) {
1924	req, out := c.DescribeCustomRoutingAcceleratorRequest(input)
1925	req.SetContext(ctx)
1926	req.ApplyOptions(opts...)
1927	return out, req.Send()
1928}
1929
1930const opDescribeCustomRoutingAcceleratorAttributes = "DescribeCustomRoutingAcceleratorAttributes"
1931
1932// DescribeCustomRoutingAcceleratorAttributesRequest generates a "aws/request.Request" representing the
1933// client's request for the DescribeCustomRoutingAcceleratorAttributes operation. The "output" return
1934// value will be populated with the request's response once the request completes
1935// successfully.
1936//
1937// Use "Send" method on the returned Request to send the API call to the service.
1938// the "output" return value is not valid until after Send returns without error.
1939//
1940// See DescribeCustomRoutingAcceleratorAttributes for more information on using the DescribeCustomRoutingAcceleratorAttributes
1941// API call, and error handling.
1942//
1943// This method is useful when you want to inject custom logic or configuration
1944// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1945//
1946//
1947//    // Example sending a request using the DescribeCustomRoutingAcceleratorAttributesRequest method.
1948//    req, resp := client.DescribeCustomRoutingAcceleratorAttributesRequest(params)
1949//
1950//    err := req.Send()
1951//    if err == nil { // resp is now filled
1952//        fmt.Println(resp)
1953//    }
1954//
1955// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingAcceleratorAttributes
1956func (c *GlobalAccelerator) DescribeCustomRoutingAcceleratorAttributesRequest(input *DescribeCustomRoutingAcceleratorAttributesInput) (req *request.Request, output *DescribeCustomRoutingAcceleratorAttributesOutput) {
1957	op := &request.Operation{
1958		Name:       opDescribeCustomRoutingAcceleratorAttributes,
1959		HTTPMethod: "POST",
1960		HTTPPath:   "/",
1961	}
1962
1963	if input == nil {
1964		input = &DescribeCustomRoutingAcceleratorAttributesInput{}
1965	}
1966
1967	output = &DescribeCustomRoutingAcceleratorAttributesOutput{}
1968	req = c.newRequest(op, input, output)
1969	return
1970}
1971
1972// DescribeCustomRoutingAcceleratorAttributes API operation for AWS Global Accelerator.
1973//
1974// Describe the attributes of a custom routing accelerator.
1975//
1976// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1977// with awserr.Error's Code and Message methods to get detailed information about
1978// the error.
1979//
1980// See the AWS API reference guide for AWS Global Accelerator's
1981// API operation DescribeCustomRoutingAcceleratorAttributes for usage and error information.
1982//
1983// Returned Error Types:
1984//   * AcceleratorNotFoundException
1985//   The accelerator that you specified doesn't exist.
1986//
1987//   * InternalServiceErrorException
1988//   There was an internal error for AWS Global Accelerator.
1989//
1990//   * InvalidArgumentException
1991//   An argument that you specified is invalid.
1992//
1993// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingAcceleratorAttributes
1994func (c *GlobalAccelerator) DescribeCustomRoutingAcceleratorAttributes(input *DescribeCustomRoutingAcceleratorAttributesInput) (*DescribeCustomRoutingAcceleratorAttributesOutput, error) {
1995	req, out := c.DescribeCustomRoutingAcceleratorAttributesRequest(input)
1996	return out, req.Send()
1997}
1998
1999// DescribeCustomRoutingAcceleratorAttributesWithContext is the same as DescribeCustomRoutingAcceleratorAttributes with the addition of
2000// the ability to pass a context and additional request options.
2001//
2002// See DescribeCustomRoutingAcceleratorAttributes for details on how to use this API operation.
2003//
2004// The context must be non-nil and will be used for request cancellation. If
2005// the context is nil a panic will occur. In the future the SDK may create
2006// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2007// for more information on using Contexts.
2008func (c *GlobalAccelerator) DescribeCustomRoutingAcceleratorAttributesWithContext(ctx aws.Context, input *DescribeCustomRoutingAcceleratorAttributesInput, opts ...request.Option) (*DescribeCustomRoutingAcceleratorAttributesOutput, error) {
2009	req, out := c.DescribeCustomRoutingAcceleratorAttributesRequest(input)
2010	req.SetContext(ctx)
2011	req.ApplyOptions(opts...)
2012	return out, req.Send()
2013}
2014
2015const opDescribeCustomRoutingEndpointGroup = "DescribeCustomRoutingEndpointGroup"
2016
2017// DescribeCustomRoutingEndpointGroupRequest generates a "aws/request.Request" representing the
2018// client's request for the DescribeCustomRoutingEndpointGroup operation. The "output" return
2019// value will be populated with the request's response once the request completes
2020// successfully.
2021//
2022// Use "Send" method on the returned Request to send the API call to the service.
2023// the "output" return value is not valid until after Send returns without error.
2024//
2025// See DescribeCustomRoutingEndpointGroup for more information on using the DescribeCustomRoutingEndpointGroup
2026// API call, and error handling.
2027//
2028// This method is useful when you want to inject custom logic or configuration
2029// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2030//
2031//
2032//    // Example sending a request using the DescribeCustomRoutingEndpointGroupRequest method.
2033//    req, resp := client.DescribeCustomRoutingEndpointGroupRequest(params)
2034//
2035//    err := req.Send()
2036//    if err == nil { // resp is now filled
2037//        fmt.Println(resp)
2038//    }
2039//
2040// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingEndpointGroup
2041func (c *GlobalAccelerator) DescribeCustomRoutingEndpointGroupRequest(input *DescribeCustomRoutingEndpointGroupInput) (req *request.Request, output *DescribeCustomRoutingEndpointGroupOutput) {
2042	op := &request.Operation{
2043		Name:       opDescribeCustomRoutingEndpointGroup,
2044		HTTPMethod: "POST",
2045		HTTPPath:   "/",
2046	}
2047
2048	if input == nil {
2049		input = &DescribeCustomRoutingEndpointGroupInput{}
2050	}
2051
2052	output = &DescribeCustomRoutingEndpointGroupOutput{}
2053	req = c.newRequest(op, input, output)
2054	return
2055}
2056
2057// DescribeCustomRoutingEndpointGroup API operation for AWS Global Accelerator.
2058//
2059// Describe an endpoint group for a custom routing accelerator.
2060//
2061// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2062// with awserr.Error's Code and Message methods to get detailed information about
2063// the error.
2064//
2065// See the AWS API reference guide for AWS Global Accelerator's
2066// API operation DescribeCustomRoutingEndpointGroup for usage and error information.
2067//
2068// Returned Error Types:
2069//   * InvalidArgumentException
2070//   An argument that you specified is invalid.
2071//
2072//   * EndpointGroupNotFoundException
2073//   The endpoint group that you specified doesn't exist.
2074//
2075//   * InternalServiceErrorException
2076//   There was an internal error for AWS Global Accelerator.
2077//
2078// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingEndpointGroup
2079func (c *GlobalAccelerator) DescribeCustomRoutingEndpointGroup(input *DescribeCustomRoutingEndpointGroupInput) (*DescribeCustomRoutingEndpointGroupOutput, error) {
2080	req, out := c.DescribeCustomRoutingEndpointGroupRequest(input)
2081	return out, req.Send()
2082}
2083
2084// DescribeCustomRoutingEndpointGroupWithContext is the same as DescribeCustomRoutingEndpointGroup with the addition of
2085// the ability to pass a context and additional request options.
2086//
2087// See DescribeCustomRoutingEndpointGroup for details on how to use this API operation.
2088//
2089// The context must be non-nil and will be used for request cancellation. If
2090// the context is nil a panic will occur. In the future the SDK may create
2091// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2092// for more information on using Contexts.
2093func (c *GlobalAccelerator) DescribeCustomRoutingEndpointGroupWithContext(ctx aws.Context, input *DescribeCustomRoutingEndpointGroupInput, opts ...request.Option) (*DescribeCustomRoutingEndpointGroupOutput, error) {
2094	req, out := c.DescribeCustomRoutingEndpointGroupRequest(input)
2095	req.SetContext(ctx)
2096	req.ApplyOptions(opts...)
2097	return out, req.Send()
2098}
2099
2100const opDescribeCustomRoutingListener = "DescribeCustomRoutingListener"
2101
2102// DescribeCustomRoutingListenerRequest generates a "aws/request.Request" representing the
2103// client's request for the DescribeCustomRoutingListener operation. The "output" return
2104// value will be populated with the request's response once the request completes
2105// successfully.
2106//
2107// Use "Send" method on the returned Request to send the API call to the service.
2108// the "output" return value is not valid until after Send returns without error.
2109//
2110// See DescribeCustomRoutingListener for more information on using the DescribeCustomRoutingListener
2111// API call, and error handling.
2112//
2113// This method is useful when you want to inject custom logic or configuration
2114// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2115//
2116//
2117//    // Example sending a request using the DescribeCustomRoutingListenerRequest method.
2118//    req, resp := client.DescribeCustomRoutingListenerRequest(params)
2119//
2120//    err := req.Send()
2121//    if err == nil { // resp is now filled
2122//        fmt.Println(resp)
2123//    }
2124//
2125// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingListener
2126func (c *GlobalAccelerator) DescribeCustomRoutingListenerRequest(input *DescribeCustomRoutingListenerInput) (req *request.Request, output *DescribeCustomRoutingListenerOutput) {
2127	op := &request.Operation{
2128		Name:       opDescribeCustomRoutingListener,
2129		HTTPMethod: "POST",
2130		HTTPPath:   "/",
2131	}
2132
2133	if input == nil {
2134		input = &DescribeCustomRoutingListenerInput{}
2135	}
2136
2137	output = &DescribeCustomRoutingListenerOutput{}
2138	req = c.newRequest(op, input, output)
2139	return
2140}
2141
2142// DescribeCustomRoutingListener API operation for AWS Global Accelerator.
2143//
2144// The description of a listener for a custom routing accelerator.
2145//
2146// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2147// with awserr.Error's Code and Message methods to get detailed information about
2148// the error.
2149//
2150// See the AWS API reference guide for AWS Global Accelerator's
2151// API operation DescribeCustomRoutingListener for usage and error information.
2152//
2153// Returned Error Types:
2154//   * InvalidArgumentException
2155//   An argument that you specified is invalid.
2156//
2157//   * ListenerNotFoundException
2158//   The listener that you specified doesn't exist.
2159//
2160//   * InternalServiceErrorException
2161//   There was an internal error for AWS Global Accelerator.
2162//
2163// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingListener
2164func (c *GlobalAccelerator) DescribeCustomRoutingListener(input *DescribeCustomRoutingListenerInput) (*DescribeCustomRoutingListenerOutput, error) {
2165	req, out := c.DescribeCustomRoutingListenerRequest(input)
2166	return out, req.Send()
2167}
2168
2169// DescribeCustomRoutingListenerWithContext is the same as DescribeCustomRoutingListener with the addition of
2170// the ability to pass a context and additional request options.
2171//
2172// See DescribeCustomRoutingListener for details on how to use this API operation.
2173//
2174// The context must be non-nil and will be used for request cancellation. If
2175// the context is nil a panic will occur. In the future the SDK may create
2176// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2177// for more information on using Contexts.
2178func (c *GlobalAccelerator) DescribeCustomRoutingListenerWithContext(ctx aws.Context, input *DescribeCustomRoutingListenerInput, opts ...request.Option) (*DescribeCustomRoutingListenerOutput, error) {
2179	req, out := c.DescribeCustomRoutingListenerRequest(input)
2180	req.SetContext(ctx)
2181	req.ApplyOptions(opts...)
2182	return out, req.Send()
2183}
2184
2185const opDescribeEndpointGroup = "DescribeEndpointGroup"
2186
2187// DescribeEndpointGroupRequest generates a "aws/request.Request" representing the
2188// client's request for the DescribeEndpointGroup operation. The "output" return
2189// value will be populated with the request's response once the request completes
2190// successfully.
2191//
2192// Use "Send" method on the returned Request to send the API call to the service.
2193// the "output" return value is not valid until after Send returns without error.
2194//
2195// See DescribeEndpointGroup for more information on using the DescribeEndpointGroup
2196// API call, and error handling.
2197//
2198// This method is useful when you want to inject custom logic or configuration
2199// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2200//
2201//
2202//    // Example sending a request using the DescribeEndpointGroupRequest method.
2203//    req, resp := client.DescribeEndpointGroupRequest(params)
2204//
2205//    err := req.Send()
2206//    if err == nil { // resp is now filled
2207//        fmt.Println(resp)
2208//    }
2209//
2210// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeEndpointGroup
2211func (c *GlobalAccelerator) DescribeEndpointGroupRequest(input *DescribeEndpointGroupInput) (req *request.Request, output *DescribeEndpointGroupOutput) {
2212	op := &request.Operation{
2213		Name:       opDescribeEndpointGroup,
2214		HTTPMethod: "POST",
2215		HTTPPath:   "/",
2216	}
2217
2218	if input == nil {
2219		input = &DescribeEndpointGroupInput{}
2220	}
2221
2222	output = &DescribeEndpointGroupOutput{}
2223	req = c.newRequest(op, input, output)
2224	return
2225}
2226
2227// DescribeEndpointGroup API operation for AWS Global Accelerator.
2228//
2229// Describe an endpoint group.
2230//
2231// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2232// with awserr.Error's Code and Message methods to get detailed information about
2233// the error.
2234//
2235// See the AWS API reference guide for AWS Global Accelerator's
2236// API operation DescribeEndpointGroup for usage and error information.
2237//
2238// Returned Error Types:
2239//   * InvalidArgumentException
2240//   An argument that you specified is invalid.
2241//
2242//   * EndpointGroupNotFoundException
2243//   The endpoint group that you specified doesn't exist.
2244//
2245//   * InternalServiceErrorException
2246//   There was an internal error for AWS Global Accelerator.
2247//
2248// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeEndpointGroup
2249func (c *GlobalAccelerator) DescribeEndpointGroup(input *DescribeEndpointGroupInput) (*DescribeEndpointGroupOutput, error) {
2250	req, out := c.DescribeEndpointGroupRequest(input)
2251	return out, req.Send()
2252}
2253
2254// DescribeEndpointGroupWithContext is the same as DescribeEndpointGroup with the addition of
2255// the ability to pass a context and additional request options.
2256//
2257// See DescribeEndpointGroup for details on how to use this API operation.
2258//
2259// The context must be non-nil and will be used for request cancellation. If
2260// the context is nil a panic will occur. In the future the SDK may create
2261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2262// for more information on using Contexts.
2263func (c *GlobalAccelerator) DescribeEndpointGroupWithContext(ctx aws.Context, input *DescribeEndpointGroupInput, opts ...request.Option) (*DescribeEndpointGroupOutput, error) {
2264	req, out := c.DescribeEndpointGroupRequest(input)
2265	req.SetContext(ctx)
2266	req.ApplyOptions(opts...)
2267	return out, req.Send()
2268}
2269
2270const opDescribeListener = "DescribeListener"
2271
2272// DescribeListenerRequest generates a "aws/request.Request" representing the
2273// client's request for the DescribeListener operation. The "output" return
2274// value will be populated with the request's response once the request completes
2275// successfully.
2276//
2277// Use "Send" method on the returned Request to send the API call to the service.
2278// the "output" return value is not valid until after Send returns without error.
2279//
2280// See DescribeListener for more information on using the DescribeListener
2281// API call, and error handling.
2282//
2283// This method is useful when you want to inject custom logic or configuration
2284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2285//
2286//
2287//    // Example sending a request using the DescribeListenerRequest method.
2288//    req, resp := client.DescribeListenerRequest(params)
2289//
2290//    err := req.Send()
2291//    if err == nil { // resp is now filled
2292//        fmt.Println(resp)
2293//    }
2294//
2295// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeListener
2296func (c *GlobalAccelerator) DescribeListenerRequest(input *DescribeListenerInput) (req *request.Request, output *DescribeListenerOutput) {
2297	op := &request.Operation{
2298		Name:       opDescribeListener,
2299		HTTPMethod: "POST",
2300		HTTPPath:   "/",
2301	}
2302
2303	if input == nil {
2304		input = &DescribeListenerInput{}
2305	}
2306
2307	output = &DescribeListenerOutput{}
2308	req = c.newRequest(op, input, output)
2309	return
2310}
2311
2312// DescribeListener API operation for AWS Global Accelerator.
2313//
2314// Describe a listener.
2315//
2316// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2317// with awserr.Error's Code and Message methods to get detailed information about
2318// the error.
2319//
2320// See the AWS API reference guide for AWS Global Accelerator's
2321// API operation DescribeListener for usage and error information.
2322//
2323// Returned Error Types:
2324//   * InvalidArgumentException
2325//   An argument that you specified is invalid.
2326//
2327//   * ListenerNotFoundException
2328//   The listener that you specified doesn't exist.
2329//
2330//   * InternalServiceErrorException
2331//   There was an internal error for AWS Global Accelerator.
2332//
2333// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeListener
2334func (c *GlobalAccelerator) DescribeListener(input *DescribeListenerInput) (*DescribeListenerOutput, error) {
2335	req, out := c.DescribeListenerRequest(input)
2336	return out, req.Send()
2337}
2338
2339// DescribeListenerWithContext is the same as DescribeListener with the addition of
2340// the ability to pass a context and additional request options.
2341//
2342// See DescribeListener for details on how to use this API operation.
2343//
2344// The context must be non-nil and will be used for request cancellation. If
2345// the context is nil a panic will occur. In the future the SDK may create
2346// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2347// for more information on using Contexts.
2348func (c *GlobalAccelerator) DescribeListenerWithContext(ctx aws.Context, input *DescribeListenerInput, opts ...request.Option) (*DescribeListenerOutput, error) {
2349	req, out := c.DescribeListenerRequest(input)
2350	req.SetContext(ctx)
2351	req.ApplyOptions(opts...)
2352	return out, req.Send()
2353}
2354
2355const opListAccelerators = "ListAccelerators"
2356
2357// ListAcceleratorsRequest generates a "aws/request.Request" representing the
2358// client's request for the ListAccelerators operation. The "output" return
2359// value will be populated with the request's response once the request completes
2360// successfully.
2361//
2362// Use "Send" method on the returned Request to send the API call to the service.
2363// the "output" return value is not valid until after Send returns without error.
2364//
2365// See ListAccelerators for more information on using the ListAccelerators
2366// API call, and error handling.
2367//
2368// This method is useful when you want to inject custom logic or configuration
2369// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2370//
2371//
2372//    // Example sending a request using the ListAcceleratorsRequest method.
2373//    req, resp := client.ListAcceleratorsRequest(params)
2374//
2375//    err := req.Send()
2376//    if err == nil { // resp is now filled
2377//        fmt.Println(resp)
2378//    }
2379//
2380// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListAccelerators
2381func (c *GlobalAccelerator) ListAcceleratorsRequest(input *ListAcceleratorsInput) (req *request.Request, output *ListAcceleratorsOutput) {
2382	op := &request.Operation{
2383		Name:       opListAccelerators,
2384		HTTPMethod: "POST",
2385		HTTPPath:   "/",
2386		Paginator: &request.Paginator{
2387			InputTokens:     []string{"NextToken"},
2388			OutputTokens:    []string{"NextToken"},
2389			LimitToken:      "MaxResults",
2390			TruncationToken: "",
2391		},
2392	}
2393
2394	if input == nil {
2395		input = &ListAcceleratorsInput{}
2396	}
2397
2398	output = &ListAcceleratorsOutput{}
2399	req = c.newRequest(op, input, output)
2400	return
2401}
2402
2403// ListAccelerators API operation for AWS Global Accelerator.
2404//
2405// List the accelerators for an AWS account.
2406//
2407// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2408// with awserr.Error's Code and Message methods to get detailed information about
2409// the error.
2410//
2411// See the AWS API reference guide for AWS Global Accelerator's
2412// API operation ListAccelerators for usage and error information.
2413//
2414// Returned Error Types:
2415//   * InvalidArgumentException
2416//   An argument that you specified is invalid.
2417//
2418//   * InvalidNextTokenException
2419//   There isn't another item to return.
2420//
2421//   * InternalServiceErrorException
2422//   There was an internal error for AWS Global Accelerator.
2423//
2424// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListAccelerators
2425func (c *GlobalAccelerator) ListAccelerators(input *ListAcceleratorsInput) (*ListAcceleratorsOutput, error) {
2426	req, out := c.ListAcceleratorsRequest(input)
2427	return out, req.Send()
2428}
2429
2430// ListAcceleratorsWithContext is the same as ListAccelerators with the addition of
2431// the ability to pass a context and additional request options.
2432//
2433// See ListAccelerators for details on how to use this API operation.
2434//
2435// The context must be non-nil and will be used for request cancellation. If
2436// the context is nil a panic will occur. In the future the SDK may create
2437// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2438// for more information on using Contexts.
2439func (c *GlobalAccelerator) ListAcceleratorsWithContext(ctx aws.Context, input *ListAcceleratorsInput, opts ...request.Option) (*ListAcceleratorsOutput, error) {
2440	req, out := c.ListAcceleratorsRequest(input)
2441	req.SetContext(ctx)
2442	req.ApplyOptions(opts...)
2443	return out, req.Send()
2444}
2445
2446// ListAcceleratorsPages iterates over the pages of a ListAccelerators operation,
2447// calling the "fn" function with the response data for each page. To stop
2448// iterating, return false from the fn function.
2449//
2450// See ListAccelerators method for more information on how to use this operation.
2451//
2452// Note: This operation can generate multiple requests to a service.
2453//
2454//    // Example iterating over at most 3 pages of a ListAccelerators operation.
2455//    pageNum := 0
2456//    err := client.ListAcceleratorsPages(params,
2457//        func(page *globalaccelerator.ListAcceleratorsOutput, lastPage bool) bool {
2458//            pageNum++
2459//            fmt.Println(page)
2460//            return pageNum <= 3
2461//        })
2462//
2463func (c *GlobalAccelerator) ListAcceleratorsPages(input *ListAcceleratorsInput, fn func(*ListAcceleratorsOutput, bool) bool) error {
2464	return c.ListAcceleratorsPagesWithContext(aws.BackgroundContext(), input, fn)
2465}
2466
2467// ListAcceleratorsPagesWithContext same as ListAcceleratorsPages except
2468// it takes a Context and allows setting request options on the pages.
2469//
2470// The context must be non-nil and will be used for request cancellation. If
2471// the context is nil a panic will occur. In the future the SDK may create
2472// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2473// for more information on using Contexts.
2474func (c *GlobalAccelerator) ListAcceleratorsPagesWithContext(ctx aws.Context, input *ListAcceleratorsInput, fn func(*ListAcceleratorsOutput, bool) bool, opts ...request.Option) error {
2475	p := request.Pagination{
2476		NewRequest: func() (*request.Request, error) {
2477			var inCpy *ListAcceleratorsInput
2478			if input != nil {
2479				tmp := *input
2480				inCpy = &tmp
2481			}
2482			req, _ := c.ListAcceleratorsRequest(inCpy)
2483			req.SetContext(ctx)
2484			req.ApplyOptions(opts...)
2485			return req, nil
2486		},
2487	}
2488
2489	for p.Next() {
2490		if !fn(p.Page().(*ListAcceleratorsOutput), !p.HasNextPage()) {
2491			break
2492		}
2493	}
2494
2495	return p.Err()
2496}
2497
2498const opListByoipCidrs = "ListByoipCidrs"
2499
2500// ListByoipCidrsRequest generates a "aws/request.Request" representing the
2501// client's request for the ListByoipCidrs operation. The "output" return
2502// value will be populated with the request's response once the request completes
2503// successfully.
2504//
2505// Use "Send" method on the returned Request to send the API call to the service.
2506// the "output" return value is not valid until after Send returns without error.
2507//
2508// See ListByoipCidrs for more information on using the ListByoipCidrs
2509// API call, and error handling.
2510//
2511// This method is useful when you want to inject custom logic or configuration
2512// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2513//
2514//
2515//    // Example sending a request using the ListByoipCidrsRequest method.
2516//    req, resp := client.ListByoipCidrsRequest(params)
2517//
2518//    err := req.Send()
2519//    if err == nil { // resp is now filled
2520//        fmt.Println(resp)
2521//    }
2522//
2523// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListByoipCidrs
2524func (c *GlobalAccelerator) ListByoipCidrsRequest(input *ListByoipCidrsInput) (req *request.Request, output *ListByoipCidrsOutput) {
2525	op := &request.Operation{
2526		Name:       opListByoipCidrs,
2527		HTTPMethod: "POST",
2528		HTTPPath:   "/",
2529		Paginator: &request.Paginator{
2530			InputTokens:     []string{"NextToken"},
2531			OutputTokens:    []string{"NextToken"},
2532			LimitToken:      "MaxResults",
2533			TruncationToken: "",
2534		},
2535	}
2536
2537	if input == nil {
2538		input = &ListByoipCidrsInput{}
2539	}
2540
2541	output = &ListByoipCidrsOutput{}
2542	req = c.newRequest(op, input, output)
2543	return
2544}
2545
2546// ListByoipCidrs API operation for AWS Global Accelerator.
2547//
2548// Lists the IP address ranges that were specified in calls to ProvisionByoipCidr
2549// (https://docs.aws.amazon.com/global-accelerator/latest/api/ProvisionByoipCidr.html),
2550// including the current state and a history of state changes.
2551//
2552// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2553// with awserr.Error's Code and Message methods to get detailed information about
2554// the error.
2555//
2556// See the AWS API reference guide for AWS Global Accelerator's
2557// API operation ListByoipCidrs for usage and error information.
2558//
2559// Returned Error Types:
2560//   * InternalServiceErrorException
2561//   There was an internal error for AWS Global Accelerator.
2562//
2563//   * InvalidArgumentException
2564//   An argument that you specified is invalid.
2565//
2566//   * AccessDeniedException
2567//   You don't have access permission.
2568//
2569//   * InvalidNextTokenException
2570//   There isn't another item to return.
2571//
2572// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListByoipCidrs
2573func (c *GlobalAccelerator) ListByoipCidrs(input *ListByoipCidrsInput) (*ListByoipCidrsOutput, error) {
2574	req, out := c.ListByoipCidrsRequest(input)
2575	return out, req.Send()
2576}
2577
2578// ListByoipCidrsWithContext is the same as ListByoipCidrs with the addition of
2579// the ability to pass a context and additional request options.
2580//
2581// See ListByoipCidrs for details on how to use this API operation.
2582//
2583// The context must be non-nil and will be used for request cancellation. If
2584// the context is nil a panic will occur. In the future the SDK may create
2585// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2586// for more information on using Contexts.
2587func (c *GlobalAccelerator) ListByoipCidrsWithContext(ctx aws.Context, input *ListByoipCidrsInput, opts ...request.Option) (*ListByoipCidrsOutput, error) {
2588	req, out := c.ListByoipCidrsRequest(input)
2589	req.SetContext(ctx)
2590	req.ApplyOptions(opts...)
2591	return out, req.Send()
2592}
2593
2594// ListByoipCidrsPages iterates over the pages of a ListByoipCidrs operation,
2595// calling the "fn" function with the response data for each page. To stop
2596// iterating, return false from the fn function.
2597//
2598// See ListByoipCidrs method for more information on how to use this operation.
2599//
2600// Note: This operation can generate multiple requests to a service.
2601//
2602//    // Example iterating over at most 3 pages of a ListByoipCidrs operation.
2603//    pageNum := 0
2604//    err := client.ListByoipCidrsPages(params,
2605//        func(page *globalaccelerator.ListByoipCidrsOutput, lastPage bool) bool {
2606//            pageNum++
2607//            fmt.Println(page)
2608//            return pageNum <= 3
2609//        })
2610//
2611func (c *GlobalAccelerator) ListByoipCidrsPages(input *ListByoipCidrsInput, fn func(*ListByoipCidrsOutput, bool) bool) error {
2612	return c.ListByoipCidrsPagesWithContext(aws.BackgroundContext(), input, fn)
2613}
2614
2615// ListByoipCidrsPagesWithContext same as ListByoipCidrsPages except
2616// it takes a Context and allows setting request options on the pages.
2617//
2618// The context must be non-nil and will be used for request cancellation. If
2619// the context is nil a panic will occur. In the future the SDK may create
2620// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2621// for more information on using Contexts.
2622func (c *GlobalAccelerator) ListByoipCidrsPagesWithContext(ctx aws.Context, input *ListByoipCidrsInput, fn func(*ListByoipCidrsOutput, bool) bool, opts ...request.Option) error {
2623	p := request.Pagination{
2624		NewRequest: func() (*request.Request, error) {
2625			var inCpy *ListByoipCidrsInput
2626			if input != nil {
2627				tmp := *input
2628				inCpy = &tmp
2629			}
2630			req, _ := c.ListByoipCidrsRequest(inCpy)
2631			req.SetContext(ctx)
2632			req.ApplyOptions(opts...)
2633			return req, nil
2634		},
2635	}
2636
2637	for p.Next() {
2638		if !fn(p.Page().(*ListByoipCidrsOutput), !p.HasNextPage()) {
2639			break
2640		}
2641	}
2642
2643	return p.Err()
2644}
2645
2646const opListCustomRoutingAccelerators = "ListCustomRoutingAccelerators"
2647
2648// ListCustomRoutingAcceleratorsRequest generates a "aws/request.Request" representing the
2649// client's request for the ListCustomRoutingAccelerators operation. The "output" return
2650// value will be populated with the request's response once the request completes
2651// successfully.
2652//
2653// Use "Send" method on the returned Request to send the API call to the service.
2654// the "output" return value is not valid until after Send returns without error.
2655//
2656// See ListCustomRoutingAccelerators for more information on using the ListCustomRoutingAccelerators
2657// API call, and error handling.
2658//
2659// This method is useful when you want to inject custom logic or configuration
2660// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2661//
2662//
2663//    // Example sending a request using the ListCustomRoutingAcceleratorsRequest method.
2664//    req, resp := client.ListCustomRoutingAcceleratorsRequest(params)
2665//
2666//    err := req.Send()
2667//    if err == nil { // resp is now filled
2668//        fmt.Println(resp)
2669//    }
2670//
2671// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingAccelerators
2672func (c *GlobalAccelerator) ListCustomRoutingAcceleratorsRequest(input *ListCustomRoutingAcceleratorsInput) (req *request.Request, output *ListCustomRoutingAcceleratorsOutput) {
2673	op := &request.Operation{
2674		Name:       opListCustomRoutingAccelerators,
2675		HTTPMethod: "POST",
2676		HTTPPath:   "/",
2677		Paginator: &request.Paginator{
2678			InputTokens:     []string{"NextToken"},
2679			OutputTokens:    []string{"NextToken"},
2680			LimitToken:      "MaxResults",
2681			TruncationToken: "",
2682		},
2683	}
2684
2685	if input == nil {
2686		input = &ListCustomRoutingAcceleratorsInput{}
2687	}
2688
2689	output = &ListCustomRoutingAcceleratorsOutput{}
2690	req = c.newRequest(op, input, output)
2691	return
2692}
2693
2694// ListCustomRoutingAccelerators API operation for AWS Global Accelerator.
2695//
2696// List the custom routing accelerators for an AWS account.
2697//
2698// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2699// with awserr.Error's Code and Message methods to get detailed information about
2700// the error.
2701//
2702// See the AWS API reference guide for AWS Global Accelerator's
2703// API operation ListCustomRoutingAccelerators for usage and error information.
2704//
2705// Returned Error Types:
2706//   * InvalidArgumentException
2707//   An argument that you specified is invalid.
2708//
2709//   * InvalidNextTokenException
2710//   There isn't another item to return.
2711//
2712//   * InternalServiceErrorException
2713//   There was an internal error for AWS Global Accelerator.
2714//
2715// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingAccelerators
2716func (c *GlobalAccelerator) ListCustomRoutingAccelerators(input *ListCustomRoutingAcceleratorsInput) (*ListCustomRoutingAcceleratorsOutput, error) {
2717	req, out := c.ListCustomRoutingAcceleratorsRequest(input)
2718	return out, req.Send()
2719}
2720
2721// ListCustomRoutingAcceleratorsWithContext is the same as ListCustomRoutingAccelerators with the addition of
2722// the ability to pass a context and additional request options.
2723//
2724// See ListCustomRoutingAccelerators for details on how to use this API operation.
2725//
2726// The context must be non-nil and will be used for request cancellation. If
2727// the context is nil a panic will occur. In the future the SDK may create
2728// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2729// for more information on using Contexts.
2730func (c *GlobalAccelerator) ListCustomRoutingAcceleratorsWithContext(ctx aws.Context, input *ListCustomRoutingAcceleratorsInput, opts ...request.Option) (*ListCustomRoutingAcceleratorsOutput, error) {
2731	req, out := c.ListCustomRoutingAcceleratorsRequest(input)
2732	req.SetContext(ctx)
2733	req.ApplyOptions(opts...)
2734	return out, req.Send()
2735}
2736
2737// ListCustomRoutingAcceleratorsPages iterates over the pages of a ListCustomRoutingAccelerators operation,
2738// calling the "fn" function with the response data for each page. To stop
2739// iterating, return false from the fn function.
2740//
2741// See ListCustomRoutingAccelerators method for more information on how to use this operation.
2742//
2743// Note: This operation can generate multiple requests to a service.
2744//
2745//    // Example iterating over at most 3 pages of a ListCustomRoutingAccelerators operation.
2746//    pageNum := 0
2747//    err := client.ListCustomRoutingAcceleratorsPages(params,
2748//        func(page *globalaccelerator.ListCustomRoutingAcceleratorsOutput, lastPage bool) bool {
2749//            pageNum++
2750//            fmt.Println(page)
2751//            return pageNum <= 3
2752//        })
2753//
2754func (c *GlobalAccelerator) ListCustomRoutingAcceleratorsPages(input *ListCustomRoutingAcceleratorsInput, fn func(*ListCustomRoutingAcceleratorsOutput, bool) bool) error {
2755	return c.ListCustomRoutingAcceleratorsPagesWithContext(aws.BackgroundContext(), input, fn)
2756}
2757
2758// ListCustomRoutingAcceleratorsPagesWithContext same as ListCustomRoutingAcceleratorsPages except
2759// it takes a Context and allows setting request options on the pages.
2760//
2761// The context must be non-nil and will be used for request cancellation. If
2762// the context is nil a panic will occur. In the future the SDK may create
2763// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2764// for more information on using Contexts.
2765func (c *GlobalAccelerator) ListCustomRoutingAcceleratorsPagesWithContext(ctx aws.Context, input *ListCustomRoutingAcceleratorsInput, fn func(*ListCustomRoutingAcceleratorsOutput, bool) bool, opts ...request.Option) error {
2766	p := request.Pagination{
2767		NewRequest: func() (*request.Request, error) {
2768			var inCpy *ListCustomRoutingAcceleratorsInput
2769			if input != nil {
2770				tmp := *input
2771				inCpy = &tmp
2772			}
2773			req, _ := c.ListCustomRoutingAcceleratorsRequest(inCpy)
2774			req.SetContext(ctx)
2775			req.ApplyOptions(opts...)
2776			return req, nil
2777		},
2778	}
2779
2780	for p.Next() {
2781		if !fn(p.Page().(*ListCustomRoutingAcceleratorsOutput), !p.HasNextPage()) {
2782			break
2783		}
2784	}
2785
2786	return p.Err()
2787}
2788
2789const opListCustomRoutingEndpointGroups = "ListCustomRoutingEndpointGroups"
2790
2791// ListCustomRoutingEndpointGroupsRequest generates a "aws/request.Request" representing the
2792// client's request for the ListCustomRoutingEndpointGroups operation. The "output" return
2793// value will be populated with the request's response once the request completes
2794// successfully.
2795//
2796// Use "Send" method on the returned Request to send the API call to the service.
2797// the "output" return value is not valid until after Send returns without error.
2798//
2799// See ListCustomRoutingEndpointGroups for more information on using the ListCustomRoutingEndpointGroups
2800// API call, and error handling.
2801//
2802// This method is useful when you want to inject custom logic or configuration
2803// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2804//
2805//
2806//    // Example sending a request using the ListCustomRoutingEndpointGroupsRequest method.
2807//    req, resp := client.ListCustomRoutingEndpointGroupsRequest(params)
2808//
2809//    err := req.Send()
2810//    if err == nil { // resp is now filled
2811//        fmt.Println(resp)
2812//    }
2813//
2814// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingEndpointGroups
2815func (c *GlobalAccelerator) ListCustomRoutingEndpointGroupsRequest(input *ListCustomRoutingEndpointGroupsInput) (req *request.Request, output *ListCustomRoutingEndpointGroupsOutput) {
2816	op := &request.Operation{
2817		Name:       opListCustomRoutingEndpointGroups,
2818		HTTPMethod: "POST",
2819		HTTPPath:   "/",
2820		Paginator: &request.Paginator{
2821			InputTokens:     []string{"NextToken"},
2822			OutputTokens:    []string{"NextToken"},
2823			LimitToken:      "MaxResults",
2824			TruncationToken: "",
2825		},
2826	}
2827
2828	if input == nil {
2829		input = &ListCustomRoutingEndpointGroupsInput{}
2830	}
2831
2832	output = &ListCustomRoutingEndpointGroupsOutput{}
2833	req = c.newRequest(op, input, output)
2834	return
2835}
2836
2837// ListCustomRoutingEndpointGroups API operation for AWS Global Accelerator.
2838//
2839// List the endpoint groups that are associated with a listener for a custom
2840// routing accelerator.
2841//
2842// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2843// with awserr.Error's Code and Message methods to get detailed information about
2844// the error.
2845//
2846// See the AWS API reference guide for AWS Global Accelerator's
2847// API operation ListCustomRoutingEndpointGroups for usage and error information.
2848//
2849// Returned Error Types:
2850//   * ListenerNotFoundException
2851//   The listener that you specified doesn't exist.
2852//
2853//   * InvalidNextTokenException
2854//   There isn't another item to return.
2855//
2856//   * InvalidArgumentException
2857//   An argument that you specified is invalid.
2858//
2859//   * InternalServiceErrorException
2860//   There was an internal error for AWS Global Accelerator.
2861//
2862// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingEndpointGroups
2863func (c *GlobalAccelerator) ListCustomRoutingEndpointGroups(input *ListCustomRoutingEndpointGroupsInput) (*ListCustomRoutingEndpointGroupsOutput, error) {
2864	req, out := c.ListCustomRoutingEndpointGroupsRequest(input)
2865	return out, req.Send()
2866}
2867
2868// ListCustomRoutingEndpointGroupsWithContext is the same as ListCustomRoutingEndpointGroups with the addition of
2869// the ability to pass a context and additional request options.
2870//
2871// See ListCustomRoutingEndpointGroups for details on how to use this API operation.
2872//
2873// The context must be non-nil and will be used for request cancellation. If
2874// the context is nil a panic will occur. In the future the SDK may create
2875// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2876// for more information on using Contexts.
2877func (c *GlobalAccelerator) ListCustomRoutingEndpointGroupsWithContext(ctx aws.Context, input *ListCustomRoutingEndpointGroupsInput, opts ...request.Option) (*ListCustomRoutingEndpointGroupsOutput, error) {
2878	req, out := c.ListCustomRoutingEndpointGroupsRequest(input)
2879	req.SetContext(ctx)
2880	req.ApplyOptions(opts...)
2881	return out, req.Send()
2882}
2883
2884// ListCustomRoutingEndpointGroupsPages iterates over the pages of a ListCustomRoutingEndpointGroups operation,
2885// calling the "fn" function with the response data for each page. To stop
2886// iterating, return false from the fn function.
2887//
2888// See ListCustomRoutingEndpointGroups method for more information on how to use this operation.
2889//
2890// Note: This operation can generate multiple requests to a service.
2891//
2892//    // Example iterating over at most 3 pages of a ListCustomRoutingEndpointGroups operation.
2893//    pageNum := 0
2894//    err := client.ListCustomRoutingEndpointGroupsPages(params,
2895//        func(page *globalaccelerator.ListCustomRoutingEndpointGroupsOutput, lastPage bool) bool {
2896//            pageNum++
2897//            fmt.Println(page)
2898//            return pageNum <= 3
2899//        })
2900//
2901func (c *GlobalAccelerator) ListCustomRoutingEndpointGroupsPages(input *ListCustomRoutingEndpointGroupsInput, fn func(*ListCustomRoutingEndpointGroupsOutput, bool) bool) error {
2902	return c.ListCustomRoutingEndpointGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
2903}
2904
2905// ListCustomRoutingEndpointGroupsPagesWithContext same as ListCustomRoutingEndpointGroupsPages except
2906// it takes a Context and allows setting request options on the pages.
2907//
2908// The context must be non-nil and will be used for request cancellation. If
2909// the context is nil a panic will occur. In the future the SDK may create
2910// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2911// for more information on using Contexts.
2912func (c *GlobalAccelerator) ListCustomRoutingEndpointGroupsPagesWithContext(ctx aws.Context, input *ListCustomRoutingEndpointGroupsInput, fn func(*ListCustomRoutingEndpointGroupsOutput, bool) bool, opts ...request.Option) error {
2913	p := request.Pagination{
2914		NewRequest: func() (*request.Request, error) {
2915			var inCpy *ListCustomRoutingEndpointGroupsInput
2916			if input != nil {
2917				tmp := *input
2918				inCpy = &tmp
2919			}
2920			req, _ := c.ListCustomRoutingEndpointGroupsRequest(inCpy)
2921			req.SetContext(ctx)
2922			req.ApplyOptions(opts...)
2923			return req, nil
2924		},
2925	}
2926
2927	for p.Next() {
2928		if !fn(p.Page().(*ListCustomRoutingEndpointGroupsOutput), !p.HasNextPage()) {
2929			break
2930		}
2931	}
2932
2933	return p.Err()
2934}
2935
2936const opListCustomRoutingListeners = "ListCustomRoutingListeners"
2937
2938// ListCustomRoutingListenersRequest generates a "aws/request.Request" representing the
2939// client's request for the ListCustomRoutingListeners operation. The "output" return
2940// value will be populated with the request's response once the request completes
2941// successfully.
2942//
2943// Use "Send" method on the returned Request to send the API call to the service.
2944// the "output" return value is not valid until after Send returns without error.
2945//
2946// See ListCustomRoutingListeners for more information on using the ListCustomRoutingListeners
2947// API call, and error handling.
2948//
2949// This method is useful when you want to inject custom logic or configuration
2950// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2951//
2952//
2953//    // Example sending a request using the ListCustomRoutingListenersRequest method.
2954//    req, resp := client.ListCustomRoutingListenersRequest(params)
2955//
2956//    err := req.Send()
2957//    if err == nil { // resp is now filled
2958//        fmt.Println(resp)
2959//    }
2960//
2961// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingListeners
2962func (c *GlobalAccelerator) ListCustomRoutingListenersRequest(input *ListCustomRoutingListenersInput) (req *request.Request, output *ListCustomRoutingListenersOutput) {
2963	op := &request.Operation{
2964		Name:       opListCustomRoutingListeners,
2965		HTTPMethod: "POST",
2966		HTTPPath:   "/",
2967		Paginator: &request.Paginator{
2968			InputTokens:     []string{"NextToken"},
2969			OutputTokens:    []string{"NextToken"},
2970			LimitToken:      "MaxResults",
2971			TruncationToken: "",
2972		},
2973	}
2974
2975	if input == nil {
2976		input = &ListCustomRoutingListenersInput{}
2977	}
2978
2979	output = &ListCustomRoutingListenersOutput{}
2980	req = c.newRequest(op, input, output)
2981	return
2982}
2983
2984// ListCustomRoutingListeners API operation for AWS Global Accelerator.
2985//
2986// List the listeners for a custom routing accelerator.
2987//
2988// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2989// with awserr.Error's Code and Message methods to get detailed information about
2990// the error.
2991//
2992// See the AWS API reference guide for AWS Global Accelerator's
2993// API operation ListCustomRoutingListeners for usage and error information.
2994//
2995// Returned Error Types:
2996//   * InvalidArgumentException
2997//   An argument that you specified is invalid.
2998//
2999//   * AcceleratorNotFoundException
3000//   The accelerator that you specified doesn't exist.
3001//
3002//   * InvalidNextTokenException
3003//   There isn't another item to return.
3004//
3005//   * InternalServiceErrorException
3006//   There was an internal error for AWS Global Accelerator.
3007//
3008// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingListeners
3009func (c *GlobalAccelerator) ListCustomRoutingListeners(input *ListCustomRoutingListenersInput) (*ListCustomRoutingListenersOutput, error) {
3010	req, out := c.ListCustomRoutingListenersRequest(input)
3011	return out, req.Send()
3012}
3013
3014// ListCustomRoutingListenersWithContext is the same as ListCustomRoutingListeners with the addition of
3015// the ability to pass a context and additional request options.
3016//
3017// See ListCustomRoutingListeners for details on how to use this API operation.
3018//
3019// The context must be non-nil and will be used for request cancellation. If
3020// the context is nil a panic will occur. In the future the SDK may create
3021// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3022// for more information on using Contexts.
3023func (c *GlobalAccelerator) ListCustomRoutingListenersWithContext(ctx aws.Context, input *ListCustomRoutingListenersInput, opts ...request.Option) (*ListCustomRoutingListenersOutput, error) {
3024	req, out := c.ListCustomRoutingListenersRequest(input)
3025	req.SetContext(ctx)
3026	req.ApplyOptions(opts...)
3027	return out, req.Send()
3028}
3029
3030// ListCustomRoutingListenersPages iterates over the pages of a ListCustomRoutingListeners operation,
3031// calling the "fn" function with the response data for each page. To stop
3032// iterating, return false from the fn function.
3033//
3034// See ListCustomRoutingListeners method for more information on how to use this operation.
3035//
3036// Note: This operation can generate multiple requests to a service.
3037//
3038//    // Example iterating over at most 3 pages of a ListCustomRoutingListeners operation.
3039//    pageNum := 0
3040//    err := client.ListCustomRoutingListenersPages(params,
3041//        func(page *globalaccelerator.ListCustomRoutingListenersOutput, lastPage bool) bool {
3042//            pageNum++
3043//            fmt.Println(page)
3044//            return pageNum <= 3
3045//        })
3046//
3047func (c *GlobalAccelerator) ListCustomRoutingListenersPages(input *ListCustomRoutingListenersInput, fn func(*ListCustomRoutingListenersOutput, bool) bool) error {
3048	return c.ListCustomRoutingListenersPagesWithContext(aws.BackgroundContext(), input, fn)
3049}
3050
3051// ListCustomRoutingListenersPagesWithContext same as ListCustomRoutingListenersPages except
3052// it takes a Context and allows setting request options on the pages.
3053//
3054// The context must be non-nil and will be used for request cancellation. If
3055// the context is nil a panic will occur. In the future the SDK may create
3056// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3057// for more information on using Contexts.
3058func (c *GlobalAccelerator) ListCustomRoutingListenersPagesWithContext(ctx aws.Context, input *ListCustomRoutingListenersInput, fn func(*ListCustomRoutingListenersOutput, bool) bool, opts ...request.Option) error {
3059	p := request.Pagination{
3060		NewRequest: func() (*request.Request, error) {
3061			var inCpy *ListCustomRoutingListenersInput
3062			if input != nil {
3063				tmp := *input
3064				inCpy = &tmp
3065			}
3066			req, _ := c.ListCustomRoutingListenersRequest(inCpy)
3067			req.SetContext(ctx)
3068			req.ApplyOptions(opts...)
3069			return req, nil
3070		},
3071	}
3072
3073	for p.Next() {
3074		if !fn(p.Page().(*ListCustomRoutingListenersOutput), !p.HasNextPage()) {
3075			break
3076		}
3077	}
3078
3079	return p.Err()
3080}
3081
3082const opListCustomRoutingPortMappings = "ListCustomRoutingPortMappings"
3083
3084// ListCustomRoutingPortMappingsRequest generates a "aws/request.Request" representing the
3085// client's request for the ListCustomRoutingPortMappings operation. The "output" return
3086// value will be populated with the request's response once the request completes
3087// successfully.
3088//
3089// Use "Send" method on the returned Request to send the API call to the service.
3090// the "output" return value is not valid until after Send returns without error.
3091//
3092// See ListCustomRoutingPortMappings for more information on using the ListCustomRoutingPortMappings
3093// API call, and error handling.
3094//
3095// This method is useful when you want to inject custom logic or configuration
3096// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3097//
3098//
3099//    // Example sending a request using the ListCustomRoutingPortMappingsRequest method.
3100//    req, resp := client.ListCustomRoutingPortMappingsRequest(params)
3101//
3102//    err := req.Send()
3103//    if err == nil { // resp is now filled
3104//        fmt.Println(resp)
3105//    }
3106//
3107// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingPortMappings
3108func (c *GlobalAccelerator) ListCustomRoutingPortMappingsRequest(input *ListCustomRoutingPortMappingsInput) (req *request.Request, output *ListCustomRoutingPortMappingsOutput) {
3109	op := &request.Operation{
3110		Name:       opListCustomRoutingPortMappings,
3111		HTTPMethod: "POST",
3112		HTTPPath:   "/",
3113		Paginator: &request.Paginator{
3114			InputTokens:     []string{"NextToken"},
3115			OutputTokens:    []string{"NextToken"},
3116			LimitToken:      "MaxResults",
3117			TruncationToken: "",
3118		},
3119	}
3120
3121	if input == nil {
3122		input = &ListCustomRoutingPortMappingsInput{}
3123	}
3124
3125	output = &ListCustomRoutingPortMappingsOutput{}
3126	req = c.newRequest(op, input, output)
3127	return
3128}
3129
3130// ListCustomRoutingPortMappings API operation for AWS Global Accelerator.
3131//
3132// Provides a complete mapping from the public accelerator IP address and port
3133// to destination EC2 instance IP addresses and ports in the virtual public
3134// cloud (VPC) subnet endpoint for a custom routing accelerator. For each subnet
3135// endpoint that you add, Global Accelerator creates a new static port mapping
3136// for the accelerator. The port mappings don't change after Global Accelerator
3137// generates them, so you can retrieve and cache the full mapping on your servers.
3138//
3139// If you remove a subnet from your accelerator, Global Accelerator removes
3140// (reclaims) the port mappings. If you add a subnet to your accelerator, Global
3141// Accelerator creates new port mappings (the existing ones don't change). If
3142// you add or remove EC2 instances in your subnet, the port mappings don't change,
3143// because the mappings are created when you add the subnet to Global Accelerator.
3144//
3145// The mappings also include a flag for each destination denoting which destination
3146// IP addresses and ports are allowed or denied traffic.
3147//
3148// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3149// with awserr.Error's Code and Message methods to get detailed information about
3150// the error.
3151//
3152// See the AWS API reference guide for AWS Global Accelerator's
3153// API operation ListCustomRoutingPortMappings for usage and error information.
3154//
3155// Returned Error Types:
3156//   * InvalidArgumentException
3157//   An argument that you specified is invalid.
3158//
3159//   * InvalidNextTokenException
3160//   There isn't another item to return.
3161//
3162//   * EndpointGroupNotFoundException
3163//   The endpoint group that you specified doesn't exist.
3164//
3165//   * AcceleratorNotFoundException
3166//   The accelerator that you specified doesn't exist.
3167//
3168//   * InternalServiceErrorException
3169//   There was an internal error for AWS Global Accelerator.
3170//
3171// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingPortMappings
3172func (c *GlobalAccelerator) ListCustomRoutingPortMappings(input *ListCustomRoutingPortMappingsInput) (*ListCustomRoutingPortMappingsOutput, error) {
3173	req, out := c.ListCustomRoutingPortMappingsRequest(input)
3174	return out, req.Send()
3175}
3176
3177// ListCustomRoutingPortMappingsWithContext is the same as ListCustomRoutingPortMappings with the addition of
3178// the ability to pass a context and additional request options.
3179//
3180// See ListCustomRoutingPortMappings for details on how to use this API operation.
3181//
3182// The context must be non-nil and will be used for request cancellation. If
3183// the context is nil a panic will occur. In the future the SDK may create
3184// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3185// for more information on using Contexts.
3186func (c *GlobalAccelerator) ListCustomRoutingPortMappingsWithContext(ctx aws.Context, input *ListCustomRoutingPortMappingsInput, opts ...request.Option) (*ListCustomRoutingPortMappingsOutput, error) {
3187	req, out := c.ListCustomRoutingPortMappingsRequest(input)
3188	req.SetContext(ctx)
3189	req.ApplyOptions(opts...)
3190	return out, req.Send()
3191}
3192
3193// ListCustomRoutingPortMappingsPages iterates over the pages of a ListCustomRoutingPortMappings operation,
3194// calling the "fn" function with the response data for each page. To stop
3195// iterating, return false from the fn function.
3196//
3197// See ListCustomRoutingPortMappings method for more information on how to use this operation.
3198//
3199// Note: This operation can generate multiple requests to a service.
3200//
3201//    // Example iterating over at most 3 pages of a ListCustomRoutingPortMappings operation.
3202//    pageNum := 0
3203//    err := client.ListCustomRoutingPortMappingsPages(params,
3204//        func(page *globalaccelerator.ListCustomRoutingPortMappingsOutput, lastPage bool) bool {
3205//            pageNum++
3206//            fmt.Println(page)
3207//            return pageNum <= 3
3208//        })
3209//
3210func (c *GlobalAccelerator) ListCustomRoutingPortMappingsPages(input *ListCustomRoutingPortMappingsInput, fn func(*ListCustomRoutingPortMappingsOutput, bool) bool) error {
3211	return c.ListCustomRoutingPortMappingsPagesWithContext(aws.BackgroundContext(), input, fn)
3212}
3213
3214// ListCustomRoutingPortMappingsPagesWithContext same as ListCustomRoutingPortMappingsPages except
3215// it takes a Context and allows setting request options on the pages.
3216//
3217// The context must be non-nil and will be used for request cancellation. If
3218// the context is nil a panic will occur. In the future the SDK may create
3219// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3220// for more information on using Contexts.
3221func (c *GlobalAccelerator) ListCustomRoutingPortMappingsPagesWithContext(ctx aws.Context, input *ListCustomRoutingPortMappingsInput, fn func(*ListCustomRoutingPortMappingsOutput, bool) bool, opts ...request.Option) error {
3222	p := request.Pagination{
3223		NewRequest: func() (*request.Request, error) {
3224			var inCpy *ListCustomRoutingPortMappingsInput
3225			if input != nil {
3226				tmp := *input
3227				inCpy = &tmp
3228			}
3229			req, _ := c.ListCustomRoutingPortMappingsRequest(inCpy)
3230			req.SetContext(ctx)
3231			req.ApplyOptions(opts...)
3232			return req, nil
3233		},
3234	}
3235
3236	for p.Next() {
3237		if !fn(p.Page().(*ListCustomRoutingPortMappingsOutput), !p.HasNextPage()) {
3238			break
3239		}
3240	}
3241
3242	return p.Err()
3243}
3244
3245const opListCustomRoutingPortMappingsByDestination = "ListCustomRoutingPortMappingsByDestination"
3246
3247// ListCustomRoutingPortMappingsByDestinationRequest generates a "aws/request.Request" representing the
3248// client's request for the ListCustomRoutingPortMappingsByDestination operation. The "output" return
3249// value will be populated with the request's response once the request completes
3250// successfully.
3251//
3252// Use "Send" method on the returned Request to send the API call to the service.
3253// the "output" return value is not valid until after Send returns without error.
3254//
3255// See ListCustomRoutingPortMappingsByDestination for more information on using the ListCustomRoutingPortMappingsByDestination
3256// API call, and error handling.
3257//
3258// This method is useful when you want to inject custom logic or configuration
3259// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3260//
3261//
3262//    // Example sending a request using the ListCustomRoutingPortMappingsByDestinationRequest method.
3263//    req, resp := client.ListCustomRoutingPortMappingsByDestinationRequest(params)
3264//
3265//    err := req.Send()
3266//    if err == nil { // resp is now filled
3267//        fmt.Println(resp)
3268//    }
3269//
3270// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingPortMappingsByDestination
3271func (c *GlobalAccelerator) ListCustomRoutingPortMappingsByDestinationRequest(input *ListCustomRoutingPortMappingsByDestinationInput) (req *request.Request, output *ListCustomRoutingPortMappingsByDestinationOutput) {
3272	op := &request.Operation{
3273		Name:       opListCustomRoutingPortMappingsByDestination,
3274		HTTPMethod: "POST",
3275		HTTPPath:   "/",
3276		Paginator: &request.Paginator{
3277			InputTokens:     []string{"NextToken"},
3278			OutputTokens:    []string{"NextToken"},
3279			LimitToken:      "MaxResults",
3280			TruncationToken: "",
3281		},
3282	}
3283
3284	if input == nil {
3285		input = &ListCustomRoutingPortMappingsByDestinationInput{}
3286	}
3287
3288	output = &ListCustomRoutingPortMappingsByDestinationOutput{}
3289	req = c.newRequest(op, input, output)
3290	return
3291}
3292
3293// ListCustomRoutingPortMappingsByDestination API operation for AWS Global Accelerator.
3294//
3295// List the port mappings for a specific EC2 instance (destination) in a VPC
3296// subnet endpoint. The response is the mappings for one destination IP address.
3297// This is useful when your subnet endpoint has mappings that span multiple
3298// custom routing accelerators in your account, or for scenarios where you only
3299// want to list the port mappings for a specific destination instance.
3300//
3301// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3302// with awserr.Error's Code and Message methods to get detailed information about
3303// the error.
3304//
3305// See the AWS API reference guide for AWS Global Accelerator's
3306// API operation ListCustomRoutingPortMappingsByDestination for usage and error information.
3307//
3308// Returned Error Types:
3309//   * InvalidArgumentException
3310//   An argument that you specified is invalid.
3311//
3312//   * InvalidNextTokenException
3313//   There isn't another item to return.
3314//
3315//   * EndpointNotFoundException
3316//   The endpoint that you specified doesn't exist.
3317//
3318//   * InternalServiceErrorException
3319//   There was an internal error for AWS Global Accelerator.
3320//
3321// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingPortMappingsByDestination
3322func (c *GlobalAccelerator) ListCustomRoutingPortMappingsByDestination(input *ListCustomRoutingPortMappingsByDestinationInput) (*ListCustomRoutingPortMappingsByDestinationOutput, error) {
3323	req, out := c.ListCustomRoutingPortMappingsByDestinationRequest(input)
3324	return out, req.Send()
3325}
3326
3327// ListCustomRoutingPortMappingsByDestinationWithContext is the same as ListCustomRoutingPortMappingsByDestination with the addition of
3328// the ability to pass a context and additional request options.
3329//
3330// See ListCustomRoutingPortMappingsByDestination for details on how to use this API operation.
3331//
3332// The context must be non-nil and will be used for request cancellation. If
3333// the context is nil a panic will occur. In the future the SDK may create
3334// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3335// for more information on using Contexts.
3336func (c *GlobalAccelerator) ListCustomRoutingPortMappingsByDestinationWithContext(ctx aws.Context, input *ListCustomRoutingPortMappingsByDestinationInput, opts ...request.Option) (*ListCustomRoutingPortMappingsByDestinationOutput, error) {
3337	req, out := c.ListCustomRoutingPortMappingsByDestinationRequest(input)
3338	req.SetContext(ctx)
3339	req.ApplyOptions(opts...)
3340	return out, req.Send()
3341}
3342
3343// ListCustomRoutingPortMappingsByDestinationPages iterates over the pages of a ListCustomRoutingPortMappingsByDestination operation,
3344// calling the "fn" function with the response data for each page. To stop
3345// iterating, return false from the fn function.
3346//
3347// See ListCustomRoutingPortMappingsByDestination method for more information on how to use this operation.
3348//
3349// Note: This operation can generate multiple requests to a service.
3350//
3351//    // Example iterating over at most 3 pages of a ListCustomRoutingPortMappingsByDestination operation.
3352//    pageNum := 0
3353//    err := client.ListCustomRoutingPortMappingsByDestinationPages(params,
3354//        func(page *globalaccelerator.ListCustomRoutingPortMappingsByDestinationOutput, lastPage bool) bool {
3355//            pageNum++
3356//            fmt.Println(page)
3357//            return pageNum <= 3
3358//        })
3359//
3360func (c *GlobalAccelerator) ListCustomRoutingPortMappingsByDestinationPages(input *ListCustomRoutingPortMappingsByDestinationInput, fn func(*ListCustomRoutingPortMappingsByDestinationOutput, bool) bool) error {
3361	return c.ListCustomRoutingPortMappingsByDestinationPagesWithContext(aws.BackgroundContext(), input, fn)
3362}
3363
3364// ListCustomRoutingPortMappingsByDestinationPagesWithContext same as ListCustomRoutingPortMappingsByDestinationPages except
3365// it takes a Context and allows setting request options on the pages.
3366//
3367// The context must be non-nil and will be used for request cancellation. If
3368// the context is nil a panic will occur. In the future the SDK may create
3369// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3370// for more information on using Contexts.
3371func (c *GlobalAccelerator) ListCustomRoutingPortMappingsByDestinationPagesWithContext(ctx aws.Context, input *ListCustomRoutingPortMappingsByDestinationInput, fn func(*ListCustomRoutingPortMappingsByDestinationOutput, bool) bool, opts ...request.Option) error {
3372	p := request.Pagination{
3373		NewRequest: func() (*request.Request, error) {
3374			var inCpy *ListCustomRoutingPortMappingsByDestinationInput
3375			if input != nil {
3376				tmp := *input
3377				inCpy = &tmp
3378			}
3379			req, _ := c.ListCustomRoutingPortMappingsByDestinationRequest(inCpy)
3380			req.SetContext(ctx)
3381			req.ApplyOptions(opts...)
3382			return req, nil
3383		},
3384	}
3385
3386	for p.Next() {
3387		if !fn(p.Page().(*ListCustomRoutingPortMappingsByDestinationOutput), !p.HasNextPage()) {
3388			break
3389		}
3390	}
3391
3392	return p.Err()
3393}
3394
3395const opListEndpointGroups = "ListEndpointGroups"
3396
3397// ListEndpointGroupsRequest generates a "aws/request.Request" representing the
3398// client's request for the ListEndpointGroups operation. The "output" return
3399// value will be populated with the request's response once the request completes
3400// successfully.
3401//
3402// Use "Send" method on the returned Request to send the API call to the service.
3403// the "output" return value is not valid until after Send returns without error.
3404//
3405// See ListEndpointGroups for more information on using the ListEndpointGroups
3406// API call, and error handling.
3407//
3408// This method is useful when you want to inject custom logic or configuration
3409// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3410//
3411//
3412//    // Example sending a request using the ListEndpointGroupsRequest method.
3413//    req, resp := client.ListEndpointGroupsRequest(params)
3414//
3415//    err := req.Send()
3416//    if err == nil { // resp is now filled
3417//        fmt.Println(resp)
3418//    }
3419//
3420// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListEndpointGroups
3421func (c *GlobalAccelerator) ListEndpointGroupsRequest(input *ListEndpointGroupsInput) (req *request.Request, output *ListEndpointGroupsOutput) {
3422	op := &request.Operation{
3423		Name:       opListEndpointGroups,
3424		HTTPMethod: "POST",
3425		HTTPPath:   "/",
3426		Paginator: &request.Paginator{
3427			InputTokens:     []string{"NextToken"},
3428			OutputTokens:    []string{"NextToken"},
3429			LimitToken:      "MaxResults",
3430			TruncationToken: "",
3431		},
3432	}
3433
3434	if input == nil {
3435		input = &ListEndpointGroupsInput{}
3436	}
3437
3438	output = &ListEndpointGroupsOutput{}
3439	req = c.newRequest(op, input, output)
3440	return
3441}
3442
3443// ListEndpointGroups API operation for AWS Global Accelerator.
3444//
3445// List the endpoint groups that are associated with a listener.
3446//
3447// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3448// with awserr.Error's Code and Message methods to get detailed information about
3449// the error.
3450//
3451// See the AWS API reference guide for AWS Global Accelerator's
3452// API operation ListEndpointGroups for usage and error information.
3453//
3454// Returned Error Types:
3455//   * ListenerNotFoundException
3456//   The listener that you specified doesn't exist.
3457//
3458//   * InvalidNextTokenException
3459//   There isn't another item to return.
3460//
3461//   * InvalidArgumentException
3462//   An argument that you specified is invalid.
3463//
3464//   * InternalServiceErrorException
3465//   There was an internal error for AWS Global Accelerator.
3466//
3467// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListEndpointGroups
3468func (c *GlobalAccelerator) ListEndpointGroups(input *ListEndpointGroupsInput) (*ListEndpointGroupsOutput, error) {
3469	req, out := c.ListEndpointGroupsRequest(input)
3470	return out, req.Send()
3471}
3472
3473// ListEndpointGroupsWithContext is the same as ListEndpointGroups with the addition of
3474// the ability to pass a context and additional request options.
3475//
3476// See ListEndpointGroups for details on how to use this API operation.
3477//
3478// The context must be non-nil and will be used for request cancellation. If
3479// the context is nil a panic will occur. In the future the SDK may create
3480// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3481// for more information on using Contexts.
3482func (c *GlobalAccelerator) ListEndpointGroupsWithContext(ctx aws.Context, input *ListEndpointGroupsInput, opts ...request.Option) (*ListEndpointGroupsOutput, error) {
3483	req, out := c.ListEndpointGroupsRequest(input)
3484	req.SetContext(ctx)
3485	req.ApplyOptions(opts...)
3486	return out, req.Send()
3487}
3488
3489// ListEndpointGroupsPages iterates over the pages of a ListEndpointGroups operation,
3490// calling the "fn" function with the response data for each page. To stop
3491// iterating, return false from the fn function.
3492//
3493// See ListEndpointGroups method for more information on how to use this operation.
3494//
3495// Note: This operation can generate multiple requests to a service.
3496//
3497//    // Example iterating over at most 3 pages of a ListEndpointGroups operation.
3498//    pageNum := 0
3499//    err := client.ListEndpointGroupsPages(params,
3500//        func(page *globalaccelerator.ListEndpointGroupsOutput, lastPage bool) bool {
3501//            pageNum++
3502//            fmt.Println(page)
3503//            return pageNum <= 3
3504//        })
3505//
3506func (c *GlobalAccelerator) ListEndpointGroupsPages(input *ListEndpointGroupsInput, fn func(*ListEndpointGroupsOutput, bool) bool) error {
3507	return c.ListEndpointGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
3508}
3509
3510// ListEndpointGroupsPagesWithContext same as ListEndpointGroupsPages except
3511// it takes a Context and allows setting request options on the pages.
3512//
3513// The context must be non-nil and will be used for request cancellation. If
3514// the context is nil a panic will occur. In the future the SDK may create
3515// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3516// for more information on using Contexts.
3517func (c *GlobalAccelerator) ListEndpointGroupsPagesWithContext(ctx aws.Context, input *ListEndpointGroupsInput, fn func(*ListEndpointGroupsOutput, bool) bool, opts ...request.Option) error {
3518	p := request.Pagination{
3519		NewRequest: func() (*request.Request, error) {
3520			var inCpy *ListEndpointGroupsInput
3521			if input != nil {
3522				tmp := *input
3523				inCpy = &tmp
3524			}
3525			req, _ := c.ListEndpointGroupsRequest(inCpy)
3526			req.SetContext(ctx)
3527			req.ApplyOptions(opts...)
3528			return req, nil
3529		},
3530	}
3531
3532	for p.Next() {
3533		if !fn(p.Page().(*ListEndpointGroupsOutput), !p.HasNextPage()) {
3534			break
3535		}
3536	}
3537
3538	return p.Err()
3539}
3540
3541const opListListeners = "ListListeners"
3542
3543// ListListenersRequest generates a "aws/request.Request" representing the
3544// client's request for the ListListeners operation. The "output" return
3545// value will be populated with the request's response once the request completes
3546// successfully.
3547//
3548// Use "Send" method on the returned Request to send the API call to the service.
3549// the "output" return value is not valid until after Send returns without error.
3550//
3551// See ListListeners for more information on using the ListListeners
3552// API call, and error handling.
3553//
3554// This method is useful when you want to inject custom logic or configuration
3555// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3556//
3557//
3558//    // Example sending a request using the ListListenersRequest method.
3559//    req, resp := client.ListListenersRequest(params)
3560//
3561//    err := req.Send()
3562//    if err == nil { // resp is now filled
3563//        fmt.Println(resp)
3564//    }
3565//
3566// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListListeners
3567func (c *GlobalAccelerator) ListListenersRequest(input *ListListenersInput) (req *request.Request, output *ListListenersOutput) {
3568	op := &request.Operation{
3569		Name:       opListListeners,
3570		HTTPMethod: "POST",
3571		HTTPPath:   "/",
3572		Paginator: &request.Paginator{
3573			InputTokens:     []string{"NextToken"},
3574			OutputTokens:    []string{"NextToken"},
3575			LimitToken:      "MaxResults",
3576			TruncationToken: "",
3577		},
3578	}
3579
3580	if input == nil {
3581		input = &ListListenersInput{}
3582	}
3583
3584	output = &ListListenersOutput{}
3585	req = c.newRequest(op, input, output)
3586	return
3587}
3588
3589// ListListeners API operation for AWS Global Accelerator.
3590//
3591// List the listeners for an accelerator.
3592//
3593// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3594// with awserr.Error's Code and Message methods to get detailed information about
3595// the error.
3596//
3597// See the AWS API reference guide for AWS Global Accelerator's
3598// API operation ListListeners for usage and error information.
3599//
3600// Returned Error Types:
3601//   * InvalidArgumentException
3602//   An argument that you specified is invalid.
3603//
3604//   * AcceleratorNotFoundException
3605//   The accelerator that you specified doesn't exist.
3606//
3607//   * InvalidNextTokenException
3608//   There isn't another item to return.
3609//
3610//   * InternalServiceErrorException
3611//   There was an internal error for AWS Global Accelerator.
3612//
3613// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListListeners
3614func (c *GlobalAccelerator) ListListeners(input *ListListenersInput) (*ListListenersOutput, error) {
3615	req, out := c.ListListenersRequest(input)
3616	return out, req.Send()
3617}
3618
3619// ListListenersWithContext is the same as ListListeners with the addition of
3620// the ability to pass a context and additional request options.
3621//
3622// See ListListeners for details on how to use this API operation.
3623//
3624// The context must be non-nil and will be used for request cancellation. If
3625// the context is nil a panic will occur. In the future the SDK may create
3626// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3627// for more information on using Contexts.
3628func (c *GlobalAccelerator) ListListenersWithContext(ctx aws.Context, input *ListListenersInput, opts ...request.Option) (*ListListenersOutput, error) {
3629	req, out := c.ListListenersRequest(input)
3630	req.SetContext(ctx)
3631	req.ApplyOptions(opts...)
3632	return out, req.Send()
3633}
3634
3635// ListListenersPages iterates over the pages of a ListListeners operation,
3636// calling the "fn" function with the response data for each page. To stop
3637// iterating, return false from the fn function.
3638//
3639// See ListListeners method for more information on how to use this operation.
3640//
3641// Note: This operation can generate multiple requests to a service.
3642//
3643//    // Example iterating over at most 3 pages of a ListListeners operation.
3644//    pageNum := 0
3645//    err := client.ListListenersPages(params,
3646//        func(page *globalaccelerator.ListListenersOutput, lastPage bool) bool {
3647//            pageNum++
3648//            fmt.Println(page)
3649//            return pageNum <= 3
3650//        })
3651//
3652func (c *GlobalAccelerator) ListListenersPages(input *ListListenersInput, fn func(*ListListenersOutput, bool) bool) error {
3653	return c.ListListenersPagesWithContext(aws.BackgroundContext(), input, fn)
3654}
3655
3656// ListListenersPagesWithContext same as ListListenersPages except
3657// it takes a Context and allows setting request options on the pages.
3658//
3659// The context must be non-nil and will be used for request cancellation. If
3660// the context is nil a panic will occur. In the future the SDK may create
3661// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3662// for more information on using Contexts.
3663func (c *GlobalAccelerator) ListListenersPagesWithContext(ctx aws.Context, input *ListListenersInput, fn func(*ListListenersOutput, bool) bool, opts ...request.Option) error {
3664	p := request.Pagination{
3665		NewRequest: func() (*request.Request, error) {
3666			var inCpy *ListListenersInput
3667			if input != nil {
3668				tmp := *input
3669				inCpy = &tmp
3670			}
3671			req, _ := c.ListListenersRequest(inCpy)
3672			req.SetContext(ctx)
3673			req.ApplyOptions(opts...)
3674			return req, nil
3675		},
3676	}
3677
3678	for p.Next() {
3679		if !fn(p.Page().(*ListListenersOutput), !p.HasNextPage()) {
3680			break
3681		}
3682	}
3683
3684	return p.Err()
3685}
3686
3687const opListTagsForResource = "ListTagsForResource"
3688
3689// ListTagsForResourceRequest generates a "aws/request.Request" representing the
3690// client's request for the ListTagsForResource operation. The "output" return
3691// value will be populated with the request's response once the request completes
3692// successfully.
3693//
3694// Use "Send" method on the returned Request to send the API call to the service.
3695// the "output" return value is not valid until after Send returns without error.
3696//
3697// See ListTagsForResource for more information on using the ListTagsForResource
3698// API call, and error handling.
3699//
3700// This method is useful when you want to inject custom logic or configuration
3701// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3702//
3703//
3704//    // Example sending a request using the ListTagsForResourceRequest method.
3705//    req, resp := client.ListTagsForResourceRequest(params)
3706//
3707//    err := req.Send()
3708//    if err == nil { // resp is now filled
3709//        fmt.Println(resp)
3710//    }
3711//
3712// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListTagsForResource
3713func (c *GlobalAccelerator) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
3714	op := &request.Operation{
3715		Name:       opListTagsForResource,
3716		HTTPMethod: "POST",
3717		HTTPPath:   "/",
3718	}
3719
3720	if input == nil {
3721		input = &ListTagsForResourceInput{}
3722	}
3723
3724	output = &ListTagsForResourceOutput{}
3725	req = c.newRequest(op, input, output)
3726	return
3727}
3728
3729// ListTagsForResource API operation for AWS Global Accelerator.
3730//
3731// List all tags for an accelerator.
3732//
3733// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
3734// in the AWS Global Accelerator Developer Guide.
3735//
3736// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3737// with awserr.Error's Code and Message methods to get detailed information about
3738// the error.
3739//
3740// See the AWS API reference guide for AWS Global Accelerator's
3741// API operation ListTagsForResource for usage and error information.
3742//
3743// Returned Error Types:
3744//   * AcceleratorNotFoundException
3745//   The accelerator that you specified doesn't exist.
3746//
3747//   * InternalServiceErrorException
3748//   There was an internal error for AWS Global Accelerator.
3749//
3750//   * InvalidArgumentException
3751//   An argument that you specified is invalid.
3752//
3753// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListTagsForResource
3754func (c *GlobalAccelerator) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
3755	req, out := c.ListTagsForResourceRequest(input)
3756	return out, req.Send()
3757}
3758
3759// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
3760// the ability to pass a context and additional request options.
3761//
3762// See ListTagsForResource for details on how to use this API operation.
3763//
3764// The context must be non-nil and will be used for request cancellation. If
3765// the context is nil a panic will occur. In the future the SDK may create
3766// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3767// for more information on using Contexts.
3768func (c *GlobalAccelerator) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
3769	req, out := c.ListTagsForResourceRequest(input)
3770	req.SetContext(ctx)
3771	req.ApplyOptions(opts...)
3772	return out, req.Send()
3773}
3774
3775const opProvisionByoipCidr = "ProvisionByoipCidr"
3776
3777// ProvisionByoipCidrRequest generates a "aws/request.Request" representing the
3778// client's request for the ProvisionByoipCidr operation. The "output" return
3779// value will be populated with the request's response once the request completes
3780// successfully.
3781//
3782// Use "Send" method on the returned Request to send the API call to the service.
3783// the "output" return value is not valid until after Send returns without error.
3784//
3785// See ProvisionByoipCidr for more information on using the ProvisionByoipCidr
3786// API call, and error handling.
3787//
3788// This method is useful when you want to inject custom logic or configuration
3789// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3790//
3791//
3792//    // Example sending a request using the ProvisionByoipCidrRequest method.
3793//    req, resp := client.ProvisionByoipCidrRequest(params)
3794//
3795//    err := req.Send()
3796//    if err == nil { // resp is now filled
3797//        fmt.Println(resp)
3798//    }
3799//
3800// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ProvisionByoipCidr
3801func (c *GlobalAccelerator) ProvisionByoipCidrRequest(input *ProvisionByoipCidrInput) (req *request.Request, output *ProvisionByoipCidrOutput) {
3802	op := &request.Operation{
3803		Name:       opProvisionByoipCidr,
3804		HTTPMethod: "POST",
3805		HTTPPath:   "/",
3806	}
3807
3808	if input == nil {
3809		input = &ProvisionByoipCidrInput{}
3810	}
3811
3812	output = &ProvisionByoipCidrOutput{}
3813	req = c.newRequest(op, input, output)
3814	return
3815}
3816
3817// ProvisionByoipCidr API operation for AWS Global Accelerator.
3818//
3819// Provisions an IP address range to use with your AWS resources through bring
3820// your own IP addresses (BYOIP) and creates a corresponding address pool. After
3821// the address range is provisioned, it is ready to be advertised using AdvertiseByoipCidr
3822// (https://docs.aws.amazon.com/global-accelerator/latest/api/AdvertiseByoipCidr.html).
3823//
3824// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
3825// in the AWS Global Accelerator Developer Guide.
3826//
3827// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3828// with awserr.Error's Code and Message methods to get detailed information about
3829// the error.
3830//
3831// See the AWS API reference guide for AWS Global Accelerator's
3832// API operation ProvisionByoipCidr for usage and error information.
3833//
3834// Returned Error Types:
3835//   * InternalServiceErrorException
3836//   There was an internal error for AWS Global Accelerator.
3837//
3838//   * InvalidArgumentException
3839//   An argument that you specified is invalid.
3840//
3841//   * LimitExceededException
3842//   Processing your request would cause you to exceed an AWS Global Accelerator
3843//   limit.
3844//
3845//   * AccessDeniedException
3846//   You don't have access permission.
3847//
3848//   * IncorrectCidrStateException
3849//   The CIDR that you specified is not valid for this action. For example, the
3850//   state of the CIDR might be incorrect for this action.
3851//
3852// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ProvisionByoipCidr
3853func (c *GlobalAccelerator) ProvisionByoipCidr(input *ProvisionByoipCidrInput) (*ProvisionByoipCidrOutput, error) {
3854	req, out := c.ProvisionByoipCidrRequest(input)
3855	return out, req.Send()
3856}
3857
3858// ProvisionByoipCidrWithContext is the same as ProvisionByoipCidr with the addition of
3859// the ability to pass a context and additional request options.
3860//
3861// See ProvisionByoipCidr for details on how to use this API operation.
3862//
3863// The context must be non-nil and will be used for request cancellation. If
3864// the context is nil a panic will occur. In the future the SDK may create
3865// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3866// for more information on using Contexts.
3867func (c *GlobalAccelerator) ProvisionByoipCidrWithContext(ctx aws.Context, input *ProvisionByoipCidrInput, opts ...request.Option) (*ProvisionByoipCidrOutput, error) {
3868	req, out := c.ProvisionByoipCidrRequest(input)
3869	req.SetContext(ctx)
3870	req.ApplyOptions(opts...)
3871	return out, req.Send()
3872}
3873
3874const opRemoveCustomRoutingEndpoints = "RemoveCustomRoutingEndpoints"
3875
3876// RemoveCustomRoutingEndpointsRequest generates a "aws/request.Request" representing the
3877// client's request for the RemoveCustomRoutingEndpoints operation. The "output" return
3878// value will be populated with the request's response once the request completes
3879// successfully.
3880//
3881// Use "Send" method on the returned Request to send the API call to the service.
3882// the "output" return value is not valid until after Send returns without error.
3883//
3884// See RemoveCustomRoutingEndpoints for more information on using the RemoveCustomRoutingEndpoints
3885// API call, and error handling.
3886//
3887// This method is useful when you want to inject custom logic or configuration
3888// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3889//
3890//
3891//    // Example sending a request using the RemoveCustomRoutingEndpointsRequest method.
3892//    req, resp := client.RemoveCustomRoutingEndpointsRequest(params)
3893//
3894//    err := req.Send()
3895//    if err == nil { // resp is now filled
3896//        fmt.Println(resp)
3897//    }
3898//
3899// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/RemoveCustomRoutingEndpoints
3900func (c *GlobalAccelerator) RemoveCustomRoutingEndpointsRequest(input *RemoveCustomRoutingEndpointsInput) (req *request.Request, output *RemoveCustomRoutingEndpointsOutput) {
3901	op := &request.Operation{
3902		Name:       opRemoveCustomRoutingEndpoints,
3903		HTTPMethod: "POST",
3904		HTTPPath:   "/",
3905	}
3906
3907	if input == nil {
3908		input = &RemoveCustomRoutingEndpointsInput{}
3909	}
3910
3911	output = &RemoveCustomRoutingEndpointsOutput{}
3912	req = c.newRequest(op, input, output)
3913	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3914	return
3915}
3916
3917// RemoveCustomRoutingEndpoints API operation for AWS Global Accelerator.
3918//
3919// Remove endpoints from a custom routing accelerator.
3920//
3921// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3922// with awserr.Error's Code and Message methods to get detailed information about
3923// the error.
3924//
3925// See the AWS API reference guide for AWS Global Accelerator's
3926// API operation RemoveCustomRoutingEndpoints for usage and error information.
3927//
3928// Returned Error Types:
3929//   * EndpointGroupNotFoundException
3930//   The endpoint group that you specified doesn't exist.
3931//
3932//   * EndpointNotFoundException
3933//   The endpoint that you specified doesn't exist.
3934//
3935//   * InternalServiceErrorException
3936//   There was an internal error for AWS Global Accelerator.
3937//
3938//   * InvalidArgumentException
3939//   An argument that you specified is invalid.
3940//
3941//   * AccessDeniedException
3942//   You don't have access permission.
3943//
3944//   * ConflictException
3945//   You can't use both of those options.
3946//
3947// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/RemoveCustomRoutingEndpoints
3948func (c *GlobalAccelerator) RemoveCustomRoutingEndpoints(input *RemoveCustomRoutingEndpointsInput) (*RemoveCustomRoutingEndpointsOutput, error) {
3949	req, out := c.RemoveCustomRoutingEndpointsRequest(input)
3950	return out, req.Send()
3951}
3952
3953// RemoveCustomRoutingEndpointsWithContext is the same as RemoveCustomRoutingEndpoints with the addition of
3954// the ability to pass a context and additional request options.
3955//
3956// See RemoveCustomRoutingEndpoints for details on how to use this API operation.
3957//
3958// The context must be non-nil and will be used for request cancellation. If
3959// the context is nil a panic will occur. In the future the SDK may create
3960// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3961// for more information on using Contexts.
3962func (c *GlobalAccelerator) RemoveCustomRoutingEndpointsWithContext(ctx aws.Context, input *RemoveCustomRoutingEndpointsInput, opts ...request.Option) (*RemoveCustomRoutingEndpointsOutput, error) {
3963	req, out := c.RemoveCustomRoutingEndpointsRequest(input)
3964	req.SetContext(ctx)
3965	req.ApplyOptions(opts...)
3966	return out, req.Send()
3967}
3968
3969const opTagResource = "TagResource"
3970
3971// TagResourceRequest generates a "aws/request.Request" representing the
3972// client's request for the TagResource operation. The "output" return
3973// value will be populated with the request's response once the request completes
3974// successfully.
3975//
3976// Use "Send" method on the returned Request to send the API call to the service.
3977// the "output" return value is not valid until after Send returns without error.
3978//
3979// See TagResource for more information on using the TagResource
3980// API call, and error handling.
3981//
3982// This method is useful when you want to inject custom logic or configuration
3983// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3984//
3985//
3986//    // Example sending a request using the TagResourceRequest method.
3987//    req, resp := client.TagResourceRequest(params)
3988//
3989//    err := req.Send()
3990//    if err == nil { // resp is now filled
3991//        fmt.Println(resp)
3992//    }
3993//
3994// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/TagResource
3995func (c *GlobalAccelerator) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
3996	op := &request.Operation{
3997		Name:       opTagResource,
3998		HTTPMethod: "POST",
3999		HTTPPath:   "/",
4000	}
4001
4002	if input == nil {
4003		input = &TagResourceInput{}
4004	}
4005
4006	output = &TagResourceOutput{}
4007	req = c.newRequest(op, input, output)
4008	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4009	return
4010}
4011
4012// TagResource API operation for AWS Global Accelerator.
4013//
4014// Add tags to an accelerator resource.
4015//
4016// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
4017// in the AWS Global Accelerator Developer Guide.
4018//
4019// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4020// with awserr.Error's Code and Message methods to get detailed information about
4021// the error.
4022//
4023// See the AWS API reference guide for AWS Global Accelerator's
4024// API operation TagResource for usage and error information.
4025//
4026// Returned Error Types:
4027//   * AcceleratorNotFoundException
4028//   The accelerator that you specified doesn't exist.
4029//
4030//   * InternalServiceErrorException
4031//   There was an internal error for AWS Global Accelerator.
4032//
4033//   * InvalidArgumentException
4034//   An argument that you specified is invalid.
4035//
4036// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/TagResource
4037func (c *GlobalAccelerator) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
4038	req, out := c.TagResourceRequest(input)
4039	return out, req.Send()
4040}
4041
4042// TagResourceWithContext is the same as TagResource with the addition of
4043// the ability to pass a context and additional request options.
4044//
4045// See TagResource for details on how to use this API operation.
4046//
4047// The context must be non-nil and will be used for request cancellation. If
4048// the context is nil a panic will occur. In the future the SDK may create
4049// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4050// for more information on using Contexts.
4051func (c *GlobalAccelerator) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
4052	req, out := c.TagResourceRequest(input)
4053	req.SetContext(ctx)
4054	req.ApplyOptions(opts...)
4055	return out, req.Send()
4056}
4057
4058const opUntagResource = "UntagResource"
4059
4060// UntagResourceRequest generates a "aws/request.Request" representing the
4061// client's request for the UntagResource operation. The "output" return
4062// value will be populated with the request's response once the request completes
4063// successfully.
4064//
4065// Use "Send" method on the returned Request to send the API call to the service.
4066// the "output" return value is not valid until after Send returns without error.
4067//
4068// See UntagResource for more information on using the UntagResource
4069// API call, and error handling.
4070//
4071// This method is useful when you want to inject custom logic or configuration
4072// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4073//
4074//
4075//    // Example sending a request using the UntagResourceRequest method.
4076//    req, resp := client.UntagResourceRequest(params)
4077//
4078//    err := req.Send()
4079//    if err == nil { // resp is now filled
4080//        fmt.Println(resp)
4081//    }
4082//
4083// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UntagResource
4084func (c *GlobalAccelerator) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
4085	op := &request.Operation{
4086		Name:       opUntagResource,
4087		HTTPMethod: "POST",
4088		HTTPPath:   "/",
4089	}
4090
4091	if input == nil {
4092		input = &UntagResourceInput{}
4093	}
4094
4095	output = &UntagResourceOutput{}
4096	req = c.newRequest(op, input, output)
4097	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4098	return
4099}
4100
4101// UntagResource API operation for AWS Global Accelerator.
4102//
4103// Remove tags from a Global Accelerator resource. When you specify a tag key,
4104// the action removes both that key and its associated value. The operation
4105// succeeds even if you attempt to remove tags from an accelerator that was
4106// already removed.
4107//
4108// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
4109// in the AWS Global Accelerator Developer Guide.
4110//
4111// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4112// with awserr.Error's Code and Message methods to get detailed information about
4113// the error.
4114//
4115// See the AWS API reference guide for AWS Global Accelerator's
4116// API operation UntagResource for usage and error information.
4117//
4118// Returned Error Types:
4119//   * AcceleratorNotFoundException
4120//   The accelerator that you specified doesn't exist.
4121//
4122//   * InternalServiceErrorException
4123//   There was an internal error for AWS Global Accelerator.
4124//
4125//   * InvalidArgumentException
4126//   An argument that you specified is invalid.
4127//
4128// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UntagResource
4129func (c *GlobalAccelerator) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
4130	req, out := c.UntagResourceRequest(input)
4131	return out, req.Send()
4132}
4133
4134// UntagResourceWithContext is the same as UntagResource with the addition of
4135// the ability to pass a context and additional request options.
4136//
4137// See UntagResource for details on how to use this API operation.
4138//
4139// The context must be non-nil and will be used for request cancellation. If
4140// the context is nil a panic will occur. In the future the SDK may create
4141// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4142// for more information on using Contexts.
4143func (c *GlobalAccelerator) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
4144	req, out := c.UntagResourceRequest(input)
4145	req.SetContext(ctx)
4146	req.ApplyOptions(opts...)
4147	return out, req.Send()
4148}
4149
4150const opUpdateAccelerator = "UpdateAccelerator"
4151
4152// UpdateAcceleratorRequest generates a "aws/request.Request" representing the
4153// client's request for the UpdateAccelerator operation. The "output" return
4154// value will be populated with the request's response once the request completes
4155// successfully.
4156//
4157// Use "Send" method on the returned Request to send the API call to the service.
4158// the "output" return value is not valid until after Send returns without error.
4159//
4160// See UpdateAccelerator for more information on using the UpdateAccelerator
4161// API call, and error handling.
4162//
4163// This method is useful when you want to inject custom logic or configuration
4164// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4165//
4166//
4167//    // Example sending a request using the UpdateAcceleratorRequest method.
4168//    req, resp := client.UpdateAcceleratorRequest(params)
4169//
4170//    err := req.Send()
4171//    if err == nil { // resp is now filled
4172//        fmt.Println(resp)
4173//    }
4174//
4175// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateAccelerator
4176func (c *GlobalAccelerator) UpdateAcceleratorRequest(input *UpdateAcceleratorInput) (req *request.Request, output *UpdateAcceleratorOutput) {
4177	op := &request.Operation{
4178		Name:       opUpdateAccelerator,
4179		HTTPMethod: "POST",
4180		HTTPPath:   "/",
4181	}
4182
4183	if input == nil {
4184		input = &UpdateAcceleratorInput{}
4185	}
4186
4187	output = &UpdateAcceleratorOutput{}
4188	req = c.newRequest(op, input, output)
4189	return
4190}
4191
4192// UpdateAccelerator API operation for AWS Global Accelerator.
4193//
4194// Update an accelerator.
4195//
4196// Global Accelerator is a global service that supports endpoints in multiple
4197// AWS Regions but you must specify the US West (Oregon) Region to create or
4198// update accelerators.
4199//
4200// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4201// with awserr.Error's Code and Message methods to get detailed information about
4202// the error.
4203//
4204// See the AWS API reference guide for AWS Global Accelerator's
4205// API operation UpdateAccelerator for usage and error information.
4206//
4207// Returned Error Types:
4208//   * AcceleratorNotFoundException
4209//   The accelerator that you specified doesn't exist.
4210//
4211//   * InternalServiceErrorException
4212//   There was an internal error for AWS Global Accelerator.
4213//
4214//   * InvalidArgumentException
4215//   An argument that you specified is invalid.
4216//
4217// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateAccelerator
4218func (c *GlobalAccelerator) UpdateAccelerator(input *UpdateAcceleratorInput) (*UpdateAcceleratorOutput, error) {
4219	req, out := c.UpdateAcceleratorRequest(input)
4220	return out, req.Send()
4221}
4222
4223// UpdateAcceleratorWithContext is the same as UpdateAccelerator with the addition of
4224// the ability to pass a context and additional request options.
4225//
4226// See UpdateAccelerator for details on how to use this API operation.
4227//
4228// The context must be non-nil and will be used for request cancellation. If
4229// the context is nil a panic will occur. In the future the SDK may create
4230// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4231// for more information on using Contexts.
4232func (c *GlobalAccelerator) UpdateAcceleratorWithContext(ctx aws.Context, input *UpdateAcceleratorInput, opts ...request.Option) (*UpdateAcceleratorOutput, error) {
4233	req, out := c.UpdateAcceleratorRequest(input)
4234	req.SetContext(ctx)
4235	req.ApplyOptions(opts...)
4236	return out, req.Send()
4237}
4238
4239const opUpdateAcceleratorAttributes = "UpdateAcceleratorAttributes"
4240
4241// UpdateAcceleratorAttributesRequest generates a "aws/request.Request" representing the
4242// client's request for the UpdateAcceleratorAttributes operation. The "output" return
4243// value will be populated with the request's response once the request completes
4244// successfully.
4245//
4246// Use "Send" method on the returned Request to send the API call to the service.
4247// the "output" return value is not valid until after Send returns without error.
4248//
4249// See UpdateAcceleratorAttributes for more information on using the UpdateAcceleratorAttributes
4250// API call, and error handling.
4251//
4252// This method is useful when you want to inject custom logic or configuration
4253// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4254//
4255//
4256//    // Example sending a request using the UpdateAcceleratorAttributesRequest method.
4257//    req, resp := client.UpdateAcceleratorAttributesRequest(params)
4258//
4259//    err := req.Send()
4260//    if err == nil { // resp is now filled
4261//        fmt.Println(resp)
4262//    }
4263//
4264// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateAcceleratorAttributes
4265func (c *GlobalAccelerator) UpdateAcceleratorAttributesRequest(input *UpdateAcceleratorAttributesInput) (req *request.Request, output *UpdateAcceleratorAttributesOutput) {
4266	op := &request.Operation{
4267		Name:       opUpdateAcceleratorAttributes,
4268		HTTPMethod: "POST",
4269		HTTPPath:   "/",
4270	}
4271
4272	if input == nil {
4273		input = &UpdateAcceleratorAttributesInput{}
4274	}
4275
4276	output = &UpdateAcceleratorAttributesOutput{}
4277	req = c.newRequest(op, input, output)
4278	return
4279}
4280
4281// UpdateAcceleratorAttributes API operation for AWS Global Accelerator.
4282//
4283// Update the attributes for an accelerator.
4284//
4285// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4286// with awserr.Error's Code and Message methods to get detailed information about
4287// the error.
4288//
4289// See the AWS API reference guide for AWS Global Accelerator's
4290// API operation UpdateAcceleratorAttributes for usage and error information.
4291//
4292// Returned Error Types:
4293//   * AcceleratorNotFoundException
4294//   The accelerator that you specified doesn't exist.
4295//
4296//   * InternalServiceErrorException
4297//   There was an internal error for AWS Global Accelerator.
4298//
4299//   * InvalidArgumentException
4300//   An argument that you specified is invalid.
4301//
4302//   * AccessDeniedException
4303//   You don't have access permission.
4304//
4305// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateAcceleratorAttributes
4306func (c *GlobalAccelerator) UpdateAcceleratorAttributes(input *UpdateAcceleratorAttributesInput) (*UpdateAcceleratorAttributesOutput, error) {
4307	req, out := c.UpdateAcceleratorAttributesRequest(input)
4308	return out, req.Send()
4309}
4310
4311// UpdateAcceleratorAttributesWithContext is the same as UpdateAcceleratorAttributes with the addition of
4312// the ability to pass a context and additional request options.
4313//
4314// See UpdateAcceleratorAttributes for details on how to use this API operation.
4315//
4316// The context must be non-nil and will be used for request cancellation. If
4317// the context is nil a panic will occur. In the future the SDK may create
4318// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4319// for more information on using Contexts.
4320func (c *GlobalAccelerator) UpdateAcceleratorAttributesWithContext(ctx aws.Context, input *UpdateAcceleratorAttributesInput, opts ...request.Option) (*UpdateAcceleratorAttributesOutput, error) {
4321	req, out := c.UpdateAcceleratorAttributesRequest(input)
4322	req.SetContext(ctx)
4323	req.ApplyOptions(opts...)
4324	return out, req.Send()
4325}
4326
4327const opUpdateCustomRoutingAccelerator = "UpdateCustomRoutingAccelerator"
4328
4329// UpdateCustomRoutingAcceleratorRequest generates a "aws/request.Request" representing the
4330// client's request for the UpdateCustomRoutingAccelerator operation. The "output" return
4331// value will be populated with the request's response once the request completes
4332// successfully.
4333//
4334// Use "Send" method on the returned Request to send the API call to the service.
4335// the "output" return value is not valid until after Send returns without error.
4336//
4337// See UpdateCustomRoutingAccelerator for more information on using the UpdateCustomRoutingAccelerator
4338// API call, and error handling.
4339//
4340// This method is useful when you want to inject custom logic or configuration
4341// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4342//
4343//
4344//    // Example sending a request using the UpdateCustomRoutingAcceleratorRequest method.
4345//    req, resp := client.UpdateCustomRoutingAcceleratorRequest(params)
4346//
4347//    err := req.Send()
4348//    if err == nil { // resp is now filled
4349//        fmt.Println(resp)
4350//    }
4351//
4352// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateCustomRoutingAccelerator
4353func (c *GlobalAccelerator) UpdateCustomRoutingAcceleratorRequest(input *UpdateCustomRoutingAcceleratorInput) (req *request.Request, output *UpdateCustomRoutingAcceleratorOutput) {
4354	op := &request.Operation{
4355		Name:       opUpdateCustomRoutingAccelerator,
4356		HTTPMethod: "POST",
4357		HTTPPath:   "/",
4358	}
4359
4360	if input == nil {
4361		input = &UpdateCustomRoutingAcceleratorInput{}
4362	}
4363
4364	output = &UpdateCustomRoutingAcceleratorOutput{}
4365	req = c.newRequest(op, input, output)
4366	return
4367}
4368
4369// UpdateCustomRoutingAccelerator API operation for AWS Global Accelerator.
4370//
4371// Update a custom routing accelerator.
4372//
4373// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4374// with awserr.Error's Code and Message methods to get detailed information about
4375// the error.
4376//
4377// See the AWS API reference guide for AWS Global Accelerator's
4378// API operation UpdateCustomRoutingAccelerator for usage and error information.
4379//
4380// Returned Error Types:
4381//   * AcceleratorNotFoundException
4382//   The accelerator that you specified doesn't exist.
4383//
4384//   * InternalServiceErrorException
4385//   There was an internal error for AWS Global Accelerator.
4386//
4387//   * InvalidArgumentException
4388//   An argument that you specified is invalid.
4389//
4390// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateCustomRoutingAccelerator
4391func (c *GlobalAccelerator) UpdateCustomRoutingAccelerator(input *UpdateCustomRoutingAcceleratorInput) (*UpdateCustomRoutingAcceleratorOutput, error) {
4392	req, out := c.UpdateCustomRoutingAcceleratorRequest(input)
4393	return out, req.Send()
4394}
4395
4396// UpdateCustomRoutingAcceleratorWithContext is the same as UpdateCustomRoutingAccelerator with the addition of
4397// the ability to pass a context and additional request options.
4398//
4399// See UpdateCustomRoutingAccelerator for details on how to use this API operation.
4400//
4401// The context must be non-nil and will be used for request cancellation. If
4402// the context is nil a panic will occur. In the future the SDK may create
4403// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4404// for more information on using Contexts.
4405func (c *GlobalAccelerator) UpdateCustomRoutingAcceleratorWithContext(ctx aws.Context, input *UpdateCustomRoutingAcceleratorInput, opts ...request.Option) (*UpdateCustomRoutingAcceleratorOutput, error) {
4406	req, out := c.UpdateCustomRoutingAcceleratorRequest(input)
4407	req.SetContext(ctx)
4408	req.ApplyOptions(opts...)
4409	return out, req.Send()
4410}
4411
4412const opUpdateCustomRoutingAcceleratorAttributes = "UpdateCustomRoutingAcceleratorAttributes"
4413
4414// UpdateCustomRoutingAcceleratorAttributesRequest generates a "aws/request.Request" representing the
4415// client's request for the UpdateCustomRoutingAcceleratorAttributes operation. The "output" return
4416// value will be populated with the request's response once the request completes
4417// successfully.
4418//
4419// Use "Send" method on the returned Request to send the API call to the service.
4420// the "output" return value is not valid until after Send returns without error.
4421//
4422// See UpdateCustomRoutingAcceleratorAttributes for more information on using the UpdateCustomRoutingAcceleratorAttributes
4423// API call, and error handling.
4424//
4425// This method is useful when you want to inject custom logic or configuration
4426// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4427//
4428//
4429//    // Example sending a request using the UpdateCustomRoutingAcceleratorAttributesRequest method.
4430//    req, resp := client.UpdateCustomRoutingAcceleratorAttributesRequest(params)
4431//
4432//    err := req.Send()
4433//    if err == nil { // resp is now filled
4434//        fmt.Println(resp)
4435//    }
4436//
4437// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateCustomRoutingAcceleratorAttributes
4438func (c *GlobalAccelerator) UpdateCustomRoutingAcceleratorAttributesRequest(input *UpdateCustomRoutingAcceleratorAttributesInput) (req *request.Request, output *UpdateCustomRoutingAcceleratorAttributesOutput) {
4439	op := &request.Operation{
4440		Name:       opUpdateCustomRoutingAcceleratorAttributes,
4441		HTTPMethod: "POST",
4442		HTTPPath:   "/",
4443	}
4444
4445	if input == nil {
4446		input = &UpdateCustomRoutingAcceleratorAttributesInput{}
4447	}
4448
4449	output = &UpdateCustomRoutingAcceleratorAttributesOutput{}
4450	req = c.newRequest(op, input, output)
4451	return
4452}
4453
4454// UpdateCustomRoutingAcceleratorAttributes API operation for AWS Global Accelerator.
4455//
4456// Update the attributes for a custom routing accelerator.
4457//
4458// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4459// with awserr.Error's Code and Message methods to get detailed information about
4460// the error.
4461//
4462// See the AWS API reference guide for AWS Global Accelerator's
4463// API operation UpdateCustomRoutingAcceleratorAttributes for usage and error information.
4464//
4465// Returned Error Types:
4466//   * AcceleratorNotFoundException
4467//   The accelerator that you specified doesn't exist.
4468//
4469//   * InternalServiceErrorException
4470//   There was an internal error for AWS Global Accelerator.
4471//
4472//   * InvalidArgumentException
4473//   An argument that you specified is invalid.
4474//
4475//   * AccessDeniedException
4476//   You don't have access permission.
4477//
4478// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateCustomRoutingAcceleratorAttributes
4479func (c *GlobalAccelerator) UpdateCustomRoutingAcceleratorAttributes(input *UpdateCustomRoutingAcceleratorAttributesInput) (*UpdateCustomRoutingAcceleratorAttributesOutput, error) {
4480	req, out := c.UpdateCustomRoutingAcceleratorAttributesRequest(input)
4481	return out, req.Send()
4482}
4483
4484// UpdateCustomRoutingAcceleratorAttributesWithContext is the same as UpdateCustomRoutingAcceleratorAttributes with the addition of
4485// the ability to pass a context and additional request options.
4486//
4487// See UpdateCustomRoutingAcceleratorAttributes for details on how to use this API operation.
4488//
4489// The context must be non-nil and will be used for request cancellation. If
4490// the context is nil a panic will occur. In the future the SDK may create
4491// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4492// for more information on using Contexts.
4493func (c *GlobalAccelerator) UpdateCustomRoutingAcceleratorAttributesWithContext(ctx aws.Context, input *UpdateCustomRoutingAcceleratorAttributesInput, opts ...request.Option) (*UpdateCustomRoutingAcceleratorAttributesOutput, error) {
4494	req, out := c.UpdateCustomRoutingAcceleratorAttributesRequest(input)
4495	req.SetContext(ctx)
4496	req.ApplyOptions(opts...)
4497	return out, req.Send()
4498}
4499
4500const opUpdateCustomRoutingListener = "UpdateCustomRoutingListener"
4501
4502// UpdateCustomRoutingListenerRequest generates a "aws/request.Request" representing the
4503// client's request for the UpdateCustomRoutingListener operation. The "output" return
4504// value will be populated with the request's response once the request completes
4505// successfully.
4506//
4507// Use "Send" method on the returned Request to send the API call to the service.
4508// the "output" return value is not valid until after Send returns without error.
4509//
4510// See UpdateCustomRoutingListener for more information on using the UpdateCustomRoutingListener
4511// API call, and error handling.
4512//
4513// This method is useful when you want to inject custom logic or configuration
4514// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4515//
4516//
4517//    // Example sending a request using the UpdateCustomRoutingListenerRequest method.
4518//    req, resp := client.UpdateCustomRoutingListenerRequest(params)
4519//
4520//    err := req.Send()
4521//    if err == nil { // resp is now filled
4522//        fmt.Println(resp)
4523//    }
4524//
4525// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateCustomRoutingListener
4526func (c *GlobalAccelerator) UpdateCustomRoutingListenerRequest(input *UpdateCustomRoutingListenerInput) (req *request.Request, output *UpdateCustomRoutingListenerOutput) {
4527	op := &request.Operation{
4528		Name:       opUpdateCustomRoutingListener,
4529		HTTPMethod: "POST",
4530		HTTPPath:   "/",
4531	}
4532
4533	if input == nil {
4534		input = &UpdateCustomRoutingListenerInput{}
4535	}
4536
4537	output = &UpdateCustomRoutingListenerOutput{}
4538	req = c.newRequest(op, input, output)
4539	return
4540}
4541
4542// UpdateCustomRoutingListener API operation for AWS Global Accelerator.
4543//
4544// Update a listener for a custom routing accelerator.
4545//
4546// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4547// with awserr.Error's Code and Message methods to get detailed information about
4548// the error.
4549//
4550// See the AWS API reference guide for AWS Global Accelerator's
4551// API operation UpdateCustomRoutingListener for usage and error information.
4552//
4553// Returned Error Types:
4554//   * InvalidArgumentException
4555//   An argument that you specified is invalid.
4556//
4557//   * InvalidPortRangeException
4558//   The port numbers that you specified are not valid numbers or are not unique
4559//   for this accelerator.
4560//
4561//   * ListenerNotFoundException
4562//   The listener that you specified doesn't exist.
4563//
4564//   * InternalServiceErrorException
4565//   There was an internal error for AWS Global Accelerator.
4566//
4567//   * LimitExceededException
4568//   Processing your request would cause you to exceed an AWS Global Accelerator
4569//   limit.
4570//
4571// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateCustomRoutingListener
4572func (c *GlobalAccelerator) UpdateCustomRoutingListener(input *UpdateCustomRoutingListenerInput) (*UpdateCustomRoutingListenerOutput, error) {
4573	req, out := c.UpdateCustomRoutingListenerRequest(input)
4574	return out, req.Send()
4575}
4576
4577// UpdateCustomRoutingListenerWithContext is the same as UpdateCustomRoutingListener with the addition of
4578// the ability to pass a context and additional request options.
4579//
4580// See UpdateCustomRoutingListener for details on how to use this API operation.
4581//
4582// The context must be non-nil and will be used for request cancellation. If
4583// the context is nil a panic will occur. In the future the SDK may create
4584// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4585// for more information on using Contexts.
4586func (c *GlobalAccelerator) UpdateCustomRoutingListenerWithContext(ctx aws.Context, input *UpdateCustomRoutingListenerInput, opts ...request.Option) (*UpdateCustomRoutingListenerOutput, error) {
4587	req, out := c.UpdateCustomRoutingListenerRequest(input)
4588	req.SetContext(ctx)
4589	req.ApplyOptions(opts...)
4590	return out, req.Send()
4591}
4592
4593const opUpdateEndpointGroup = "UpdateEndpointGroup"
4594
4595// UpdateEndpointGroupRequest generates a "aws/request.Request" representing the
4596// client's request for the UpdateEndpointGroup operation. The "output" return
4597// value will be populated with the request's response once the request completes
4598// successfully.
4599//
4600// Use "Send" method on the returned Request to send the API call to the service.
4601// the "output" return value is not valid until after Send returns without error.
4602//
4603// See UpdateEndpointGroup for more information on using the UpdateEndpointGroup
4604// API call, and error handling.
4605//
4606// This method is useful when you want to inject custom logic or configuration
4607// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4608//
4609//
4610//    // Example sending a request using the UpdateEndpointGroupRequest method.
4611//    req, resp := client.UpdateEndpointGroupRequest(params)
4612//
4613//    err := req.Send()
4614//    if err == nil { // resp is now filled
4615//        fmt.Println(resp)
4616//    }
4617//
4618// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateEndpointGroup
4619func (c *GlobalAccelerator) UpdateEndpointGroupRequest(input *UpdateEndpointGroupInput) (req *request.Request, output *UpdateEndpointGroupOutput) {
4620	op := &request.Operation{
4621		Name:       opUpdateEndpointGroup,
4622		HTTPMethod: "POST",
4623		HTTPPath:   "/",
4624	}
4625
4626	if input == nil {
4627		input = &UpdateEndpointGroupInput{}
4628	}
4629
4630	output = &UpdateEndpointGroupOutput{}
4631	req = c.newRequest(op, input, output)
4632	return
4633}
4634
4635// UpdateEndpointGroup API operation for AWS Global Accelerator.
4636//
4637// Update an endpoint group. A resource must be valid and active when you add
4638// it as an endpoint.
4639//
4640// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4641// with awserr.Error's Code and Message methods to get detailed information about
4642// the error.
4643//
4644// See the AWS API reference guide for AWS Global Accelerator's
4645// API operation UpdateEndpointGroup for usage and error information.
4646//
4647// Returned Error Types:
4648//   * InvalidArgumentException
4649//   An argument that you specified is invalid.
4650//
4651//   * EndpointGroupNotFoundException
4652//   The endpoint group that you specified doesn't exist.
4653//
4654//   * InternalServiceErrorException
4655//   There was an internal error for AWS Global Accelerator.
4656//
4657//   * LimitExceededException
4658//   Processing your request would cause you to exceed an AWS Global Accelerator
4659//   limit.
4660//
4661//   * AccessDeniedException
4662//   You don't have access permission.
4663//
4664// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateEndpointGroup
4665func (c *GlobalAccelerator) UpdateEndpointGroup(input *UpdateEndpointGroupInput) (*UpdateEndpointGroupOutput, error) {
4666	req, out := c.UpdateEndpointGroupRequest(input)
4667	return out, req.Send()
4668}
4669
4670// UpdateEndpointGroupWithContext is the same as UpdateEndpointGroup with the addition of
4671// the ability to pass a context and additional request options.
4672//
4673// See UpdateEndpointGroup for details on how to use this API operation.
4674//
4675// The context must be non-nil and will be used for request cancellation. If
4676// the context is nil a panic will occur. In the future the SDK may create
4677// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4678// for more information on using Contexts.
4679func (c *GlobalAccelerator) UpdateEndpointGroupWithContext(ctx aws.Context, input *UpdateEndpointGroupInput, opts ...request.Option) (*UpdateEndpointGroupOutput, error) {
4680	req, out := c.UpdateEndpointGroupRequest(input)
4681	req.SetContext(ctx)
4682	req.ApplyOptions(opts...)
4683	return out, req.Send()
4684}
4685
4686const opUpdateListener = "UpdateListener"
4687
4688// UpdateListenerRequest generates a "aws/request.Request" representing the
4689// client's request for the UpdateListener operation. The "output" return
4690// value will be populated with the request's response once the request completes
4691// successfully.
4692//
4693// Use "Send" method on the returned Request to send the API call to the service.
4694// the "output" return value is not valid until after Send returns without error.
4695//
4696// See UpdateListener for more information on using the UpdateListener
4697// API call, and error handling.
4698//
4699// This method is useful when you want to inject custom logic or configuration
4700// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4701//
4702//
4703//    // Example sending a request using the UpdateListenerRequest method.
4704//    req, resp := client.UpdateListenerRequest(params)
4705//
4706//    err := req.Send()
4707//    if err == nil { // resp is now filled
4708//        fmt.Println(resp)
4709//    }
4710//
4711// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateListener
4712func (c *GlobalAccelerator) UpdateListenerRequest(input *UpdateListenerInput) (req *request.Request, output *UpdateListenerOutput) {
4713	op := &request.Operation{
4714		Name:       opUpdateListener,
4715		HTTPMethod: "POST",
4716		HTTPPath:   "/",
4717	}
4718
4719	if input == nil {
4720		input = &UpdateListenerInput{}
4721	}
4722
4723	output = &UpdateListenerOutput{}
4724	req = c.newRequest(op, input, output)
4725	return
4726}
4727
4728// UpdateListener API operation for AWS Global Accelerator.
4729//
4730// Update a listener.
4731//
4732// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4733// with awserr.Error's Code and Message methods to get detailed information about
4734// the error.
4735//
4736// See the AWS API reference guide for AWS Global Accelerator's
4737// API operation UpdateListener for usage and error information.
4738//
4739// Returned Error Types:
4740//   * InvalidArgumentException
4741//   An argument that you specified is invalid.
4742//
4743//   * InvalidPortRangeException
4744//   The port numbers that you specified are not valid numbers or are not unique
4745//   for this accelerator.
4746//
4747//   * ListenerNotFoundException
4748//   The listener that you specified doesn't exist.
4749//
4750//   * InternalServiceErrorException
4751//   There was an internal error for AWS Global Accelerator.
4752//
4753//   * LimitExceededException
4754//   Processing your request would cause you to exceed an AWS Global Accelerator
4755//   limit.
4756//
4757// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateListener
4758func (c *GlobalAccelerator) UpdateListener(input *UpdateListenerInput) (*UpdateListenerOutput, error) {
4759	req, out := c.UpdateListenerRequest(input)
4760	return out, req.Send()
4761}
4762
4763// UpdateListenerWithContext is the same as UpdateListener with the addition of
4764// the ability to pass a context and additional request options.
4765//
4766// See UpdateListener for details on how to use this API operation.
4767//
4768// The context must be non-nil and will be used for request cancellation. If
4769// the context is nil a panic will occur. In the future the SDK may create
4770// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4771// for more information on using Contexts.
4772func (c *GlobalAccelerator) UpdateListenerWithContext(ctx aws.Context, input *UpdateListenerInput, opts ...request.Option) (*UpdateListenerOutput, error) {
4773	req, out := c.UpdateListenerRequest(input)
4774	req.SetContext(ctx)
4775	req.ApplyOptions(opts...)
4776	return out, req.Send()
4777}
4778
4779const opWithdrawByoipCidr = "WithdrawByoipCidr"
4780
4781// WithdrawByoipCidrRequest generates a "aws/request.Request" representing the
4782// client's request for the WithdrawByoipCidr operation. The "output" return
4783// value will be populated with the request's response once the request completes
4784// successfully.
4785//
4786// Use "Send" method on the returned Request to send the API call to the service.
4787// the "output" return value is not valid until after Send returns without error.
4788//
4789// See WithdrawByoipCidr for more information on using the WithdrawByoipCidr
4790// API call, and error handling.
4791//
4792// This method is useful when you want to inject custom logic or configuration
4793// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4794//
4795//
4796//    // Example sending a request using the WithdrawByoipCidrRequest method.
4797//    req, resp := client.WithdrawByoipCidrRequest(params)
4798//
4799//    err := req.Send()
4800//    if err == nil { // resp is now filled
4801//        fmt.Println(resp)
4802//    }
4803//
4804// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/WithdrawByoipCidr
4805func (c *GlobalAccelerator) WithdrawByoipCidrRequest(input *WithdrawByoipCidrInput) (req *request.Request, output *WithdrawByoipCidrOutput) {
4806	op := &request.Operation{
4807		Name:       opWithdrawByoipCidr,
4808		HTTPMethod: "POST",
4809		HTTPPath:   "/",
4810	}
4811
4812	if input == nil {
4813		input = &WithdrawByoipCidrInput{}
4814	}
4815
4816	output = &WithdrawByoipCidrOutput{}
4817	req = c.newRequest(op, input, output)
4818	return
4819}
4820
4821// WithdrawByoipCidr API operation for AWS Global Accelerator.
4822//
4823// Stops advertising an address range that is provisioned as an address pool.
4824// You can perform this operation at most once every 10 seconds, even if you
4825// specify different address ranges each time.
4826//
4827// It can take a few minutes before traffic to the specified addresses stops
4828// routing to AWS because of propagation delays.
4829//
4830// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
4831// in the AWS Global Accelerator Developer Guide.
4832//
4833// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4834// with awserr.Error's Code and Message methods to get detailed information about
4835// the error.
4836//
4837// See the AWS API reference guide for AWS Global Accelerator's
4838// API operation WithdrawByoipCidr for usage and error information.
4839//
4840// Returned Error Types:
4841//   * InternalServiceErrorException
4842//   There was an internal error for AWS Global Accelerator.
4843//
4844//   * InvalidArgumentException
4845//   An argument that you specified is invalid.
4846//
4847//   * AccessDeniedException
4848//   You don't have access permission.
4849//
4850//   * ByoipCidrNotFoundException
4851//   The CIDR that you specified was not found or is incorrect.
4852//
4853//   * IncorrectCidrStateException
4854//   The CIDR that you specified is not valid for this action. For example, the
4855//   state of the CIDR might be incorrect for this action.
4856//
4857// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/WithdrawByoipCidr
4858func (c *GlobalAccelerator) WithdrawByoipCidr(input *WithdrawByoipCidrInput) (*WithdrawByoipCidrOutput, error) {
4859	req, out := c.WithdrawByoipCidrRequest(input)
4860	return out, req.Send()
4861}
4862
4863// WithdrawByoipCidrWithContext is the same as WithdrawByoipCidr with the addition of
4864// the ability to pass a context and additional request options.
4865//
4866// See WithdrawByoipCidr for details on how to use this API operation.
4867//
4868// The context must be non-nil and will be used for request cancellation. If
4869// the context is nil a panic will occur. In the future the SDK may create
4870// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4871// for more information on using Contexts.
4872func (c *GlobalAccelerator) WithdrawByoipCidrWithContext(ctx aws.Context, input *WithdrawByoipCidrInput, opts ...request.Option) (*WithdrawByoipCidrOutput, error) {
4873	req, out := c.WithdrawByoipCidrRequest(input)
4874	req.SetContext(ctx)
4875	req.ApplyOptions(opts...)
4876	return out, req.Send()
4877}
4878
4879// An accelerator is a complex type that includes one or more listeners that
4880// process inbound connections and then direct traffic to one or more endpoint
4881// groups, each of which includes endpoints, such as load balancers.
4882type Accelerator struct {
4883	_ struct{} `type:"structure"`
4884
4885	// The Amazon Resource Name (ARN) of the accelerator.
4886	AcceleratorArn *string `type:"string"`
4887
4888	// The date and time that the accelerator was created.
4889	CreatedTime *time.Time `type:"timestamp"`
4890
4891	// The Domain Name System (DNS) name that Global Accelerator creates that points
4892	// to your accelerator's static IP addresses.
4893	//
4894	// The naming convention for the DNS name is the following: A lowercase letter
4895	// a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com.
4896	// For example: a1234567890abcdef.awsglobalaccelerator.com.
4897	//
4898	// For more information about the default DNS name, see Support for DNS Addressing
4899	// in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing)
4900	// in the AWS Global Accelerator Developer Guide.
4901	DnsName *string `type:"string"`
4902
4903	// Indicates whether the accelerator is enabled. The value is true or false.
4904	// The default value is true.
4905	//
4906	// If the value is set to true, the accelerator cannot be deleted. If set to
4907	// false, accelerator can be deleted.
4908	Enabled *bool `type:"boolean"`
4909
4910	// The value for the address type must be IPv4.
4911	IpAddressType *string `type:"string" enum:"IpAddressType"`
4912
4913	// The static IP addresses that Global Accelerator associates with the accelerator.
4914	IpSets []*IpSet `type:"list"`
4915
4916	// The date and time that the accelerator was last modified.
4917	LastModifiedTime *time.Time `type:"timestamp"`
4918
4919	// The name of the accelerator. The name must contain only alphanumeric characters
4920	// or hyphens (-), and must not begin or end with a hyphen.
4921	Name *string `type:"string"`
4922
4923	// Describes the deployment status of the accelerator.
4924	Status *string `type:"string" enum:"AcceleratorStatus"`
4925}
4926
4927// String returns the string representation.
4928//
4929// API parameter values that are decorated as "sensitive" in the API will not
4930// be included in the string output. The member name will be present, but the
4931// value will be replaced with "sensitive".
4932func (s Accelerator) String() string {
4933	return awsutil.Prettify(s)
4934}
4935
4936// GoString returns the string representation.
4937//
4938// API parameter values that are decorated as "sensitive" in the API will not
4939// be included in the string output. The member name will be present, but the
4940// value will be replaced with "sensitive".
4941func (s Accelerator) GoString() string {
4942	return s.String()
4943}
4944
4945// SetAcceleratorArn sets the AcceleratorArn field's value.
4946func (s *Accelerator) SetAcceleratorArn(v string) *Accelerator {
4947	s.AcceleratorArn = &v
4948	return s
4949}
4950
4951// SetCreatedTime sets the CreatedTime field's value.
4952func (s *Accelerator) SetCreatedTime(v time.Time) *Accelerator {
4953	s.CreatedTime = &v
4954	return s
4955}
4956
4957// SetDnsName sets the DnsName field's value.
4958func (s *Accelerator) SetDnsName(v string) *Accelerator {
4959	s.DnsName = &v
4960	return s
4961}
4962
4963// SetEnabled sets the Enabled field's value.
4964func (s *Accelerator) SetEnabled(v bool) *Accelerator {
4965	s.Enabled = &v
4966	return s
4967}
4968
4969// SetIpAddressType sets the IpAddressType field's value.
4970func (s *Accelerator) SetIpAddressType(v string) *Accelerator {
4971	s.IpAddressType = &v
4972	return s
4973}
4974
4975// SetIpSets sets the IpSets field's value.
4976func (s *Accelerator) SetIpSets(v []*IpSet) *Accelerator {
4977	s.IpSets = v
4978	return s
4979}
4980
4981// SetLastModifiedTime sets the LastModifiedTime field's value.
4982func (s *Accelerator) SetLastModifiedTime(v time.Time) *Accelerator {
4983	s.LastModifiedTime = &v
4984	return s
4985}
4986
4987// SetName sets the Name field's value.
4988func (s *Accelerator) SetName(v string) *Accelerator {
4989	s.Name = &v
4990	return s
4991}
4992
4993// SetStatus sets the Status field's value.
4994func (s *Accelerator) SetStatus(v string) *Accelerator {
4995	s.Status = &v
4996	return s
4997}
4998
4999// Attributes of an accelerator.
5000type AcceleratorAttributes struct {
5001	_ struct{} `type:"structure"`
5002
5003	// Indicates whether flow logs are enabled. The default value is false. If the
5004	// value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.
5005	//
5006	// For more information, see Flow Logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html)
5007	// in the AWS Global Accelerator Developer Guide.
5008	FlowLogsEnabled *bool `type:"boolean"`
5009
5010	// The name of the Amazon S3 bucket for the flow logs. Attribute is required
5011	// if FlowLogsEnabled is true. The bucket must exist and have a bucket policy
5012	// that grants AWS Global Accelerator permission to write to the bucket.
5013	FlowLogsS3Bucket *string `type:"string"`
5014
5015	// The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute
5016	// is required if FlowLogsEnabled is true.
5017	//
5018	// If you don’t specify a prefix, the flow logs are stored in the root of
5019	// the bucket. If you specify slash (/) for the S3 bucket prefix, the log file
5020	// bucket folder structure will include a double slash (//), like the following:
5021	//
5022	// s3-bucket_name//AWSLogs/aws_account_id
5023	FlowLogsS3Prefix *string `type:"string"`
5024}
5025
5026// String returns the string representation.
5027//
5028// API parameter values that are decorated as "sensitive" in the API will not
5029// be included in the string output. The member name will be present, but the
5030// value will be replaced with "sensitive".
5031func (s AcceleratorAttributes) String() string {
5032	return awsutil.Prettify(s)
5033}
5034
5035// GoString returns the string representation.
5036//
5037// API parameter values that are decorated as "sensitive" in the API will not
5038// be included in the string output. The member name will be present, but the
5039// value will be replaced with "sensitive".
5040func (s AcceleratorAttributes) GoString() string {
5041	return s.String()
5042}
5043
5044// SetFlowLogsEnabled sets the FlowLogsEnabled field's value.
5045func (s *AcceleratorAttributes) SetFlowLogsEnabled(v bool) *AcceleratorAttributes {
5046	s.FlowLogsEnabled = &v
5047	return s
5048}
5049
5050// SetFlowLogsS3Bucket sets the FlowLogsS3Bucket field's value.
5051func (s *AcceleratorAttributes) SetFlowLogsS3Bucket(v string) *AcceleratorAttributes {
5052	s.FlowLogsS3Bucket = &v
5053	return s
5054}
5055
5056// SetFlowLogsS3Prefix sets the FlowLogsS3Prefix field's value.
5057func (s *AcceleratorAttributes) SetFlowLogsS3Prefix(v string) *AcceleratorAttributes {
5058	s.FlowLogsS3Prefix = &v
5059	return s
5060}
5061
5062// The accelerator that you specified could not be disabled.
5063type AcceleratorNotDisabledException struct {
5064	_            struct{}                  `type:"structure"`
5065	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5066
5067	Message_ *string `locationName:"Message" type:"string"`
5068}
5069
5070// String returns the string representation.
5071//
5072// API parameter values that are decorated as "sensitive" in the API will not
5073// be included in the string output. The member name will be present, but the
5074// value will be replaced with "sensitive".
5075func (s AcceleratorNotDisabledException) String() string {
5076	return awsutil.Prettify(s)
5077}
5078
5079// GoString returns the string representation.
5080//
5081// API parameter values that are decorated as "sensitive" in the API will not
5082// be included in the string output. The member name will be present, but the
5083// value will be replaced with "sensitive".
5084func (s AcceleratorNotDisabledException) GoString() string {
5085	return s.String()
5086}
5087
5088func newErrorAcceleratorNotDisabledException(v protocol.ResponseMetadata) error {
5089	return &AcceleratorNotDisabledException{
5090		RespMetadata: v,
5091	}
5092}
5093
5094// Code returns the exception type name.
5095func (s *AcceleratorNotDisabledException) Code() string {
5096	return "AcceleratorNotDisabledException"
5097}
5098
5099// Message returns the exception's message.
5100func (s *AcceleratorNotDisabledException) Message() string {
5101	if s.Message_ != nil {
5102		return *s.Message_
5103	}
5104	return ""
5105}
5106
5107// OrigErr always returns nil, satisfies awserr.Error interface.
5108func (s *AcceleratorNotDisabledException) OrigErr() error {
5109	return nil
5110}
5111
5112func (s *AcceleratorNotDisabledException) Error() string {
5113	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5114}
5115
5116// Status code returns the HTTP status code for the request's response error.
5117func (s *AcceleratorNotDisabledException) StatusCode() int {
5118	return s.RespMetadata.StatusCode
5119}
5120
5121// RequestID returns the service's response RequestID for request.
5122func (s *AcceleratorNotDisabledException) RequestID() string {
5123	return s.RespMetadata.RequestID
5124}
5125
5126// The accelerator that you specified doesn't exist.
5127type AcceleratorNotFoundException struct {
5128	_            struct{}                  `type:"structure"`
5129	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5130
5131	Message_ *string `locationName:"Message" type:"string"`
5132}
5133
5134// String returns the string representation.
5135//
5136// API parameter values that are decorated as "sensitive" in the API will not
5137// be included in the string output. The member name will be present, but the
5138// value will be replaced with "sensitive".
5139func (s AcceleratorNotFoundException) String() string {
5140	return awsutil.Prettify(s)
5141}
5142
5143// GoString returns the string representation.
5144//
5145// API parameter values that are decorated as "sensitive" in the API will not
5146// be included in the string output. The member name will be present, but the
5147// value will be replaced with "sensitive".
5148func (s AcceleratorNotFoundException) GoString() string {
5149	return s.String()
5150}
5151
5152func newErrorAcceleratorNotFoundException(v protocol.ResponseMetadata) error {
5153	return &AcceleratorNotFoundException{
5154		RespMetadata: v,
5155	}
5156}
5157
5158// Code returns the exception type name.
5159func (s *AcceleratorNotFoundException) Code() string {
5160	return "AcceleratorNotFoundException"
5161}
5162
5163// Message returns the exception's message.
5164func (s *AcceleratorNotFoundException) Message() string {
5165	if s.Message_ != nil {
5166		return *s.Message_
5167	}
5168	return ""
5169}
5170
5171// OrigErr always returns nil, satisfies awserr.Error interface.
5172func (s *AcceleratorNotFoundException) OrigErr() error {
5173	return nil
5174}
5175
5176func (s *AcceleratorNotFoundException) Error() string {
5177	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5178}
5179
5180// Status code returns the HTTP status code for the request's response error.
5181func (s *AcceleratorNotFoundException) StatusCode() int {
5182	return s.RespMetadata.StatusCode
5183}
5184
5185// RequestID returns the service's response RequestID for request.
5186func (s *AcceleratorNotFoundException) RequestID() string {
5187	return s.RespMetadata.RequestID
5188}
5189
5190// You don't have access permission.
5191type AccessDeniedException struct {
5192	_            struct{}                  `type:"structure"`
5193	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5194
5195	Message_ *string `locationName:"Message" type:"string"`
5196}
5197
5198// String returns the string representation.
5199//
5200// API parameter values that are decorated as "sensitive" in the API will not
5201// be included in the string output. The member name will be present, but the
5202// value will be replaced with "sensitive".
5203func (s AccessDeniedException) String() string {
5204	return awsutil.Prettify(s)
5205}
5206
5207// GoString returns the string representation.
5208//
5209// API parameter values that are decorated as "sensitive" in the API will not
5210// be included in the string output. The member name will be present, but the
5211// value will be replaced with "sensitive".
5212func (s AccessDeniedException) GoString() string {
5213	return s.String()
5214}
5215
5216func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
5217	return &AccessDeniedException{
5218		RespMetadata: v,
5219	}
5220}
5221
5222// Code returns the exception type name.
5223func (s *AccessDeniedException) Code() string {
5224	return "AccessDeniedException"
5225}
5226
5227// Message returns the exception's message.
5228func (s *AccessDeniedException) Message() string {
5229	if s.Message_ != nil {
5230		return *s.Message_
5231	}
5232	return ""
5233}
5234
5235// OrigErr always returns nil, satisfies awserr.Error interface.
5236func (s *AccessDeniedException) OrigErr() error {
5237	return nil
5238}
5239
5240func (s *AccessDeniedException) Error() string {
5241	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5242}
5243
5244// Status code returns the HTTP status code for the request's response error.
5245func (s *AccessDeniedException) StatusCode() int {
5246	return s.RespMetadata.StatusCode
5247}
5248
5249// RequestID returns the service's response RequestID for request.
5250func (s *AccessDeniedException) RequestID() string {
5251	return s.RespMetadata.RequestID
5252}
5253
5254type AddCustomRoutingEndpointsInput struct {
5255	_ struct{} `type:"structure"`
5256
5257	// The list of endpoint objects to add to a custom routing accelerator.
5258	//
5259	// EndpointConfigurations is a required field
5260	EndpointConfigurations []*CustomRoutingEndpointConfiguration `min:"1" type:"list" required:"true"`
5261
5262	// The Amazon Resource Name (ARN) of the endpoint group for the custom routing
5263	// endpoint.
5264	//
5265	// EndpointGroupArn is a required field
5266	EndpointGroupArn *string `type:"string" required:"true"`
5267}
5268
5269// String returns the string representation.
5270//
5271// API parameter values that are decorated as "sensitive" in the API will not
5272// be included in the string output. The member name will be present, but the
5273// value will be replaced with "sensitive".
5274func (s AddCustomRoutingEndpointsInput) String() string {
5275	return awsutil.Prettify(s)
5276}
5277
5278// GoString returns the string representation.
5279//
5280// API parameter values that are decorated as "sensitive" in the API will not
5281// be included in the string output. The member name will be present, but the
5282// value will be replaced with "sensitive".
5283func (s AddCustomRoutingEndpointsInput) GoString() string {
5284	return s.String()
5285}
5286
5287// Validate inspects the fields of the type to determine if they are valid.
5288func (s *AddCustomRoutingEndpointsInput) Validate() error {
5289	invalidParams := request.ErrInvalidParams{Context: "AddCustomRoutingEndpointsInput"}
5290	if s.EndpointConfigurations == nil {
5291		invalidParams.Add(request.NewErrParamRequired("EndpointConfigurations"))
5292	}
5293	if s.EndpointConfigurations != nil && len(s.EndpointConfigurations) < 1 {
5294		invalidParams.Add(request.NewErrParamMinLen("EndpointConfigurations", 1))
5295	}
5296	if s.EndpointGroupArn == nil {
5297		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
5298	}
5299
5300	if invalidParams.Len() > 0 {
5301		return invalidParams
5302	}
5303	return nil
5304}
5305
5306// SetEndpointConfigurations sets the EndpointConfigurations field's value.
5307func (s *AddCustomRoutingEndpointsInput) SetEndpointConfigurations(v []*CustomRoutingEndpointConfiguration) *AddCustomRoutingEndpointsInput {
5308	s.EndpointConfigurations = v
5309	return s
5310}
5311
5312// SetEndpointGroupArn sets the EndpointGroupArn field's value.
5313func (s *AddCustomRoutingEndpointsInput) SetEndpointGroupArn(v string) *AddCustomRoutingEndpointsInput {
5314	s.EndpointGroupArn = &v
5315	return s
5316}
5317
5318type AddCustomRoutingEndpointsOutput struct {
5319	_ struct{} `type:"structure"`
5320
5321	// The endpoint objects added to the custom routing accelerator.
5322	EndpointDescriptions []*CustomRoutingEndpointDescription `type:"list"`
5323
5324	// The Amazon Resource Name (ARN) of the endpoint group for the custom routing
5325	// endpoint.
5326	EndpointGroupArn *string `type:"string"`
5327}
5328
5329// String returns the string representation.
5330//
5331// API parameter values that are decorated as "sensitive" in the API will not
5332// be included in the string output. The member name will be present, but the
5333// value will be replaced with "sensitive".
5334func (s AddCustomRoutingEndpointsOutput) String() string {
5335	return awsutil.Prettify(s)
5336}
5337
5338// GoString returns the string representation.
5339//
5340// API parameter values that are decorated as "sensitive" in the API will not
5341// be included in the string output. The member name will be present, but the
5342// value will be replaced with "sensitive".
5343func (s AddCustomRoutingEndpointsOutput) GoString() string {
5344	return s.String()
5345}
5346
5347// SetEndpointDescriptions sets the EndpointDescriptions field's value.
5348func (s *AddCustomRoutingEndpointsOutput) SetEndpointDescriptions(v []*CustomRoutingEndpointDescription) *AddCustomRoutingEndpointsOutput {
5349	s.EndpointDescriptions = v
5350	return s
5351}
5352
5353// SetEndpointGroupArn sets the EndpointGroupArn field's value.
5354func (s *AddCustomRoutingEndpointsOutput) SetEndpointGroupArn(v string) *AddCustomRoutingEndpointsOutput {
5355	s.EndpointGroupArn = &v
5356	return s
5357}
5358
5359type AdvertiseByoipCidrInput struct {
5360	_ struct{} `type:"structure"`
5361
5362	// The address range, in CIDR notation. This must be the exact range that you
5363	// provisioned. You can't advertise only a portion of the provisioned range.
5364	//
5365	// Cidr is a required field
5366	Cidr *string `type:"string" required:"true"`
5367}
5368
5369// String returns the string representation.
5370//
5371// API parameter values that are decorated as "sensitive" in the API will not
5372// be included in the string output. The member name will be present, but the
5373// value will be replaced with "sensitive".
5374func (s AdvertiseByoipCidrInput) String() string {
5375	return awsutil.Prettify(s)
5376}
5377
5378// GoString returns the string representation.
5379//
5380// API parameter values that are decorated as "sensitive" in the API will not
5381// be included in the string output. The member name will be present, but the
5382// value will be replaced with "sensitive".
5383func (s AdvertiseByoipCidrInput) GoString() string {
5384	return s.String()
5385}
5386
5387// Validate inspects the fields of the type to determine if they are valid.
5388func (s *AdvertiseByoipCidrInput) Validate() error {
5389	invalidParams := request.ErrInvalidParams{Context: "AdvertiseByoipCidrInput"}
5390	if s.Cidr == nil {
5391		invalidParams.Add(request.NewErrParamRequired("Cidr"))
5392	}
5393
5394	if invalidParams.Len() > 0 {
5395		return invalidParams
5396	}
5397	return nil
5398}
5399
5400// SetCidr sets the Cidr field's value.
5401func (s *AdvertiseByoipCidrInput) SetCidr(v string) *AdvertiseByoipCidrInput {
5402	s.Cidr = &v
5403	return s
5404}
5405
5406type AdvertiseByoipCidrOutput struct {
5407	_ struct{} `type:"structure"`
5408
5409	// Information about the address range.
5410	ByoipCidr *ByoipCidr `type:"structure"`
5411}
5412
5413// String returns the string representation.
5414//
5415// API parameter values that are decorated as "sensitive" in the API will not
5416// be included in the string output. The member name will be present, but the
5417// value will be replaced with "sensitive".
5418func (s AdvertiseByoipCidrOutput) String() string {
5419	return awsutil.Prettify(s)
5420}
5421
5422// GoString returns the string representation.
5423//
5424// API parameter values that are decorated as "sensitive" in the API will not
5425// be included in the string output. The member name will be present, but the
5426// value will be replaced with "sensitive".
5427func (s AdvertiseByoipCidrOutput) GoString() string {
5428	return s.String()
5429}
5430
5431// SetByoipCidr sets the ByoipCidr field's value.
5432func (s *AdvertiseByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *AdvertiseByoipCidrOutput {
5433	s.ByoipCidr = v
5434	return s
5435}
5436
5437type AllowCustomRoutingTrafficInput struct {
5438	_ struct{} `type:"structure"`
5439
5440	// Indicates whether all destination IP addresses and ports for a specified
5441	// VPC subnet endpoint can receive traffic from a custom routing accelerator.
5442	// The value is TRUE or FALSE.
5443	//
5444	// When set to TRUE, all destinations in the custom routing VPC subnet can receive
5445	// traffic. Note that you cannot specify destination IP addresses and ports
5446	// when the value is set to TRUE.
5447	//
5448	// When set to FALSE (or not specified), you must specify a list of destination
5449	// IP addresses that are allowed to receive traffic. A list of ports is optional.
5450	// If you don't specify a list of ports, the ports that can accept traffic is
5451	// the same as the ports configured for the endpoint group.
5452	//
5453	// The default value is FALSE.
5454	AllowAllTrafficToEndpoint *bool `type:"boolean"`
5455
5456	// A list of specific Amazon EC2 instance IP addresses (destination addresses)
5457	// in a subnet that you want to allow to receive traffic. The IP addresses must
5458	// be a subset of the IP addresses that you specified for the endpoint group.
5459	//
5460	// DestinationAddresses is required if AllowAllTrafficToEndpoint is FALSE or
5461	// is not specified.
5462	DestinationAddresses []*string `type:"list"`
5463
5464	// A list of specific Amazon EC2 instance ports (destination ports) that you
5465	// want to allow to receive traffic.
5466	DestinationPorts []*int64 `type:"list"`
5467
5468	// The Amazon Resource Name (ARN) of the endpoint group.
5469	//
5470	// EndpointGroupArn is a required field
5471	EndpointGroupArn *string `type:"string" required:"true"`
5472
5473	// An ID for the endpoint. For custom routing accelerators, this is the virtual
5474	// private cloud (VPC) subnet ID.
5475	//
5476	// EndpointId is a required field
5477	EndpointId *string `type:"string" required:"true"`
5478}
5479
5480// String returns the string representation.
5481//
5482// API parameter values that are decorated as "sensitive" in the API will not
5483// be included in the string output. The member name will be present, but the
5484// value will be replaced with "sensitive".
5485func (s AllowCustomRoutingTrafficInput) String() string {
5486	return awsutil.Prettify(s)
5487}
5488
5489// GoString returns the string representation.
5490//
5491// API parameter values that are decorated as "sensitive" in the API will not
5492// be included in the string output. The member name will be present, but the
5493// value will be replaced with "sensitive".
5494func (s AllowCustomRoutingTrafficInput) GoString() string {
5495	return s.String()
5496}
5497
5498// Validate inspects the fields of the type to determine if they are valid.
5499func (s *AllowCustomRoutingTrafficInput) Validate() error {
5500	invalidParams := request.ErrInvalidParams{Context: "AllowCustomRoutingTrafficInput"}
5501	if s.EndpointGroupArn == nil {
5502		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
5503	}
5504	if s.EndpointId == nil {
5505		invalidParams.Add(request.NewErrParamRequired("EndpointId"))
5506	}
5507
5508	if invalidParams.Len() > 0 {
5509		return invalidParams
5510	}
5511	return nil
5512}
5513
5514// SetAllowAllTrafficToEndpoint sets the AllowAllTrafficToEndpoint field's value.
5515func (s *AllowCustomRoutingTrafficInput) SetAllowAllTrafficToEndpoint(v bool) *AllowCustomRoutingTrafficInput {
5516	s.AllowAllTrafficToEndpoint = &v
5517	return s
5518}
5519
5520// SetDestinationAddresses sets the DestinationAddresses field's value.
5521func (s *AllowCustomRoutingTrafficInput) SetDestinationAddresses(v []*string) *AllowCustomRoutingTrafficInput {
5522	s.DestinationAddresses = v
5523	return s
5524}
5525
5526// SetDestinationPorts sets the DestinationPorts field's value.
5527func (s *AllowCustomRoutingTrafficInput) SetDestinationPorts(v []*int64) *AllowCustomRoutingTrafficInput {
5528	s.DestinationPorts = v
5529	return s
5530}
5531
5532// SetEndpointGroupArn sets the EndpointGroupArn field's value.
5533func (s *AllowCustomRoutingTrafficInput) SetEndpointGroupArn(v string) *AllowCustomRoutingTrafficInput {
5534	s.EndpointGroupArn = &v
5535	return s
5536}
5537
5538// SetEndpointId sets the EndpointId field's value.
5539func (s *AllowCustomRoutingTrafficInput) SetEndpointId(v string) *AllowCustomRoutingTrafficInput {
5540	s.EndpointId = &v
5541	return s
5542}
5543
5544type AllowCustomRoutingTrafficOutput struct {
5545	_ struct{} `type:"structure"`
5546}
5547
5548// String returns the string representation.
5549//
5550// API parameter values that are decorated as "sensitive" in the API will not
5551// be included in the string output. The member name will be present, but the
5552// value will be replaced with "sensitive".
5553func (s AllowCustomRoutingTrafficOutput) String() string {
5554	return awsutil.Prettify(s)
5555}
5556
5557// GoString returns the string representation.
5558//
5559// API parameter values that are decorated as "sensitive" in the API will not
5560// be included in the string output. The member name will be present, but the
5561// value will be replaced with "sensitive".
5562func (s AllowCustomRoutingTrafficOutput) GoString() string {
5563	return s.String()
5564}
5565
5566// The listener that you specified has an endpoint group associated with it.
5567// You must remove all dependent resources from a listener before you can delete
5568// it.
5569type AssociatedEndpointGroupFoundException struct {
5570	_            struct{}                  `type:"structure"`
5571	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5572
5573	Message_ *string `locationName:"Message" type:"string"`
5574}
5575
5576// String returns the string representation.
5577//
5578// API parameter values that are decorated as "sensitive" in the API will not
5579// be included in the string output. The member name will be present, but the
5580// value will be replaced with "sensitive".
5581func (s AssociatedEndpointGroupFoundException) String() string {
5582	return awsutil.Prettify(s)
5583}
5584
5585// GoString returns the string representation.
5586//
5587// API parameter values that are decorated as "sensitive" in the API will not
5588// be included in the string output. The member name will be present, but the
5589// value will be replaced with "sensitive".
5590func (s AssociatedEndpointGroupFoundException) GoString() string {
5591	return s.String()
5592}
5593
5594func newErrorAssociatedEndpointGroupFoundException(v protocol.ResponseMetadata) error {
5595	return &AssociatedEndpointGroupFoundException{
5596		RespMetadata: v,
5597	}
5598}
5599
5600// Code returns the exception type name.
5601func (s *AssociatedEndpointGroupFoundException) Code() string {
5602	return "AssociatedEndpointGroupFoundException"
5603}
5604
5605// Message returns the exception's message.
5606func (s *AssociatedEndpointGroupFoundException) Message() string {
5607	if s.Message_ != nil {
5608		return *s.Message_
5609	}
5610	return ""
5611}
5612
5613// OrigErr always returns nil, satisfies awserr.Error interface.
5614func (s *AssociatedEndpointGroupFoundException) OrigErr() error {
5615	return nil
5616}
5617
5618func (s *AssociatedEndpointGroupFoundException) Error() string {
5619	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5620}
5621
5622// Status code returns the HTTP status code for the request's response error.
5623func (s *AssociatedEndpointGroupFoundException) StatusCode() int {
5624	return s.RespMetadata.StatusCode
5625}
5626
5627// RequestID returns the service's response RequestID for request.
5628func (s *AssociatedEndpointGroupFoundException) RequestID() string {
5629	return s.RespMetadata.RequestID
5630}
5631
5632// The accelerator that you specified has a listener associated with it. You
5633// must remove all dependent resources from an accelerator before you can delete
5634// it.
5635type AssociatedListenerFoundException struct {
5636	_            struct{}                  `type:"structure"`
5637	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5638
5639	Message_ *string `locationName:"Message" type:"string"`
5640}
5641
5642// String returns the string representation.
5643//
5644// API parameter values that are decorated as "sensitive" in the API will not
5645// be included in the string output. The member name will be present, but the
5646// value will be replaced with "sensitive".
5647func (s AssociatedListenerFoundException) String() string {
5648	return awsutil.Prettify(s)
5649}
5650
5651// GoString returns the string representation.
5652//
5653// API parameter values that are decorated as "sensitive" in the API will not
5654// be included in the string output. The member name will be present, but the
5655// value will be replaced with "sensitive".
5656func (s AssociatedListenerFoundException) GoString() string {
5657	return s.String()
5658}
5659
5660func newErrorAssociatedListenerFoundException(v protocol.ResponseMetadata) error {
5661	return &AssociatedListenerFoundException{
5662		RespMetadata: v,
5663	}
5664}
5665
5666// Code returns the exception type name.
5667func (s *AssociatedListenerFoundException) Code() string {
5668	return "AssociatedListenerFoundException"
5669}
5670
5671// Message returns the exception's message.
5672func (s *AssociatedListenerFoundException) Message() string {
5673	if s.Message_ != nil {
5674		return *s.Message_
5675	}
5676	return ""
5677}
5678
5679// OrigErr always returns nil, satisfies awserr.Error interface.
5680func (s *AssociatedListenerFoundException) OrigErr() error {
5681	return nil
5682}
5683
5684func (s *AssociatedListenerFoundException) Error() string {
5685	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5686}
5687
5688// Status code returns the HTTP status code for the request's response error.
5689func (s *AssociatedListenerFoundException) StatusCode() int {
5690	return s.RespMetadata.StatusCode
5691}
5692
5693// RequestID returns the service's response RequestID for request.
5694func (s *AssociatedListenerFoundException) RequestID() string {
5695	return s.RespMetadata.RequestID
5696}
5697
5698// Information about an IP address range that is provisioned for use with your
5699// AWS resources through bring your own IP address (BYOIP).
5700//
5701// The following describes each BYOIP State that your IP address range can be
5702// in.
5703//
5704//    * PENDING_PROVISIONING — You’ve submitted a request to provision an
5705//    IP address range but it is not yet provisioned with AWS Global Accelerator.
5706//
5707//    * READY — The address range is provisioned with AWS Global Accelerator
5708//    and can be advertised.
5709//
5710//    * PENDING_ADVERTISING — You’ve submitted a request for AWS Global
5711//    Accelerator to advertise an address range but it is not yet being advertised.
5712//
5713//    * ADVERTISING — The address range is being advertised by AWS Global
5714//    Accelerator.
5715//
5716//    * PENDING_WITHDRAWING — You’ve submitted a request to withdraw an
5717//    address range from being advertised but it is still being advertised by
5718//    AWS Global Accelerator.
5719//
5720//    * PENDING_DEPROVISIONING — You’ve submitted a request to deprovision
5721//    an address range from AWS Global Accelerator but it is still provisioned.
5722//
5723//    * DEPROVISIONED — The address range is deprovisioned from AWS Global
5724//    Accelerator.
5725//
5726//    * FAILED_PROVISION — The request to provision the address range from
5727//    AWS Global Accelerator was not successful. Please make sure that you provide
5728//    all of the correct information, and try again. If the request fails a
5729//    second time, contact AWS support.
5730//
5731//    * FAILED_ADVERTISING — The request for AWS Global Accelerator to advertise
5732//    the address range was not successful. Please make sure that you provide
5733//    all of the correct information, and try again. If the request fails a
5734//    second time, contact AWS support.
5735//
5736//    * FAILED_WITHDRAW — The request to withdraw the address range from advertising
5737//    by AWS Global Accelerator was not successful. Please make sure that you
5738//    provide all of the correct information, and try again. If the request
5739//    fails a second time, contact AWS support.
5740//
5741//    * FAILED_DEPROVISION — The request to deprovision the address range
5742//    from AWS Global Accelerator was not successful. Please make sure that
5743//    you provide all of the correct information, and try again. If the request
5744//    fails a second time, contact AWS support.
5745type ByoipCidr struct {
5746	_ struct{} `type:"structure"`
5747
5748	// The address range, in CIDR notation.
5749	Cidr *string `type:"string"`
5750
5751	// A history of status changes for an IP address range that you bring to AWS
5752	// Global Accelerator through bring your own IP address (BYOIP).
5753	Events []*ByoipCidrEvent `type:"list"`
5754
5755	// The state of the address pool.
5756	State *string `type:"string" enum:"ByoipCidrState"`
5757}
5758
5759// String returns the string representation.
5760//
5761// API parameter values that are decorated as "sensitive" in the API will not
5762// be included in the string output. The member name will be present, but the
5763// value will be replaced with "sensitive".
5764func (s ByoipCidr) String() string {
5765	return awsutil.Prettify(s)
5766}
5767
5768// GoString returns the string representation.
5769//
5770// API parameter values that are decorated as "sensitive" in the API will not
5771// be included in the string output. The member name will be present, but the
5772// value will be replaced with "sensitive".
5773func (s ByoipCidr) GoString() string {
5774	return s.String()
5775}
5776
5777// SetCidr sets the Cidr field's value.
5778func (s *ByoipCidr) SetCidr(v string) *ByoipCidr {
5779	s.Cidr = &v
5780	return s
5781}
5782
5783// SetEvents sets the Events field's value.
5784func (s *ByoipCidr) SetEvents(v []*ByoipCidrEvent) *ByoipCidr {
5785	s.Events = v
5786	return s
5787}
5788
5789// SetState sets the State field's value.
5790func (s *ByoipCidr) SetState(v string) *ByoipCidr {
5791	s.State = &v
5792	return s
5793}
5794
5795// A complex type that contains a Message and a Timestamp value for changes
5796// that you make in the status an IP address range that you bring to AWS Global
5797// Accelerator through bring your own IP address (BYOIP).
5798type ByoipCidrEvent struct {
5799	_ struct{} `type:"structure"`
5800
5801	// A string that contains an Event message describing changes that you make
5802	// in the status of an IP address range that you bring to AWS Global Accelerator
5803	// through bring your own IP address (BYOIP).
5804	Message *string `type:"string"`
5805
5806	// A timestamp when you make a status change for an IP address range that you
5807	// bring to AWS Global Accelerator through bring your own IP address (BYOIP).
5808	Timestamp *time.Time `type:"timestamp"`
5809}
5810
5811// String returns the string representation.
5812//
5813// API parameter values that are decorated as "sensitive" in the API will not
5814// be included in the string output. The member name will be present, but the
5815// value will be replaced with "sensitive".
5816func (s ByoipCidrEvent) String() string {
5817	return awsutil.Prettify(s)
5818}
5819
5820// GoString returns the string representation.
5821//
5822// API parameter values that are decorated as "sensitive" in the API will not
5823// be included in the string output. The member name will be present, but the
5824// value will be replaced with "sensitive".
5825func (s ByoipCidrEvent) GoString() string {
5826	return s.String()
5827}
5828
5829// SetMessage sets the Message field's value.
5830func (s *ByoipCidrEvent) SetMessage(v string) *ByoipCidrEvent {
5831	s.Message = &v
5832	return s
5833}
5834
5835// SetTimestamp sets the Timestamp field's value.
5836func (s *ByoipCidrEvent) SetTimestamp(v time.Time) *ByoipCidrEvent {
5837	s.Timestamp = &v
5838	return s
5839}
5840
5841// The CIDR that you specified was not found or is incorrect.
5842type ByoipCidrNotFoundException struct {
5843	_            struct{}                  `type:"structure"`
5844	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5845
5846	Message_ *string `locationName:"Message" type:"string"`
5847}
5848
5849// String returns the string representation.
5850//
5851// API parameter values that are decorated as "sensitive" in the API will not
5852// be included in the string output. The member name will be present, but the
5853// value will be replaced with "sensitive".
5854func (s ByoipCidrNotFoundException) String() string {
5855	return awsutil.Prettify(s)
5856}
5857
5858// GoString returns the string representation.
5859//
5860// API parameter values that are decorated as "sensitive" in the API will not
5861// be included in the string output. The member name will be present, but the
5862// value will be replaced with "sensitive".
5863func (s ByoipCidrNotFoundException) GoString() string {
5864	return s.String()
5865}
5866
5867func newErrorByoipCidrNotFoundException(v protocol.ResponseMetadata) error {
5868	return &ByoipCidrNotFoundException{
5869		RespMetadata: v,
5870	}
5871}
5872
5873// Code returns the exception type name.
5874func (s *ByoipCidrNotFoundException) Code() string {
5875	return "ByoipCidrNotFoundException"
5876}
5877
5878// Message returns the exception's message.
5879func (s *ByoipCidrNotFoundException) Message() string {
5880	if s.Message_ != nil {
5881		return *s.Message_
5882	}
5883	return ""
5884}
5885
5886// OrigErr always returns nil, satisfies awserr.Error interface.
5887func (s *ByoipCidrNotFoundException) OrigErr() error {
5888	return nil
5889}
5890
5891func (s *ByoipCidrNotFoundException) Error() string {
5892	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5893}
5894
5895// Status code returns the HTTP status code for the request's response error.
5896func (s *ByoipCidrNotFoundException) StatusCode() int {
5897	return s.RespMetadata.StatusCode
5898}
5899
5900// RequestID returns the service's response RequestID for request.
5901func (s *ByoipCidrNotFoundException) RequestID() string {
5902	return s.RespMetadata.RequestID
5903}
5904
5905// Provides authorization for Amazon to bring a specific IP address range to
5906// a specific AWS account using bring your own IP addresses (BYOIP).
5907//
5908// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
5909// in the AWS Global Accelerator Developer Guide.
5910type CidrAuthorizationContext struct {
5911	_ struct{} `type:"structure"`
5912
5913	// The plain-text authorization message for the prefix and account.
5914	//
5915	// Message is a required field
5916	Message *string `type:"string" required:"true"`
5917
5918	// The signed authorization message for the prefix and account.
5919	//
5920	// Signature is a required field
5921	Signature *string `type:"string" required:"true"`
5922}
5923
5924// String returns the string representation.
5925//
5926// API parameter values that are decorated as "sensitive" in the API will not
5927// be included in the string output. The member name will be present, but the
5928// value will be replaced with "sensitive".
5929func (s CidrAuthorizationContext) String() string {
5930	return awsutil.Prettify(s)
5931}
5932
5933// GoString returns the string representation.
5934//
5935// API parameter values that are decorated as "sensitive" in the API will not
5936// be included in the string output. The member name will be present, but the
5937// value will be replaced with "sensitive".
5938func (s CidrAuthorizationContext) GoString() string {
5939	return s.String()
5940}
5941
5942// Validate inspects the fields of the type to determine if they are valid.
5943func (s *CidrAuthorizationContext) Validate() error {
5944	invalidParams := request.ErrInvalidParams{Context: "CidrAuthorizationContext"}
5945	if s.Message == nil {
5946		invalidParams.Add(request.NewErrParamRequired("Message"))
5947	}
5948	if s.Signature == nil {
5949		invalidParams.Add(request.NewErrParamRequired("Signature"))
5950	}
5951
5952	if invalidParams.Len() > 0 {
5953		return invalidParams
5954	}
5955	return nil
5956}
5957
5958// SetMessage sets the Message field's value.
5959func (s *CidrAuthorizationContext) SetMessage(v string) *CidrAuthorizationContext {
5960	s.Message = &v
5961	return s
5962}
5963
5964// SetSignature sets the Signature field's value.
5965func (s *CidrAuthorizationContext) SetSignature(v string) *CidrAuthorizationContext {
5966	s.Signature = &v
5967	return s
5968}
5969
5970// You can't use both of those options.
5971type ConflictException struct {
5972	_            struct{}                  `type:"structure"`
5973	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5974
5975	Message_ *string `locationName:"Message" type:"string"`
5976}
5977
5978// String returns the string representation.
5979//
5980// API parameter values that are decorated as "sensitive" in the API will not
5981// be included in the string output. The member name will be present, but the
5982// value will be replaced with "sensitive".
5983func (s ConflictException) String() string {
5984	return awsutil.Prettify(s)
5985}
5986
5987// GoString returns the string representation.
5988//
5989// API parameter values that are decorated as "sensitive" in the API will not
5990// be included in the string output. The member name will be present, but the
5991// value will be replaced with "sensitive".
5992func (s ConflictException) GoString() string {
5993	return s.String()
5994}
5995
5996func newErrorConflictException(v protocol.ResponseMetadata) error {
5997	return &ConflictException{
5998		RespMetadata: v,
5999	}
6000}
6001
6002// Code returns the exception type name.
6003func (s *ConflictException) Code() string {
6004	return "ConflictException"
6005}
6006
6007// Message returns the exception's message.
6008func (s *ConflictException) Message() string {
6009	if s.Message_ != nil {
6010		return *s.Message_
6011	}
6012	return ""
6013}
6014
6015// OrigErr always returns nil, satisfies awserr.Error interface.
6016func (s *ConflictException) OrigErr() error {
6017	return nil
6018}
6019
6020func (s *ConflictException) Error() string {
6021	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6022}
6023
6024// Status code returns the HTTP status code for the request's response error.
6025func (s *ConflictException) StatusCode() int {
6026	return s.RespMetadata.StatusCode
6027}
6028
6029// RequestID returns the service's response RequestID for request.
6030func (s *ConflictException) RequestID() string {
6031	return s.RespMetadata.RequestID
6032}
6033
6034type CreateAcceleratorInput struct {
6035	_ struct{} `type:"structure"`
6036
6037	// Indicates whether an accelerator is enabled. The value is true or false.
6038	// The default value is true.
6039	//
6040	// If the value is set to true, an accelerator cannot be deleted. If set to
6041	// false, the accelerator can be deleted.
6042	Enabled *bool `type:"boolean"`
6043
6044	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
6045	// is, the uniqueness—of an accelerator.
6046	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
6047
6048	// The value for the address type must be IPv4.
6049	IpAddressType *string `type:"string" enum:"IpAddressType"`
6050
6051	// Optionally, if you've added your own IP address pool to Global Accelerator
6052	// (BYOIP), you can choose IP addresses from your own pool to use for the accelerator's
6053	// static IP addresses when you create an accelerator. You can specify one or
6054	// two addresses, separated by a space. Do not include the /32 suffix.
6055	//
6056	// Only one IP address from each of your IP address ranges can be used for each
6057	// accelerator. If you specify only one IP address from your IP address range,
6058	// Global Accelerator assigns a second static IP address for the accelerator
6059	// from the AWS IP address pool.
6060	//
6061	// Note that you can't update IP addresses for an existing accelerator. To change
6062	// them, you must create a new accelerator with the new addresses.
6063	//
6064	// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
6065	// in the AWS Global Accelerator Developer Guide.
6066	IpAddresses []*string `type:"list"`
6067
6068	// The name of an accelerator. The name can have a maximum of 32 characters,
6069	// must contain only alphanumeric characters or hyphens (-), and must not begin
6070	// or end with a hyphen.
6071	//
6072	// Name is a required field
6073	Name *string `type:"string" required:"true"`
6074
6075	// Create tags for an accelerator.
6076	//
6077	// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
6078	// in the AWS Global Accelerator Developer Guide.
6079	Tags []*Tag `type:"list"`
6080}
6081
6082// String returns the string representation.
6083//
6084// API parameter values that are decorated as "sensitive" in the API will not
6085// be included in the string output. The member name will be present, but the
6086// value will be replaced with "sensitive".
6087func (s CreateAcceleratorInput) String() string {
6088	return awsutil.Prettify(s)
6089}
6090
6091// GoString returns the string representation.
6092//
6093// API parameter values that are decorated as "sensitive" in the API will not
6094// be included in the string output. The member name will be present, but the
6095// value will be replaced with "sensitive".
6096func (s CreateAcceleratorInput) GoString() string {
6097	return s.String()
6098}
6099
6100// Validate inspects the fields of the type to determine if they are valid.
6101func (s *CreateAcceleratorInput) Validate() error {
6102	invalidParams := request.ErrInvalidParams{Context: "CreateAcceleratorInput"}
6103	if s.Name == nil {
6104		invalidParams.Add(request.NewErrParamRequired("Name"))
6105	}
6106	if s.Tags != nil {
6107		for i, v := range s.Tags {
6108			if v == nil {
6109				continue
6110			}
6111			if err := v.Validate(); err != nil {
6112				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6113			}
6114		}
6115	}
6116
6117	if invalidParams.Len() > 0 {
6118		return invalidParams
6119	}
6120	return nil
6121}
6122
6123// SetEnabled sets the Enabled field's value.
6124func (s *CreateAcceleratorInput) SetEnabled(v bool) *CreateAcceleratorInput {
6125	s.Enabled = &v
6126	return s
6127}
6128
6129// SetIdempotencyToken sets the IdempotencyToken field's value.
6130func (s *CreateAcceleratorInput) SetIdempotencyToken(v string) *CreateAcceleratorInput {
6131	s.IdempotencyToken = &v
6132	return s
6133}
6134
6135// SetIpAddressType sets the IpAddressType field's value.
6136func (s *CreateAcceleratorInput) SetIpAddressType(v string) *CreateAcceleratorInput {
6137	s.IpAddressType = &v
6138	return s
6139}
6140
6141// SetIpAddresses sets the IpAddresses field's value.
6142func (s *CreateAcceleratorInput) SetIpAddresses(v []*string) *CreateAcceleratorInput {
6143	s.IpAddresses = v
6144	return s
6145}
6146
6147// SetName sets the Name field's value.
6148func (s *CreateAcceleratorInput) SetName(v string) *CreateAcceleratorInput {
6149	s.Name = &v
6150	return s
6151}
6152
6153// SetTags sets the Tags field's value.
6154func (s *CreateAcceleratorInput) SetTags(v []*Tag) *CreateAcceleratorInput {
6155	s.Tags = v
6156	return s
6157}
6158
6159type CreateAcceleratorOutput struct {
6160	_ struct{} `type:"structure"`
6161
6162	// The accelerator that is created by specifying a listener and the supported
6163	// IP address types.
6164	Accelerator *Accelerator `type:"structure"`
6165}
6166
6167// String returns the string representation.
6168//
6169// API parameter values that are decorated as "sensitive" in the API will not
6170// be included in the string output. The member name will be present, but the
6171// value will be replaced with "sensitive".
6172func (s CreateAcceleratorOutput) String() string {
6173	return awsutil.Prettify(s)
6174}
6175
6176// GoString returns the string representation.
6177//
6178// API parameter values that are decorated as "sensitive" in the API will not
6179// be included in the string output. The member name will be present, but the
6180// value will be replaced with "sensitive".
6181func (s CreateAcceleratorOutput) GoString() string {
6182	return s.String()
6183}
6184
6185// SetAccelerator sets the Accelerator field's value.
6186func (s *CreateAcceleratorOutput) SetAccelerator(v *Accelerator) *CreateAcceleratorOutput {
6187	s.Accelerator = v
6188	return s
6189}
6190
6191type CreateCustomRoutingAcceleratorInput struct {
6192	_ struct{} `type:"structure"`
6193
6194	// Indicates whether an accelerator is enabled. The value is true or false.
6195	// The default value is true.
6196	//
6197	// If the value is set to true, an accelerator cannot be deleted. If set to
6198	// false, the accelerator can be deleted.
6199	Enabled *bool `type:"boolean"`
6200
6201	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
6202	// is, the uniqueness—of the request.
6203	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
6204
6205	// The value for the address type must be IPv4.
6206	IpAddressType *string `type:"string" enum:"IpAddressType"`
6207
6208	// Optionally, if you've added your own IP address pool to Global Accelerator
6209	// (BYOIP), you can choose IP addresses from your own pool to use for the accelerator's
6210	// static IP addresses when you create an accelerator. You can specify one or
6211	// two addresses, separated by a space. Do not include the /32 suffix.
6212	//
6213	// Only one IP address from each of your IP address ranges can be used for each
6214	// accelerator. If you specify only one IP address from your IP address range,
6215	// Global Accelerator assigns a second static IP address for the accelerator
6216	// from the AWS IP address pool.
6217	//
6218	// Note that you can't update IP addresses for an existing accelerator. To change
6219	// them, you must create a new accelerator with the new addresses.
6220	//
6221	// For more information, see Bring your own IP addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
6222	// in the AWS Global Accelerator Developer Guide.
6223	IpAddresses []*string `type:"list"`
6224
6225	// The name of a custom routing accelerator. The name can have a maximum of
6226	// 64 characters, must contain only alphanumeric characters or hyphens (-),
6227	// and must not begin or end with a hyphen.
6228	//
6229	// Name is a required field
6230	Name *string `type:"string" required:"true"`
6231
6232	// Create tags for an accelerator.
6233	//
6234	// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
6235	// in the AWS Global Accelerator Developer Guide.
6236	Tags []*Tag `type:"list"`
6237}
6238
6239// String returns the string representation.
6240//
6241// API parameter values that are decorated as "sensitive" in the API will not
6242// be included in the string output. The member name will be present, but the
6243// value will be replaced with "sensitive".
6244func (s CreateCustomRoutingAcceleratorInput) String() string {
6245	return awsutil.Prettify(s)
6246}
6247
6248// GoString returns the string representation.
6249//
6250// API parameter values that are decorated as "sensitive" in the API will not
6251// be included in the string output. The member name will be present, but the
6252// value will be replaced with "sensitive".
6253func (s CreateCustomRoutingAcceleratorInput) GoString() string {
6254	return s.String()
6255}
6256
6257// Validate inspects the fields of the type to determine if they are valid.
6258func (s *CreateCustomRoutingAcceleratorInput) Validate() error {
6259	invalidParams := request.ErrInvalidParams{Context: "CreateCustomRoutingAcceleratorInput"}
6260	if s.Name == nil {
6261		invalidParams.Add(request.NewErrParamRequired("Name"))
6262	}
6263	if s.Tags != nil {
6264		for i, v := range s.Tags {
6265			if v == nil {
6266				continue
6267			}
6268			if err := v.Validate(); err != nil {
6269				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6270			}
6271		}
6272	}
6273
6274	if invalidParams.Len() > 0 {
6275		return invalidParams
6276	}
6277	return nil
6278}
6279
6280// SetEnabled sets the Enabled field's value.
6281func (s *CreateCustomRoutingAcceleratorInput) SetEnabled(v bool) *CreateCustomRoutingAcceleratorInput {
6282	s.Enabled = &v
6283	return s
6284}
6285
6286// SetIdempotencyToken sets the IdempotencyToken field's value.
6287func (s *CreateCustomRoutingAcceleratorInput) SetIdempotencyToken(v string) *CreateCustomRoutingAcceleratorInput {
6288	s.IdempotencyToken = &v
6289	return s
6290}
6291
6292// SetIpAddressType sets the IpAddressType field's value.
6293func (s *CreateCustomRoutingAcceleratorInput) SetIpAddressType(v string) *CreateCustomRoutingAcceleratorInput {
6294	s.IpAddressType = &v
6295	return s
6296}
6297
6298// SetIpAddresses sets the IpAddresses field's value.
6299func (s *CreateCustomRoutingAcceleratorInput) SetIpAddresses(v []*string) *CreateCustomRoutingAcceleratorInput {
6300	s.IpAddresses = v
6301	return s
6302}
6303
6304// SetName sets the Name field's value.
6305func (s *CreateCustomRoutingAcceleratorInput) SetName(v string) *CreateCustomRoutingAcceleratorInput {
6306	s.Name = &v
6307	return s
6308}
6309
6310// SetTags sets the Tags field's value.
6311func (s *CreateCustomRoutingAcceleratorInput) SetTags(v []*Tag) *CreateCustomRoutingAcceleratorInput {
6312	s.Tags = v
6313	return s
6314}
6315
6316type CreateCustomRoutingAcceleratorOutput struct {
6317	_ struct{} `type:"structure"`
6318
6319	// The accelerator that is created.
6320	Accelerator *CustomRoutingAccelerator `type:"structure"`
6321}
6322
6323// String returns the string representation.
6324//
6325// API parameter values that are decorated as "sensitive" in the API will not
6326// be included in the string output. The member name will be present, but the
6327// value will be replaced with "sensitive".
6328func (s CreateCustomRoutingAcceleratorOutput) String() string {
6329	return awsutil.Prettify(s)
6330}
6331
6332// GoString returns the string representation.
6333//
6334// API parameter values that are decorated as "sensitive" in the API will not
6335// be included in the string output. The member name will be present, but the
6336// value will be replaced with "sensitive".
6337func (s CreateCustomRoutingAcceleratorOutput) GoString() string {
6338	return s.String()
6339}
6340
6341// SetAccelerator sets the Accelerator field's value.
6342func (s *CreateCustomRoutingAcceleratorOutput) SetAccelerator(v *CustomRoutingAccelerator) *CreateCustomRoutingAcceleratorOutput {
6343	s.Accelerator = v
6344	return s
6345}
6346
6347type CreateCustomRoutingEndpointGroupInput struct {
6348	_ struct{} `type:"structure"`
6349
6350	// Sets the port range and protocol for all endpoints (virtual private cloud
6351	// subnets) in a custom routing endpoint group to accept client traffic on.
6352	//
6353	// DestinationConfigurations is a required field
6354	DestinationConfigurations []*CustomRoutingDestinationConfiguration `min:"1" type:"list" required:"true"`
6355
6356	// The AWS Region where the endpoint group is located. A listener can have only
6357	// one endpoint group in a specific Region.
6358	//
6359	// EndpointGroupRegion is a required field
6360	EndpointGroupRegion *string `type:"string" required:"true"`
6361
6362	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
6363	// is, the uniqueness—of the request.
6364	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
6365
6366	// The Amazon Resource Name (ARN) of the listener for a custom routing endpoint.
6367	//
6368	// ListenerArn is a required field
6369	ListenerArn *string `type:"string" required:"true"`
6370}
6371
6372// String returns the string representation.
6373//
6374// API parameter values that are decorated as "sensitive" in the API will not
6375// be included in the string output. The member name will be present, but the
6376// value will be replaced with "sensitive".
6377func (s CreateCustomRoutingEndpointGroupInput) String() string {
6378	return awsutil.Prettify(s)
6379}
6380
6381// GoString returns the string representation.
6382//
6383// API parameter values that are decorated as "sensitive" in the API will not
6384// be included in the string output. The member name will be present, but the
6385// value will be replaced with "sensitive".
6386func (s CreateCustomRoutingEndpointGroupInput) GoString() string {
6387	return s.String()
6388}
6389
6390// Validate inspects the fields of the type to determine if they are valid.
6391func (s *CreateCustomRoutingEndpointGroupInput) Validate() error {
6392	invalidParams := request.ErrInvalidParams{Context: "CreateCustomRoutingEndpointGroupInput"}
6393	if s.DestinationConfigurations == nil {
6394		invalidParams.Add(request.NewErrParamRequired("DestinationConfigurations"))
6395	}
6396	if s.DestinationConfigurations != nil && len(s.DestinationConfigurations) < 1 {
6397		invalidParams.Add(request.NewErrParamMinLen("DestinationConfigurations", 1))
6398	}
6399	if s.EndpointGroupRegion == nil {
6400		invalidParams.Add(request.NewErrParamRequired("EndpointGroupRegion"))
6401	}
6402	if s.ListenerArn == nil {
6403		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
6404	}
6405	if s.DestinationConfigurations != nil {
6406		for i, v := range s.DestinationConfigurations {
6407			if v == nil {
6408				continue
6409			}
6410			if err := v.Validate(); err != nil {
6411				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DestinationConfigurations", i), err.(request.ErrInvalidParams))
6412			}
6413		}
6414	}
6415
6416	if invalidParams.Len() > 0 {
6417		return invalidParams
6418	}
6419	return nil
6420}
6421
6422// SetDestinationConfigurations sets the DestinationConfigurations field's value.
6423func (s *CreateCustomRoutingEndpointGroupInput) SetDestinationConfigurations(v []*CustomRoutingDestinationConfiguration) *CreateCustomRoutingEndpointGroupInput {
6424	s.DestinationConfigurations = v
6425	return s
6426}
6427
6428// SetEndpointGroupRegion sets the EndpointGroupRegion field's value.
6429func (s *CreateCustomRoutingEndpointGroupInput) SetEndpointGroupRegion(v string) *CreateCustomRoutingEndpointGroupInput {
6430	s.EndpointGroupRegion = &v
6431	return s
6432}
6433
6434// SetIdempotencyToken sets the IdempotencyToken field's value.
6435func (s *CreateCustomRoutingEndpointGroupInput) SetIdempotencyToken(v string) *CreateCustomRoutingEndpointGroupInput {
6436	s.IdempotencyToken = &v
6437	return s
6438}
6439
6440// SetListenerArn sets the ListenerArn field's value.
6441func (s *CreateCustomRoutingEndpointGroupInput) SetListenerArn(v string) *CreateCustomRoutingEndpointGroupInput {
6442	s.ListenerArn = &v
6443	return s
6444}
6445
6446type CreateCustomRoutingEndpointGroupOutput struct {
6447	_ struct{} `type:"structure"`
6448
6449	// The information about the endpoint group created for a custom routing accelerator.
6450	EndpointGroup *CustomRoutingEndpointGroup `type:"structure"`
6451}
6452
6453// String returns the string representation.
6454//
6455// API parameter values that are decorated as "sensitive" in the API will not
6456// be included in the string output. The member name will be present, but the
6457// value will be replaced with "sensitive".
6458func (s CreateCustomRoutingEndpointGroupOutput) String() string {
6459	return awsutil.Prettify(s)
6460}
6461
6462// GoString returns the string representation.
6463//
6464// API parameter values that are decorated as "sensitive" in the API will not
6465// be included in the string output. The member name will be present, but the
6466// value will be replaced with "sensitive".
6467func (s CreateCustomRoutingEndpointGroupOutput) GoString() string {
6468	return s.String()
6469}
6470
6471// SetEndpointGroup sets the EndpointGroup field's value.
6472func (s *CreateCustomRoutingEndpointGroupOutput) SetEndpointGroup(v *CustomRoutingEndpointGroup) *CreateCustomRoutingEndpointGroupOutput {
6473	s.EndpointGroup = v
6474	return s
6475}
6476
6477type CreateCustomRoutingListenerInput struct {
6478	_ struct{} `type:"structure"`
6479
6480	// The Amazon Resource Name (ARN) of the accelerator for a custom routing listener.
6481	//
6482	// AcceleratorArn is a required field
6483	AcceleratorArn *string `type:"string" required:"true"`
6484
6485	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
6486	// is, the uniqueness—of the request.
6487	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
6488
6489	// The port range to support for connections from clients to your accelerator.
6490	//
6491	// Separately, you set port ranges for endpoints. For more information, see
6492	// About endpoints for custom routing accelerators (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html).
6493	//
6494	// PortRanges is a required field
6495	PortRanges []*PortRange `min:"1" type:"list" required:"true"`
6496}
6497
6498// String returns the string representation.
6499//
6500// API parameter values that are decorated as "sensitive" in the API will not
6501// be included in the string output. The member name will be present, but the
6502// value will be replaced with "sensitive".
6503func (s CreateCustomRoutingListenerInput) String() string {
6504	return awsutil.Prettify(s)
6505}
6506
6507// GoString returns the string representation.
6508//
6509// API parameter values that are decorated as "sensitive" in the API will not
6510// be included in the string output. The member name will be present, but the
6511// value will be replaced with "sensitive".
6512func (s CreateCustomRoutingListenerInput) GoString() string {
6513	return s.String()
6514}
6515
6516// Validate inspects the fields of the type to determine if they are valid.
6517func (s *CreateCustomRoutingListenerInput) Validate() error {
6518	invalidParams := request.ErrInvalidParams{Context: "CreateCustomRoutingListenerInput"}
6519	if s.AcceleratorArn == nil {
6520		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
6521	}
6522	if s.PortRanges == nil {
6523		invalidParams.Add(request.NewErrParamRequired("PortRanges"))
6524	}
6525	if s.PortRanges != nil && len(s.PortRanges) < 1 {
6526		invalidParams.Add(request.NewErrParamMinLen("PortRanges", 1))
6527	}
6528	if s.PortRanges != nil {
6529		for i, v := range s.PortRanges {
6530			if v == nil {
6531				continue
6532			}
6533			if err := v.Validate(); err != nil {
6534				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortRanges", i), err.(request.ErrInvalidParams))
6535			}
6536		}
6537	}
6538
6539	if invalidParams.Len() > 0 {
6540		return invalidParams
6541	}
6542	return nil
6543}
6544
6545// SetAcceleratorArn sets the AcceleratorArn field's value.
6546func (s *CreateCustomRoutingListenerInput) SetAcceleratorArn(v string) *CreateCustomRoutingListenerInput {
6547	s.AcceleratorArn = &v
6548	return s
6549}
6550
6551// SetIdempotencyToken sets the IdempotencyToken field's value.
6552func (s *CreateCustomRoutingListenerInput) SetIdempotencyToken(v string) *CreateCustomRoutingListenerInput {
6553	s.IdempotencyToken = &v
6554	return s
6555}
6556
6557// SetPortRanges sets the PortRanges field's value.
6558func (s *CreateCustomRoutingListenerInput) SetPortRanges(v []*PortRange) *CreateCustomRoutingListenerInput {
6559	s.PortRanges = v
6560	return s
6561}
6562
6563type CreateCustomRoutingListenerOutput struct {
6564	_ struct{} `type:"structure"`
6565
6566	// The listener that you've created for a custom routing accelerator.
6567	Listener *CustomRoutingListener `type:"structure"`
6568}
6569
6570// String returns the string representation.
6571//
6572// API parameter values that are decorated as "sensitive" in the API will not
6573// be included in the string output. The member name will be present, but the
6574// value will be replaced with "sensitive".
6575func (s CreateCustomRoutingListenerOutput) String() string {
6576	return awsutil.Prettify(s)
6577}
6578
6579// GoString returns the string representation.
6580//
6581// API parameter values that are decorated as "sensitive" in the API will not
6582// be included in the string output. The member name will be present, but the
6583// value will be replaced with "sensitive".
6584func (s CreateCustomRoutingListenerOutput) GoString() string {
6585	return s.String()
6586}
6587
6588// SetListener sets the Listener field's value.
6589func (s *CreateCustomRoutingListenerOutput) SetListener(v *CustomRoutingListener) *CreateCustomRoutingListenerOutput {
6590	s.Listener = v
6591	return s
6592}
6593
6594type CreateEndpointGroupInput struct {
6595	_ struct{} `type:"structure"`
6596
6597	// The list of endpoint objects.
6598	EndpointConfigurations []*EndpointConfiguration `type:"list"`
6599
6600	// The AWS Region where the endpoint group is located. A listener can have only
6601	// one endpoint group in a specific Region.
6602	//
6603	// EndpointGroupRegion is a required field
6604	EndpointGroupRegion *string `type:"string" required:"true"`
6605
6606	// The time—10 seconds or 30 seconds—between each health check for an endpoint.
6607	// The default value is 30.
6608	HealthCheckIntervalSeconds *int64 `min:"10" type:"integer"`
6609
6610	// If the protocol is HTTP/S, then this specifies the path that is the destination
6611	// for health check targets. The default value is slash (/).
6612	HealthCheckPath *string `type:"string"`
6613
6614	// The port that AWS Global Accelerator uses to check the health of endpoints
6615	// that are part of this endpoint group. The default port is the listener port
6616	// that this endpoint group is associated with. If listener port is a list of
6617	// ports, Global Accelerator uses the first port in the list.
6618	HealthCheckPort *int64 `min:"1" type:"integer"`
6619
6620	// The protocol that AWS Global Accelerator uses to check the health of endpoints
6621	// that are part of this endpoint group. The default value is TCP.
6622	HealthCheckProtocol *string `type:"string" enum:"HealthCheckProtocol"`
6623
6624	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
6625	// is, the uniqueness—of the request.
6626	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
6627
6628	// The Amazon Resource Name (ARN) of the listener.
6629	//
6630	// ListenerArn is a required field
6631	ListenerArn *string `type:"string" required:"true"`
6632
6633	// Override specific listener ports used to route traffic to endpoints that
6634	// are part of this endpoint group. For example, you can create a port override
6635	// in which the listener receives user traffic on ports 80 and 443, but your
6636	// accelerator routes that traffic to ports 1080 and 1443, respectively, on
6637	// the endpoints.
6638	//
6639	// For more information, see Port overrides (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html)
6640	// in the AWS Global Accelerator Developer Guide.
6641	PortOverrides []*PortOverride `type:"list"`
6642
6643	// The number of consecutive health checks required to set the state of a healthy
6644	// endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default
6645	// value is 3.
6646	ThresholdCount *int64 `min:"1" type:"integer"`
6647
6648	// The percentage of traffic to send to an AWS Region. Additional traffic is
6649	// distributed to other endpoint groups for this listener.
6650	//
6651	// Use this action to increase (dial up) or decrease (dial down) traffic to
6652	// a specific Region. The percentage is applied to the traffic that would otherwise
6653	// have been routed to the Region based on optimal routing.
6654	//
6655	// The default value is 100.
6656	TrafficDialPercentage *float64 `type:"float"`
6657}
6658
6659// String returns the string representation.
6660//
6661// API parameter values that are decorated as "sensitive" in the API will not
6662// be included in the string output. The member name will be present, but the
6663// value will be replaced with "sensitive".
6664func (s CreateEndpointGroupInput) String() string {
6665	return awsutil.Prettify(s)
6666}
6667
6668// GoString returns the string representation.
6669//
6670// API parameter values that are decorated as "sensitive" in the API will not
6671// be included in the string output. The member name will be present, but the
6672// value will be replaced with "sensitive".
6673func (s CreateEndpointGroupInput) GoString() string {
6674	return s.String()
6675}
6676
6677// Validate inspects the fields of the type to determine if they are valid.
6678func (s *CreateEndpointGroupInput) Validate() error {
6679	invalidParams := request.ErrInvalidParams{Context: "CreateEndpointGroupInput"}
6680	if s.EndpointGroupRegion == nil {
6681		invalidParams.Add(request.NewErrParamRequired("EndpointGroupRegion"))
6682	}
6683	if s.HealthCheckIntervalSeconds != nil && *s.HealthCheckIntervalSeconds < 10 {
6684		invalidParams.Add(request.NewErrParamMinValue("HealthCheckIntervalSeconds", 10))
6685	}
6686	if s.HealthCheckPort != nil && *s.HealthCheckPort < 1 {
6687		invalidParams.Add(request.NewErrParamMinValue("HealthCheckPort", 1))
6688	}
6689	if s.ListenerArn == nil {
6690		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
6691	}
6692	if s.ThresholdCount != nil && *s.ThresholdCount < 1 {
6693		invalidParams.Add(request.NewErrParamMinValue("ThresholdCount", 1))
6694	}
6695	if s.PortOverrides != nil {
6696		for i, v := range s.PortOverrides {
6697			if v == nil {
6698				continue
6699			}
6700			if err := v.Validate(); err != nil {
6701				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortOverrides", i), err.(request.ErrInvalidParams))
6702			}
6703		}
6704	}
6705
6706	if invalidParams.Len() > 0 {
6707		return invalidParams
6708	}
6709	return nil
6710}
6711
6712// SetEndpointConfigurations sets the EndpointConfigurations field's value.
6713func (s *CreateEndpointGroupInput) SetEndpointConfigurations(v []*EndpointConfiguration) *CreateEndpointGroupInput {
6714	s.EndpointConfigurations = v
6715	return s
6716}
6717
6718// SetEndpointGroupRegion sets the EndpointGroupRegion field's value.
6719func (s *CreateEndpointGroupInput) SetEndpointGroupRegion(v string) *CreateEndpointGroupInput {
6720	s.EndpointGroupRegion = &v
6721	return s
6722}
6723
6724// SetHealthCheckIntervalSeconds sets the HealthCheckIntervalSeconds field's value.
6725func (s *CreateEndpointGroupInput) SetHealthCheckIntervalSeconds(v int64) *CreateEndpointGroupInput {
6726	s.HealthCheckIntervalSeconds = &v
6727	return s
6728}
6729
6730// SetHealthCheckPath sets the HealthCheckPath field's value.
6731func (s *CreateEndpointGroupInput) SetHealthCheckPath(v string) *CreateEndpointGroupInput {
6732	s.HealthCheckPath = &v
6733	return s
6734}
6735
6736// SetHealthCheckPort sets the HealthCheckPort field's value.
6737func (s *CreateEndpointGroupInput) SetHealthCheckPort(v int64) *CreateEndpointGroupInput {
6738	s.HealthCheckPort = &v
6739	return s
6740}
6741
6742// SetHealthCheckProtocol sets the HealthCheckProtocol field's value.
6743func (s *CreateEndpointGroupInput) SetHealthCheckProtocol(v string) *CreateEndpointGroupInput {
6744	s.HealthCheckProtocol = &v
6745	return s
6746}
6747
6748// SetIdempotencyToken sets the IdempotencyToken field's value.
6749func (s *CreateEndpointGroupInput) SetIdempotencyToken(v string) *CreateEndpointGroupInput {
6750	s.IdempotencyToken = &v
6751	return s
6752}
6753
6754// SetListenerArn sets the ListenerArn field's value.
6755func (s *CreateEndpointGroupInput) SetListenerArn(v string) *CreateEndpointGroupInput {
6756	s.ListenerArn = &v
6757	return s
6758}
6759
6760// SetPortOverrides sets the PortOverrides field's value.
6761func (s *CreateEndpointGroupInput) SetPortOverrides(v []*PortOverride) *CreateEndpointGroupInput {
6762	s.PortOverrides = v
6763	return s
6764}
6765
6766// SetThresholdCount sets the ThresholdCount field's value.
6767func (s *CreateEndpointGroupInput) SetThresholdCount(v int64) *CreateEndpointGroupInput {
6768	s.ThresholdCount = &v
6769	return s
6770}
6771
6772// SetTrafficDialPercentage sets the TrafficDialPercentage field's value.
6773func (s *CreateEndpointGroupInput) SetTrafficDialPercentage(v float64) *CreateEndpointGroupInput {
6774	s.TrafficDialPercentage = &v
6775	return s
6776}
6777
6778type CreateEndpointGroupOutput struct {
6779	_ struct{} `type:"structure"`
6780
6781	// The information about the endpoint group that was created.
6782	EndpointGroup *EndpointGroup `type:"structure"`
6783}
6784
6785// String returns the string representation.
6786//
6787// API parameter values that are decorated as "sensitive" in the API will not
6788// be included in the string output. The member name will be present, but the
6789// value will be replaced with "sensitive".
6790func (s CreateEndpointGroupOutput) String() string {
6791	return awsutil.Prettify(s)
6792}
6793
6794// GoString returns the string representation.
6795//
6796// API parameter values that are decorated as "sensitive" in the API will not
6797// be included in the string output. The member name will be present, but the
6798// value will be replaced with "sensitive".
6799func (s CreateEndpointGroupOutput) GoString() string {
6800	return s.String()
6801}
6802
6803// SetEndpointGroup sets the EndpointGroup field's value.
6804func (s *CreateEndpointGroupOutput) SetEndpointGroup(v *EndpointGroup) *CreateEndpointGroupOutput {
6805	s.EndpointGroup = v
6806	return s
6807}
6808
6809type CreateListenerInput struct {
6810	_ struct{} `type:"structure"`
6811
6812	// The Amazon Resource Name (ARN) of your accelerator.
6813	//
6814	// AcceleratorArn is a required field
6815	AcceleratorArn *string `type:"string" required:"true"`
6816
6817	// Client affinity lets you direct all requests from a user to the same endpoint,
6818	// if you have stateful applications, regardless of the port and protocol of
6819	// the client request. Client affinity gives you control over whether to always
6820	// route each client to the same specific endpoint.
6821	//
6822	// AWS Global Accelerator uses a consistent-flow hashing algorithm to choose
6823	// the optimal endpoint for a connection. If client affinity is NONE, Global
6824	// Accelerator uses the "five-tuple" (5-tuple) properties—source IP address,
6825	// source port, destination IP address, destination port, and protocol—to
6826	// select the hash value, and then chooses the best endpoint. However, with
6827	// this setting, if someone uses different ports to connect to Global Accelerator,
6828	// their connections might not be always routed to the same endpoint because
6829	// the hash value changes.
6830	//
6831	// If you want a given client to always be routed to the same endpoint, set
6832	// client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting,
6833	// Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client)
6834	// IP address and destination IP address—to select the hash value.
6835	//
6836	// The default value is NONE.
6837	ClientAffinity *string `type:"string" enum:"ClientAffinity"`
6838
6839	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
6840	// is, the uniqueness—of the request.
6841	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
6842
6843	// The list of port ranges to support for connections from clients to your accelerator.
6844	//
6845	// PortRanges is a required field
6846	PortRanges []*PortRange `min:"1" type:"list" required:"true"`
6847
6848	// The protocol for connections from clients to your accelerator.
6849	//
6850	// Protocol is a required field
6851	Protocol *string `type:"string" required:"true" enum:"Protocol"`
6852}
6853
6854// String returns the string representation.
6855//
6856// API parameter values that are decorated as "sensitive" in the API will not
6857// be included in the string output. The member name will be present, but the
6858// value will be replaced with "sensitive".
6859func (s CreateListenerInput) String() string {
6860	return awsutil.Prettify(s)
6861}
6862
6863// GoString returns the string representation.
6864//
6865// API parameter values that are decorated as "sensitive" in the API will not
6866// be included in the string output. The member name will be present, but the
6867// value will be replaced with "sensitive".
6868func (s CreateListenerInput) GoString() string {
6869	return s.String()
6870}
6871
6872// Validate inspects the fields of the type to determine if they are valid.
6873func (s *CreateListenerInput) Validate() error {
6874	invalidParams := request.ErrInvalidParams{Context: "CreateListenerInput"}
6875	if s.AcceleratorArn == nil {
6876		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
6877	}
6878	if s.PortRanges == nil {
6879		invalidParams.Add(request.NewErrParamRequired("PortRanges"))
6880	}
6881	if s.PortRanges != nil && len(s.PortRanges) < 1 {
6882		invalidParams.Add(request.NewErrParamMinLen("PortRanges", 1))
6883	}
6884	if s.Protocol == nil {
6885		invalidParams.Add(request.NewErrParamRequired("Protocol"))
6886	}
6887	if s.PortRanges != nil {
6888		for i, v := range s.PortRanges {
6889			if v == nil {
6890				continue
6891			}
6892			if err := v.Validate(); err != nil {
6893				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortRanges", i), err.(request.ErrInvalidParams))
6894			}
6895		}
6896	}
6897
6898	if invalidParams.Len() > 0 {
6899		return invalidParams
6900	}
6901	return nil
6902}
6903
6904// SetAcceleratorArn sets the AcceleratorArn field's value.
6905func (s *CreateListenerInput) SetAcceleratorArn(v string) *CreateListenerInput {
6906	s.AcceleratorArn = &v
6907	return s
6908}
6909
6910// SetClientAffinity sets the ClientAffinity field's value.
6911func (s *CreateListenerInput) SetClientAffinity(v string) *CreateListenerInput {
6912	s.ClientAffinity = &v
6913	return s
6914}
6915
6916// SetIdempotencyToken sets the IdempotencyToken field's value.
6917func (s *CreateListenerInput) SetIdempotencyToken(v string) *CreateListenerInput {
6918	s.IdempotencyToken = &v
6919	return s
6920}
6921
6922// SetPortRanges sets the PortRanges field's value.
6923func (s *CreateListenerInput) SetPortRanges(v []*PortRange) *CreateListenerInput {
6924	s.PortRanges = v
6925	return s
6926}
6927
6928// SetProtocol sets the Protocol field's value.
6929func (s *CreateListenerInput) SetProtocol(v string) *CreateListenerInput {
6930	s.Protocol = &v
6931	return s
6932}
6933
6934type CreateListenerOutput struct {
6935	_ struct{} `type:"structure"`
6936
6937	// The listener that you've created.
6938	Listener *Listener `type:"structure"`
6939}
6940
6941// String returns the string representation.
6942//
6943// API parameter values that are decorated as "sensitive" in the API will not
6944// be included in the string output. The member name will be present, but the
6945// value will be replaced with "sensitive".
6946func (s CreateListenerOutput) String() string {
6947	return awsutil.Prettify(s)
6948}
6949
6950// GoString returns the string representation.
6951//
6952// API parameter values that are decorated as "sensitive" in the API will not
6953// be included in the string output. The member name will be present, but the
6954// value will be replaced with "sensitive".
6955func (s CreateListenerOutput) GoString() string {
6956	return s.String()
6957}
6958
6959// SetListener sets the Listener field's value.
6960func (s *CreateListenerOutput) SetListener(v *Listener) *CreateListenerOutput {
6961	s.Listener = v
6962	return s
6963}
6964
6965// Attributes of a custom routing accelerator.
6966type CustomRoutingAccelerator struct {
6967	_ struct{} `type:"structure"`
6968
6969	// The Amazon Resource Name (ARN) of the custom routing accelerator.
6970	AcceleratorArn *string `type:"string"`
6971
6972	// The date and time that the accelerator was created.
6973	CreatedTime *time.Time `type:"timestamp"`
6974
6975	// The Domain Name System (DNS) name that Global Accelerator creates that points
6976	// to your accelerator's static IP addresses.
6977	//
6978	// The naming convention for the DNS name is the following: A lowercase letter
6979	// a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com.
6980	// For example: a1234567890abcdef.awsglobalaccelerator.com.
6981	//
6982	// For more information about the default DNS name, see Support for DNS Addressing
6983	// in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing)
6984	// in the AWS Global Accelerator Developer Guide.
6985	DnsName *string `type:"string"`
6986
6987	// Indicates whether the accelerator is enabled. The value is true or false.
6988	// The default value is true.
6989	//
6990	// If the value is set to true, the accelerator cannot be deleted. If set to
6991	// false, accelerator can be deleted.
6992	Enabled *bool `type:"boolean"`
6993
6994	// The value for the address type must be IPv4.
6995	IpAddressType *string `type:"string" enum:"IpAddressType"`
6996
6997	// The static IP addresses that Global Accelerator associates with the accelerator.
6998	IpSets []*IpSet `type:"list"`
6999
7000	// The date and time that the accelerator was last modified.
7001	LastModifiedTime *time.Time `type:"timestamp"`
7002
7003	// The name of the accelerator. The name must contain only alphanumeric characters
7004	// or hyphens (-), and must not begin or end with a hyphen.
7005	Name *string `type:"string"`
7006
7007	// Describes the deployment status of the accelerator.
7008	Status *string `type:"string" enum:"CustomRoutingAcceleratorStatus"`
7009}
7010
7011// String returns the string representation.
7012//
7013// API parameter values that are decorated as "sensitive" in the API will not
7014// be included in the string output. The member name will be present, but the
7015// value will be replaced with "sensitive".
7016func (s CustomRoutingAccelerator) String() string {
7017	return awsutil.Prettify(s)
7018}
7019
7020// GoString returns the string representation.
7021//
7022// API parameter values that are decorated as "sensitive" in the API will not
7023// be included in the string output. The member name will be present, but the
7024// value will be replaced with "sensitive".
7025func (s CustomRoutingAccelerator) GoString() string {
7026	return s.String()
7027}
7028
7029// SetAcceleratorArn sets the AcceleratorArn field's value.
7030func (s *CustomRoutingAccelerator) SetAcceleratorArn(v string) *CustomRoutingAccelerator {
7031	s.AcceleratorArn = &v
7032	return s
7033}
7034
7035// SetCreatedTime sets the CreatedTime field's value.
7036func (s *CustomRoutingAccelerator) SetCreatedTime(v time.Time) *CustomRoutingAccelerator {
7037	s.CreatedTime = &v
7038	return s
7039}
7040
7041// SetDnsName sets the DnsName field's value.
7042func (s *CustomRoutingAccelerator) SetDnsName(v string) *CustomRoutingAccelerator {
7043	s.DnsName = &v
7044	return s
7045}
7046
7047// SetEnabled sets the Enabled field's value.
7048func (s *CustomRoutingAccelerator) SetEnabled(v bool) *CustomRoutingAccelerator {
7049	s.Enabled = &v
7050	return s
7051}
7052
7053// SetIpAddressType sets the IpAddressType field's value.
7054func (s *CustomRoutingAccelerator) SetIpAddressType(v string) *CustomRoutingAccelerator {
7055	s.IpAddressType = &v
7056	return s
7057}
7058
7059// SetIpSets sets the IpSets field's value.
7060func (s *CustomRoutingAccelerator) SetIpSets(v []*IpSet) *CustomRoutingAccelerator {
7061	s.IpSets = v
7062	return s
7063}
7064
7065// SetLastModifiedTime sets the LastModifiedTime field's value.
7066func (s *CustomRoutingAccelerator) SetLastModifiedTime(v time.Time) *CustomRoutingAccelerator {
7067	s.LastModifiedTime = &v
7068	return s
7069}
7070
7071// SetName sets the Name field's value.
7072func (s *CustomRoutingAccelerator) SetName(v string) *CustomRoutingAccelerator {
7073	s.Name = &v
7074	return s
7075}
7076
7077// SetStatus sets the Status field's value.
7078func (s *CustomRoutingAccelerator) SetStatus(v string) *CustomRoutingAccelerator {
7079	s.Status = &v
7080	return s
7081}
7082
7083// Attributes of a custom routing accelerator.
7084type CustomRoutingAcceleratorAttributes struct {
7085	_ struct{} `type:"structure"`
7086
7087	// Indicates whether flow logs are enabled. The default value is false. If the
7088	// value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.
7089	//
7090	// For more information, see Flow Logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html)
7091	// in the AWS Global Accelerator Developer Guide.
7092	FlowLogsEnabled *bool `type:"boolean"`
7093
7094	// The name of the Amazon S3 bucket for the flow logs. Attribute is required
7095	// if FlowLogsEnabled is true. The bucket must exist and have a bucket policy
7096	// that grants AWS Global Accelerator permission to write to the bucket.
7097	FlowLogsS3Bucket *string `type:"string"`
7098
7099	// The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute
7100	// is required if FlowLogsEnabled is true.
7101	//
7102	// If you don’t specify a prefix, the flow logs are stored in the root of
7103	// the bucket. If you specify slash (/) for the S3 bucket prefix, the log file
7104	// bucket folder structure will include a double slash (//), like the following:
7105	//
7106	// DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id
7107	FlowLogsS3Prefix *string `type:"string"`
7108}
7109
7110// String returns the string representation.
7111//
7112// API parameter values that are decorated as "sensitive" in the API will not
7113// be included in the string output. The member name will be present, but the
7114// value will be replaced with "sensitive".
7115func (s CustomRoutingAcceleratorAttributes) String() string {
7116	return awsutil.Prettify(s)
7117}
7118
7119// GoString returns the string representation.
7120//
7121// API parameter values that are decorated as "sensitive" in the API will not
7122// be included in the string output. The member name will be present, but the
7123// value will be replaced with "sensitive".
7124func (s CustomRoutingAcceleratorAttributes) GoString() string {
7125	return s.String()
7126}
7127
7128// SetFlowLogsEnabled sets the FlowLogsEnabled field's value.
7129func (s *CustomRoutingAcceleratorAttributes) SetFlowLogsEnabled(v bool) *CustomRoutingAcceleratorAttributes {
7130	s.FlowLogsEnabled = &v
7131	return s
7132}
7133
7134// SetFlowLogsS3Bucket sets the FlowLogsS3Bucket field's value.
7135func (s *CustomRoutingAcceleratorAttributes) SetFlowLogsS3Bucket(v string) *CustomRoutingAcceleratorAttributes {
7136	s.FlowLogsS3Bucket = &v
7137	return s
7138}
7139
7140// SetFlowLogsS3Prefix sets the FlowLogsS3Prefix field's value.
7141func (s *CustomRoutingAcceleratorAttributes) SetFlowLogsS3Prefix(v string) *CustomRoutingAcceleratorAttributes {
7142	s.FlowLogsS3Prefix = &v
7143	return s
7144}
7145
7146// For a custom routing accelerator, sets the port range and protocol for all
7147// endpoints (virtual private cloud subnets) in an endpoint group to accept
7148// client traffic on.
7149type CustomRoutingDestinationConfiguration struct {
7150	_ struct{} `type:"structure"`
7151
7152	// The first port, inclusive, in the range of ports for the endpoint group that
7153	// is associated with a custom routing accelerator.
7154	//
7155	// FromPort is a required field
7156	FromPort *int64 `min:"1" type:"integer" required:"true"`
7157
7158	// The protocol for the endpoint group that is associated with a custom routing
7159	// accelerator. The protocol can be either TCP or UDP.
7160	//
7161	// Protocols is a required field
7162	Protocols []*string `min:"1" type:"list" required:"true"`
7163
7164	// The last port, inclusive, in the range of ports for the endpoint group that
7165	// is associated with a custom routing accelerator.
7166	//
7167	// ToPort is a required field
7168	ToPort *int64 `min:"1" type:"integer" required:"true"`
7169}
7170
7171// String returns the string representation.
7172//
7173// API parameter values that are decorated as "sensitive" in the API will not
7174// be included in the string output. The member name will be present, but the
7175// value will be replaced with "sensitive".
7176func (s CustomRoutingDestinationConfiguration) String() string {
7177	return awsutil.Prettify(s)
7178}
7179
7180// GoString returns the string representation.
7181//
7182// API parameter values that are decorated as "sensitive" in the API will not
7183// be included in the string output. The member name will be present, but the
7184// value will be replaced with "sensitive".
7185func (s CustomRoutingDestinationConfiguration) GoString() string {
7186	return s.String()
7187}
7188
7189// Validate inspects the fields of the type to determine if they are valid.
7190func (s *CustomRoutingDestinationConfiguration) Validate() error {
7191	invalidParams := request.ErrInvalidParams{Context: "CustomRoutingDestinationConfiguration"}
7192	if s.FromPort == nil {
7193		invalidParams.Add(request.NewErrParamRequired("FromPort"))
7194	}
7195	if s.FromPort != nil && *s.FromPort < 1 {
7196		invalidParams.Add(request.NewErrParamMinValue("FromPort", 1))
7197	}
7198	if s.Protocols == nil {
7199		invalidParams.Add(request.NewErrParamRequired("Protocols"))
7200	}
7201	if s.Protocols != nil && len(s.Protocols) < 1 {
7202		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
7203	}
7204	if s.ToPort == nil {
7205		invalidParams.Add(request.NewErrParamRequired("ToPort"))
7206	}
7207	if s.ToPort != nil && *s.ToPort < 1 {
7208		invalidParams.Add(request.NewErrParamMinValue("ToPort", 1))
7209	}
7210
7211	if invalidParams.Len() > 0 {
7212		return invalidParams
7213	}
7214	return nil
7215}
7216
7217// SetFromPort sets the FromPort field's value.
7218func (s *CustomRoutingDestinationConfiguration) SetFromPort(v int64) *CustomRoutingDestinationConfiguration {
7219	s.FromPort = &v
7220	return s
7221}
7222
7223// SetProtocols sets the Protocols field's value.
7224func (s *CustomRoutingDestinationConfiguration) SetProtocols(v []*string) *CustomRoutingDestinationConfiguration {
7225	s.Protocols = v
7226	return s
7227}
7228
7229// SetToPort sets the ToPort field's value.
7230func (s *CustomRoutingDestinationConfiguration) SetToPort(v int64) *CustomRoutingDestinationConfiguration {
7231	s.ToPort = &v
7232	return s
7233}
7234
7235// For a custom routing accelerator, describes the port range and protocol for
7236// all endpoints (virtual private cloud subnets) in an endpoint group to accept
7237// client traffic on.
7238type CustomRoutingDestinationDescription struct {
7239	_ struct{} `type:"structure"`
7240
7241	// The first port, inclusive, in the range of ports for the endpoint group that
7242	// is associated with a custom routing accelerator.
7243	FromPort *int64 `min:"1" type:"integer"`
7244
7245	// The protocol for the endpoint group that is associated with a custom routing
7246	// accelerator. The protocol can be either TCP or UDP.
7247	Protocols []*string `type:"list"`
7248
7249	// The last port, inclusive, in the range of ports for the endpoint group that
7250	// is associated with a custom routing accelerator.
7251	ToPort *int64 `min:"1" type:"integer"`
7252}
7253
7254// String returns the string representation.
7255//
7256// API parameter values that are decorated as "sensitive" in the API will not
7257// be included in the string output. The member name will be present, but the
7258// value will be replaced with "sensitive".
7259func (s CustomRoutingDestinationDescription) String() string {
7260	return awsutil.Prettify(s)
7261}
7262
7263// GoString returns the string representation.
7264//
7265// API parameter values that are decorated as "sensitive" in the API will not
7266// be included in the string output. The member name will be present, but the
7267// value will be replaced with "sensitive".
7268func (s CustomRoutingDestinationDescription) GoString() string {
7269	return s.String()
7270}
7271
7272// SetFromPort sets the FromPort field's value.
7273func (s *CustomRoutingDestinationDescription) SetFromPort(v int64) *CustomRoutingDestinationDescription {
7274	s.FromPort = &v
7275	return s
7276}
7277
7278// SetProtocols sets the Protocols field's value.
7279func (s *CustomRoutingDestinationDescription) SetProtocols(v []*string) *CustomRoutingDestinationDescription {
7280	s.Protocols = v
7281	return s
7282}
7283
7284// SetToPort sets the ToPort field's value.
7285func (s *CustomRoutingDestinationDescription) SetToPort(v int64) *CustomRoutingDestinationDescription {
7286	s.ToPort = &v
7287	return s
7288}
7289
7290// The list of endpoint objects. For custom routing, this is a list of virtual
7291// private cloud (VPC) subnet IDs.
7292type CustomRoutingEndpointConfiguration struct {
7293	_ struct{} `type:"structure"`
7294
7295	// An ID for the endpoint. For custom routing accelerators, this is the virtual
7296	// private cloud (VPC) subnet ID.
7297	EndpointId *string `type:"string"`
7298}
7299
7300// String returns the string representation.
7301//
7302// API parameter values that are decorated as "sensitive" in the API will not
7303// be included in the string output. The member name will be present, but the
7304// value will be replaced with "sensitive".
7305func (s CustomRoutingEndpointConfiguration) String() string {
7306	return awsutil.Prettify(s)
7307}
7308
7309// GoString returns the string representation.
7310//
7311// API parameter values that are decorated as "sensitive" in the API will not
7312// be included in the string output. The member name will be present, but the
7313// value will be replaced with "sensitive".
7314func (s CustomRoutingEndpointConfiguration) GoString() string {
7315	return s.String()
7316}
7317
7318// SetEndpointId sets the EndpointId field's value.
7319func (s *CustomRoutingEndpointConfiguration) SetEndpointId(v string) *CustomRoutingEndpointConfiguration {
7320	s.EndpointId = &v
7321	return s
7322}
7323
7324// A complex type for an endpoint for a custom routing accelerator. Each endpoint
7325// group can include one or more endpoints, which are virtual private cloud
7326// (VPC) subnets.
7327type CustomRoutingEndpointDescription struct {
7328	_ struct{} `type:"structure"`
7329
7330	// An ID for the endpoint. For custom routing accelerators, this is the virtual
7331	// private cloud (VPC) subnet ID.
7332	EndpointId *string `type:"string"`
7333}
7334
7335// String returns the string representation.
7336//
7337// API parameter values that are decorated as "sensitive" in the API will not
7338// be included in the string output. The member name will be present, but the
7339// value will be replaced with "sensitive".
7340func (s CustomRoutingEndpointDescription) String() string {
7341	return awsutil.Prettify(s)
7342}
7343
7344// GoString returns the string representation.
7345//
7346// API parameter values that are decorated as "sensitive" in the API will not
7347// be included in the string output. The member name will be present, but the
7348// value will be replaced with "sensitive".
7349func (s CustomRoutingEndpointDescription) GoString() string {
7350	return s.String()
7351}
7352
7353// SetEndpointId sets the EndpointId field's value.
7354func (s *CustomRoutingEndpointDescription) SetEndpointId(v string) *CustomRoutingEndpointDescription {
7355	s.EndpointId = &v
7356	return s
7357}
7358
7359// A complex type for the endpoint group for a custom routing accelerator. An
7360// AWS Region can have only one endpoint group for a specific listener.
7361type CustomRoutingEndpointGroup struct {
7362	_ struct{} `type:"structure"`
7363
7364	// For a custom routing accelerator, describes the port range and protocol for
7365	// all endpoints (virtual private cloud subnets) in an endpoint group to accept
7366	// client traffic on.
7367	DestinationDescriptions []*CustomRoutingDestinationDescription `type:"list"`
7368
7369	// For a custom routing accelerator, describes the endpoints (virtual private
7370	// cloud subnets) in an endpoint group to accept client traffic on.
7371	EndpointDescriptions []*CustomRoutingEndpointDescription `type:"list"`
7372
7373	// The Amazon Resource Name (ARN) of the endpoint group.
7374	EndpointGroupArn *string `type:"string"`
7375
7376	// The AWS Region where the endpoint group is located.
7377	EndpointGroupRegion *string `type:"string"`
7378}
7379
7380// String returns the string representation.
7381//
7382// API parameter values that are decorated as "sensitive" in the API will not
7383// be included in the string output. The member name will be present, but the
7384// value will be replaced with "sensitive".
7385func (s CustomRoutingEndpointGroup) String() string {
7386	return awsutil.Prettify(s)
7387}
7388
7389// GoString returns the string representation.
7390//
7391// API parameter values that are decorated as "sensitive" in the API will not
7392// be included in the string output. The member name will be present, but the
7393// value will be replaced with "sensitive".
7394func (s CustomRoutingEndpointGroup) GoString() string {
7395	return s.String()
7396}
7397
7398// SetDestinationDescriptions sets the DestinationDescriptions field's value.
7399func (s *CustomRoutingEndpointGroup) SetDestinationDescriptions(v []*CustomRoutingDestinationDescription) *CustomRoutingEndpointGroup {
7400	s.DestinationDescriptions = v
7401	return s
7402}
7403
7404// SetEndpointDescriptions sets the EndpointDescriptions field's value.
7405func (s *CustomRoutingEndpointGroup) SetEndpointDescriptions(v []*CustomRoutingEndpointDescription) *CustomRoutingEndpointGroup {
7406	s.EndpointDescriptions = v
7407	return s
7408}
7409
7410// SetEndpointGroupArn sets the EndpointGroupArn field's value.
7411func (s *CustomRoutingEndpointGroup) SetEndpointGroupArn(v string) *CustomRoutingEndpointGroup {
7412	s.EndpointGroupArn = &v
7413	return s
7414}
7415
7416// SetEndpointGroupRegion sets the EndpointGroupRegion field's value.
7417func (s *CustomRoutingEndpointGroup) SetEndpointGroupRegion(v string) *CustomRoutingEndpointGroup {
7418	s.EndpointGroupRegion = &v
7419	return s
7420}
7421
7422// A complex type for a listener for a custom routing accelerator.
7423type CustomRoutingListener struct {
7424	_ struct{} `type:"structure"`
7425
7426	// The Amazon Resource Name (ARN) of the listener.
7427	ListenerArn *string `type:"string"`
7428
7429	// The port range to support for connections from clients to your accelerator.
7430	//
7431	// Separately, you set port ranges for endpoints. For more information, see
7432	// About endpoints for custom routing accelerators (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html).
7433	PortRanges []*PortRange `min:"1" type:"list"`
7434}
7435
7436// String returns the string representation.
7437//
7438// API parameter values that are decorated as "sensitive" in the API will not
7439// be included in the string output. The member name will be present, but the
7440// value will be replaced with "sensitive".
7441func (s CustomRoutingListener) String() string {
7442	return awsutil.Prettify(s)
7443}
7444
7445// GoString returns the string representation.
7446//
7447// API parameter values that are decorated as "sensitive" in the API will not
7448// be included in the string output. The member name will be present, but the
7449// value will be replaced with "sensitive".
7450func (s CustomRoutingListener) GoString() string {
7451	return s.String()
7452}
7453
7454// SetListenerArn sets the ListenerArn field's value.
7455func (s *CustomRoutingListener) SetListenerArn(v string) *CustomRoutingListener {
7456	s.ListenerArn = &v
7457	return s
7458}
7459
7460// SetPortRanges sets the PortRanges field's value.
7461func (s *CustomRoutingListener) SetPortRanges(v []*PortRange) *CustomRoutingListener {
7462	s.PortRanges = v
7463	return s
7464}
7465
7466type DeleteAcceleratorInput struct {
7467	_ struct{} `type:"structure"`
7468
7469	// The Amazon Resource Name (ARN) of an accelerator.
7470	//
7471	// AcceleratorArn is a required field
7472	AcceleratorArn *string `type:"string" required:"true"`
7473}
7474
7475// String returns the string representation.
7476//
7477// API parameter values that are decorated as "sensitive" in the API will not
7478// be included in the string output. The member name will be present, but the
7479// value will be replaced with "sensitive".
7480func (s DeleteAcceleratorInput) String() string {
7481	return awsutil.Prettify(s)
7482}
7483
7484// GoString returns the string representation.
7485//
7486// API parameter values that are decorated as "sensitive" in the API will not
7487// be included in the string output. The member name will be present, but the
7488// value will be replaced with "sensitive".
7489func (s DeleteAcceleratorInput) GoString() string {
7490	return s.String()
7491}
7492
7493// Validate inspects the fields of the type to determine if they are valid.
7494func (s *DeleteAcceleratorInput) Validate() error {
7495	invalidParams := request.ErrInvalidParams{Context: "DeleteAcceleratorInput"}
7496	if s.AcceleratorArn == nil {
7497		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
7498	}
7499
7500	if invalidParams.Len() > 0 {
7501		return invalidParams
7502	}
7503	return nil
7504}
7505
7506// SetAcceleratorArn sets the AcceleratorArn field's value.
7507func (s *DeleteAcceleratorInput) SetAcceleratorArn(v string) *DeleteAcceleratorInput {
7508	s.AcceleratorArn = &v
7509	return s
7510}
7511
7512type DeleteAcceleratorOutput struct {
7513	_ struct{} `type:"structure"`
7514}
7515
7516// String returns the string representation.
7517//
7518// API parameter values that are decorated as "sensitive" in the API will not
7519// be included in the string output. The member name will be present, but the
7520// value will be replaced with "sensitive".
7521func (s DeleteAcceleratorOutput) String() string {
7522	return awsutil.Prettify(s)
7523}
7524
7525// GoString returns the string representation.
7526//
7527// API parameter values that are decorated as "sensitive" in the API will not
7528// be included in the string output. The member name will be present, but the
7529// value will be replaced with "sensitive".
7530func (s DeleteAcceleratorOutput) GoString() string {
7531	return s.String()
7532}
7533
7534type DeleteCustomRoutingAcceleratorInput struct {
7535	_ struct{} `type:"structure"`
7536
7537	// The Amazon Resource Name (ARN) of the custom routing accelerator to delete.
7538	//
7539	// AcceleratorArn is a required field
7540	AcceleratorArn *string `type:"string" required:"true"`
7541}
7542
7543// String returns the string representation.
7544//
7545// API parameter values that are decorated as "sensitive" in the API will not
7546// be included in the string output. The member name will be present, but the
7547// value will be replaced with "sensitive".
7548func (s DeleteCustomRoutingAcceleratorInput) String() string {
7549	return awsutil.Prettify(s)
7550}
7551
7552// GoString returns the string representation.
7553//
7554// API parameter values that are decorated as "sensitive" in the API will not
7555// be included in the string output. The member name will be present, but the
7556// value will be replaced with "sensitive".
7557func (s DeleteCustomRoutingAcceleratorInput) GoString() string {
7558	return s.String()
7559}
7560
7561// Validate inspects the fields of the type to determine if they are valid.
7562func (s *DeleteCustomRoutingAcceleratorInput) Validate() error {
7563	invalidParams := request.ErrInvalidParams{Context: "DeleteCustomRoutingAcceleratorInput"}
7564	if s.AcceleratorArn == nil {
7565		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
7566	}
7567
7568	if invalidParams.Len() > 0 {
7569		return invalidParams
7570	}
7571	return nil
7572}
7573
7574// SetAcceleratorArn sets the AcceleratorArn field's value.
7575func (s *DeleteCustomRoutingAcceleratorInput) SetAcceleratorArn(v string) *DeleteCustomRoutingAcceleratorInput {
7576	s.AcceleratorArn = &v
7577	return s
7578}
7579
7580type DeleteCustomRoutingAcceleratorOutput struct {
7581	_ struct{} `type:"structure"`
7582}
7583
7584// String returns the string representation.
7585//
7586// API parameter values that are decorated as "sensitive" in the API will not
7587// be included in the string output. The member name will be present, but the
7588// value will be replaced with "sensitive".
7589func (s DeleteCustomRoutingAcceleratorOutput) String() string {
7590	return awsutil.Prettify(s)
7591}
7592
7593// GoString returns the string representation.
7594//
7595// API parameter values that are decorated as "sensitive" in the API will not
7596// be included in the string output. The member name will be present, but the
7597// value will be replaced with "sensitive".
7598func (s DeleteCustomRoutingAcceleratorOutput) GoString() string {
7599	return s.String()
7600}
7601
7602type DeleteCustomRoutingEndpointGroupInput struct {
7603	_ struct{} `type:"structure"`
7604
7605	// The Amazon Resource Name (ARN) of the endpoint group to delete.
7606	//
7607	// EndpointGroupArn is a required field
7608	EndpointGroupArn *string `type:"string" required:"true"`
7609}
7610
7611// String returns the string representation.
7612//
7613// API parameter values that are decorated as "sensitive" in the API will not
7614// be included in the string output. The member name will be present, but the
7615// value will be replaced with "sensitive".
7616func (s DeleteCustomRoutingEndpointGroupInput) String() string {
7617	return awsutil.Prettify(s)
7618}
7619
7620// GoString returns the string representation.
7621//
7622// API parameter values that are decorated as "sensitive" in the API will not
7623// be included in the string output. The member name will be present, but the
7624// value will be replaced with "sensitive".
7625func (s DeleteCustomRoutingEndpointGroupInput) GoString() string {
7626	return s.String()
7627}
7628
7629// Validate inspects the fields of the type to determine if they are valid.
7630func (s *DeleteCustomRoutingEndpointGroupInput) Validate() error {
7631	invalidParams := request.ErrInvalidParams{Context: "DeleteCustomRoutingEndpointGroupInput"}
7632	if s.EndpointGroupArn == nil {
7633		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
7634	}
7635
7636	if invalidParams.Len() > 0 {
7637		return invalidParams
7638	}
7639	return nil
7640}
7641
7642// SetEndpointGroupArn sets the EndpointGroupArn field's value.
7643func (s *DeleteCustomRoutingEndpointGroupInput) SetEndpointGroupArn(v string) *DeleteCustomRoutingEndpointGroupInput {
7644	s.EndpointGroupArn = &v
7645	return s
7646}
7647
7648type DeleteCustomRoutingEndpointGroupOutput struct {
7649	_ struct{} `type:"structure"`
7650}
7651
7652// String returns the string representation.
7653//
7654// API parameter values that are decorated as "sensitive" in the API will not
7655// be included in the string output. The member name will be present, but the
7656// value will be replaced with "sensitive".
7657func (s DeleteCustomRoutingEndpointGroupOutput) String() string {
7658	return awsutil.Prettify(s)
7659}
7660
7661// GoString returns the string representation.
7662//
7663// API parameter values that are decorated as "sensitive" in the API will not
7664// be included in the string output. The member name will be present, but the
7665// value will be replaced with "sensitive".
7666func (s DeleteCustomRoutingEndpointGroupOutput) GoString() string {
7667	return s.String()
7668}
7669
7670type DeleteCustomRoutingListenerInput struct {
7671	_ struct{} `type:"structure"`
7672
7673	// The Amazon Resource Name (ARN) of the listener to delete.
7674	//
7675	// ListenerArn is a required field
7676	ListenerArn *string `type:"string" required:"true"`
7677}
7678
7679// String returns the string representation.
7680//
7681// API parameter values that are decorated as "sensitive" in the API will not
7682// be included in the string output. The member name will be present, but the
7683// value will be replaced with "sensitive".
7684func (s DeleteCustomRoutingListenerInput) String() string {
7685	return awsutil.Prettify(s)
7686}
7687
7688// GoString returns the string representation.
7689//
7690// API parameter values that are decorated as "sensitive" in the API will not
7691// be included in the string output. The member name will be present, but the
7692// value will be replaced with "sensitive".
7693func (s DeleteCustomRoutingListenerInput) GoString() string {
7694	return s.String()
7695}
7696
7697// Validate inspects the fields of the type to determine if they are valid.
7698func (s *DeleteCustomRoutingListenerInput) Validate() error {
7699	invalidParams := request.ErrInvalidParams{Context: "DeleteCustomRoutingListenerInput"}
7700	if s.ListenerArn == nil {
7701		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
7702	}
7703
7704	if invalidParams.Len() > 0 {
7705		return invalidParams
7706	}
7707	return nil
7708}
7709
7710// SetListenerArn sets the ListenerArn field's value.
7711func (s *DeleteCustomRoutingListenerInput) SetListenerArn(v string) *DeleteCustomRoutingListenerInput {
7712	s.ListenerArn = &v
7713	return s
7714}
7715
7716type DeleteCustomRoutingListenerOutput struct {
7717	_ struct{} `type:"structure"`
7718}
7719
7720// String returns the string representation.
7721//
7722// API parameter values that are decorated as "sensitive" in the API will not
7723// be included in the string output. The member name will be present, but the
7724// value will be replaced with "sensitive".
7725func (s DeleteCustomRoutingListenerOutput) String() string {
7726	return awsutil.Prettify(s)
7727}
7728
7729// GoString returns the string representation.
7730//
7731// API parameter values that are decorated as "sensitive" in the API will not
7732// be included in the string output. The member name will be present, but the
7733// value will be replaced with "sensitive".
7734func (s DeleteCustomRoutingListenerOutput) GoString() string {
7735	return s.String()
7736}
7737
7738type DeleteEndpointGroupInput struct {
7739	_ struct{} `type:"structure"`
7740
7741	// The Amazon Resource Name (ARN) of the endpoint group to delete.
7742	//
7743	// EndpointGroupArn is a required field
7744	EndpointGroupArn *string `type:"string" required:"true"`
7745}
7746
7747// String returns the string representation.
7748//
7749// API parameter values that are decorated as "sensitive" in the API will not
7750// be included in the string output. The member name will be present, but the
7751// value will be replaced with "sensitive".
7752func (s DeleteEndpointGroupInput) String() string {
7753	return awsutil.Prettify(s)
7754}
7755
7756// GoString returns the string representation.
7757//
7758// API parameter values that are decorated as "sensitive" in the API will not
7759// be included in the string output. The member name will be present, but the
7760// value will be replaced with "sensitive".
7761func (s DeleteEndpointGroupInput) GoString() string {
7762	return s.String()
7763}
7764
7765// Validate inspects the fields of the type to determine if they are valid.
7766func (s *DeleteEndpointGroupInput) Validate() error {
7767	invalidParams := request.ErrInvalidParams{Context: "DeleteEndpointGroupInput"}
7768	if s.EndpointGroupArn == nil {
7769		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
7770	}
7771
7772	if invalidParams.Len() > 0 {
7773		return invalidParams
7774	}
7775	return nil
7776}
7777
7778// SetEndpointGroupArn sets the EndpointGroupArn field's value.
7779func (s *DeleteEndpointGroupInput) SetEndpointGroupArn(v string) *DeleteEndpointGroupInput {
7780	s.EndpointGroupArn = &v
7781	return s
7782}
7783
7784type DeleteEndpointGroupOutput struct {
7785	_ struct{} `type:"structure"`
7786}
7787
7788// String returns the string representation.
7789//
7790// API parameter values that are decorated as "sensitive" in the API will not
7791// be included in the string output. The member name will be present, but the
7792// value will be replaced with "sensitive".
7793func (s DeleteEndpointGroupOutput) String() string {
7794	return awsutil.Prettify(s)
7795}
7796
7797// GoString returns the string representation.
7798//
7799// API parameter values that are decorated as "sensitive" in the API will not
7800// be included in the string output. The member name will be present, but the
7801// value will be replaced with "sensitive".
7802func (s DeleteEndpointGroupOutput) GoString() string {
7803	return s.String()
7804}
7805
7806type DeleteListenerInput struct {
7807	_ struct{} `type:"structure"`
7808
7809	// The Amazon Resource Name (ARN) of the listener.
7810	//
7811	// ListenerArn is a required field
7812	ListenerArn *string `type:"string" required:"true"`
7813}
7814
7815// String returns the string representation.
7816//
7817// API parameter values that are decorated as "sensitive" in the API will not
7818// be included in the string output. The member name will be present, but the
7819// value will be replaced with "sensitive".
7820func (s DeleteListenerInput) String() string {
7821	return awsutil.Prettify(s)
7822}
7823
7824// GoString returns the string representation.
7825//
7826// API parameter values that are decorated as "sensitive" in the API will not
7827// be included in the string output. The member name will be present, but the
7828// value will be replaced with "sensitive".
7829func (s DeleteListenerInput) GoString() string {
7830	return s.String()
7831}
7832
7833// Validate inspects the fields of the type to determine if they are valid.
7834func (s *DeleteListenerInput) Validate() error {
7835	invalidParams := request.ErrInvalidParams{Context: "DeleteListenerInput"}
7836	if s.ListenerArn == nil {
7837		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
7838	}
7839
7840	if invalidParams.Len() > 0 {
7841		return invalidParams
7842	}
7843	return nil
7844}
7845
7846// SetListenerArn sets the ListenerArn field's value.
7847func (s *DeleteListenerInput) SetListenerArn(v string) *DeleteListenerInput {
7848	s.ListenerArn = &v
7849	return s
7850}
7851
7852type DeleteListenerOutput struct {
7853	_ struct{} `type:"structure"`
7854}
7855
7856// String returns the string representation.
7857//
7858// API parameter values that are decorated as "sensitive" in the API will not
7859// be included in the string output. The member name will be present, but the
7860// value will be replaced with "sensitive".
7861func (s DeleteListenerOutput) String() string {
7862	return awsutil.Prettify(s)
7863}
7864
7865// GoString returns the string representation.
7866//
7867// API parameter values that are decorated as "sensitive" in the API will not
7868// be included in the string output. The member name will be present, but the
7869// value will be replaced with "sensitive".
7870func (s DeleteListenerOutput) GoString() string {
7871	return s.String()
7872}
7873
7874type DenyCustomRoutingTrafficInput struct {
7875	_ struct{} `type:"structure"`
7876
7877	// Indicates whether all destination IP addresses and ports for a specified
7878	// VPC subnet endpoint cannot receive traffic from a custom routing accelerator.
7879	// The value is TRUE or FALSE.
7880	//
7881	// When set to TRUE, no destinations in the custom routing VPC subnet can receive
7882	// traffic. Note that you cannot specify destination IP addresses and ports
7883	// when the value is set to TRUE.
7884	//
7885	// When set to FALSE (or not specified), you must specify a list of destination
7886	// IP addresses that cannot receive traffic. A list of ports is optional. If
7887	// you don't specify a list of ports, the ports that can accept traffic is the
7888	// same as the ports configured for the endpoint group.
7889	//
7890	// The default value is FALSE.
7891	DenyAllTrafficToEndpoint *bool `type:"boolean"`
7892
7893	// A list of specific Amazon EC2 instance IP addresses (destination addresses)
7894	// in a subnet that you want to prevent from receiving traffic. The IP addresses
7895	// must be a subset of the IP addresses allowed for the VPC subnet associated
7896	// with the endpoint group.
7897	DestinationAddresses []*string `type:"list"`
7898
7899	// A list of specific Amazon EC2 instance ports (destination ports) in a subnet
7900	// endpoint that you want to prevent from receiving traffic.
7901	DestinationPorts []*int64 `type:"list"`
7902
7903	// The Amazon Resource Name (ARN) of the endpoint group.
7904	//
7905	// EndpointGroupArn is a required field
7906	EndpointGroupArn *string `type:"string" required:"true"`
7907
7908	// An ID for the endpoint. For custom routing accelerators, this is the virtual
7909	// private cloud (VPC) subnet ID.
7910	//
7911	// EndpointId is a required field
7912	EndpointId *string `type:"string" required:"true"`
7913}
7914
7915// String returns the string representation.
7916//
7917// API parameter values that are decorated as "sensitive" in the API will not
7918// be included in the string output. The member name will be present, but the
7919// value will be replaced with "sensitive".
7920func (s DenyCustomRoutingTrafficInput) String() string {
7921	return awsutil.Prettify(s)
7922}
7923
7924// GoString returns the string representation.
7925//
7926// API parameter values that are decorated as "sensitive" in the API will not
7927// be included in the string output. The member name will be present, but the
7928// value will be replaced with "sensitive".
7929func (s DenyCustomRoutingTrafficInput) GoString() string {
7930	return s.String()
7931}
7932
7933// Validate inspects the fields of the type to determine if they are valid.
7934func (s *DenyCustomRoutingTrafficInput) Validate() error {
7935	invalidParams := request.ErrInvalidParams{Context: "DenyCustomRoutingTrafficInput"}
7936	if s.EndpointGroupArn == nil {
7937		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
7938	}
7939	if s.EndpointId == nil {
7940		invalidParams.Add(request.NewErrParamRequired("EndpointId"))
7941	}
7942
7943	if invalidParams.Len() > 0 {
7944		return invalidParams
7945	}
7946	return nil
7947}
7948
7949// SetDenyAllTrafficToEndpoint sets the DenyAllTrafficToEndpoint field's value.
7950func (s *DenyCustomRoutingTrafficInput) SetDenyAllTrafficToEndpoint(v bool) *DenyCustomRoutingTrafficInput {
7951	s.DenyAllTrafficToEndpoint = &v
7952	return s
7953}
7954
7955// SetDestinationAddresses sets the DestinationAddresses field's value.
7956func (s *DenyCustomRoutingTrafficInput) SetDestinationAddresses(v []*string) *DenyCustomRoutingTrafficInput {
7957	s.DestinationAddresses = v
7958	return s
7959}
7960
7961// SetDestinationPorts sets the DestinationPorts field's value.
7962func (s *DenyCustomRoutingTrafficInput) SetDestinationPorts(v []*int64) *DenyCustomRoutingTrafficInput {
7963	s.DestinationPorts = v
7964	return s
7965}
7966
7967// SetEndpointGroupArn sets the EndpointGroupArn field's value.
7968func (s *DenyCustomRoutingTrafficInput) SetEndpointGroupArn(v string) *DenyCustomRoutingTrafficInput {
7969	s.EndpointGroupArn = &v
7970	return s
7971}
7972
7973// SetEndpointId sets the EndpointId field's value.
7974func (s *DenyCustomRoutingTrafficInput) SetEndpointId(v string) *DenyCustomRoutingTrafficInput {
7975	s.EndpointId = &v
7976	return s
7977}
7978
7979type DenyCustomRoutingTrafficOutput struct {
7980	_ struct{} `type:"structure"`
7981}
7982
7983// String returns the string representation.
7984//
7985// API parameter values that are decorated as "sensitive" in the API will not
7986// be included in the string output. The member name will be present, but the
7987// value will be replaced with "sensitive".
7988func (s DenyCustomRoutingTrafficOutput) String() string {
7989	return awsutil.Prettify(s)
7990}
7991
7992// GoString returns the string representation.
7993//
7994// API parameter values that are decorated as "sensitive" in the API will not
7995// be included in the string output. The member name will be present, but the
7996// value will be replaced with "sensitive".
7997func (s DenyCustomRoutingTrafficOutput) GoString() string {
7998	return s.String()
7999}
8000
8001type DeprovisionByoipCidrInput struct {
8002	_ struct{} `type:"structure"`
8003
8004	// The address range, in CIDR notation. The prefix must be the same prefix that
8005	// you specified when you provisioned the address range.
8006	//
8007	// Cidr is a required field
8008	Cidr *string `type:"string" required:"true"`
8009}
8010
8011// String returns the string representation.
8012//
8013// API parameter values that are decorated as "sensitive" in the API will not
8014// be included in the string output. The member name will be present, but the
8015// value will be replaced with "sensitive".
8016func (s DeprovisionByoipCidrInput) String() string {
8017	return awsutil.Prettify(s)
8018}
8019
8020// GoString returns the string representation.
8021//
8022// API parameter values that are decorated as "sensitive" in the API will not
8023// be included in the string output. The member name will be present, but the
8024// value will be replaced with "sensitive".
8025func (s DeprovisionByoipCidrInput) GoString() string {
8026	return s.String()
8027}
8028
8029// Validate inspects the fields of the type to determine if they are valid.
8030func (s *DeprovisionByoipCidrInput) Validate() error {
8031	invalidParams := request.ErrInvalidParams{Context: "DeprovisionByoipCidrInput"}
8032	if s.Cidr == nil {
8033		invalidParams.Add(request.NewErrParamRequired("Cidr"))
8034	}
8035
8036	if invalidParams.Len() > 0 {
8037		return invalidParams
8038	}
8039	return nil
8040}
8041
8042// SetCidr sets the Cidr field's value.
8043func (s *DeprovisionByoipCidrInput) SetCidr(v string) *DeprovisionByoipCidrInput {
8044	s.Cidr = &v
8045	return s
8046}
8047
8048type DeprovisionByoipCidrOutput struct {
8049	_ struct{} `type:"structure"`
8050
8051	// Information about the address range.
8052	ByoipCidr *ByoipCidr `type:"structure"`
8053}
8054
8055// String returns the string representation.
8056//
8057// API parameter values that are decorated as "sensitive" in the API will not
8058// be included in the string output. The member name will be present, but the
8059// value will be replaced with "sensitive".
8060func (s DeprovisionByoipCidrOutput) String() string {
8061	return awsutil.Prettify(s)
8062}
8063
8064// GoString returns the string representation.
8065//
8066// API parameter values that are decorated as "sensitive" in the API will not
8067// be included in the string output. The member name will be present, but the
8068// value will be replaced with "sensitive".
8069func (s DeprovisionByoipCidrOutput) GoString() string {
8070	return s.String()
8071}
8072
8073// SetByoipCidr sets the ByoipCidr field's value.
8074func (s *DeprovisionByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *DeprovisionByoipCidrOutput {
8075	s.ByoipCidr = v
8076	return s
8077}
8078
8079type DescribeAcceleratorAttributesInput struct {
8080	_ struct{} `type:"structure"`
8081
8082	// The Amazon Resource Name (ARN) of the accelerator with the attributes that
8083	// you want to describe.
8084	//
8085	// AcceleratorArn is a required field
8086	AcceleratorArn *string `type:"string" required:"true"`
8087}
8088
8089// String returns the string representation.
8090//
8091// API parameter values that are decorated as "sensitive" in the API will not
8092// be included in the string output. The member name will be present, but the
8093// value will be replaced with "sensitive".
8094func (s DescribeAcceleratorAttributesInput) String() string {
8095	return awsutil.Prettify(s)
8096}
8097
8098// GoString returns the string representation.
8099//
8100// API parameter values that are decorated as "sensitive" in the API will not
8101// be included in the string output. The member name will be present, but the
8102// value will be replaced with "sensitive".
8103func (s DescribeAcceleratorAttributesInput) GoString() string {
8104	return s.String()
8105}
8106
8107// Validate inspects the fields of the type to determine if they are valid.
8108func (s *DescribeAcceleratorAttributesInput) Validate() error {
8109	invalidParams := request.ErrInvalidParams{Context: "DescribeAcceleratorAttributesInput"}
8110	if s.AcceleratorArn == nil {
8111		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
8112	}
8113
8114	if invalidParams.Len() > 0 {
8115		return invalidParams
8116	}
8117	return nil
8118}
8119
8120// SetAcceleratorArn sets the AcceleratorArn field's value.
8121func (s *DescribeAcceleratorAttributesInput) SetAcceleratorArn(v string) *DescribeAcceleratorAttributesInput {
8122	s.AcceleratorArn = &v
8123	return s
8124}
8125
8126type DescribeAcceleratorAttributesOutput struct {
8127	_ struct{} `type:"structure"`
8128
8129	// The attributes of the accelerator.
8130	AcceleratorAttributes *AcceleratorAttributes `type:"structure"`
8131}
8132
8133// String returns the string representation.
8134//
8135// API parameter values that are decorated as "sensitive" in the API will not
8136// be included in the string output. The member name will be present, but the
8137// value will be replaced with "sensitive".
8138func (s DescribeAcceleratorAttributesOutput) String() string {
8139	return awsutil.Prettify(s)
8140}
8141
8142// GoString returns the string representation.
8143//
8144// API parameter values that are decorated as "sensitive" in the API will not
8145// be included in the string output. The member name will be present, but the
8146// value will be replaced with "sensitive".
8147func (s DescribeAcceleratorAttributesOutput) GoString() string {
8148	return s.String()
8149}
8150
8151// SetAcceleratorAttributes sets the AcceleratorAttributes field's value.
8152func (s *DescribeAcceleratorAttributesOutput) SetAcceleratorAttributes(v *AcceleratorAttributes) *DescribeAcceleratorAttributesOutput {
8153	s.AcceleratorAttributes = v
8154	return s
8155}
8156
8157type DescribeAcceleratorInput struct {
8158	_ struct{} `type:"structure"`
8159
8160	// The Amazon Resource Name (ARN) of the accelerator to describe.
8161	//
8162	// AcceleratorArn is a required field
8163	AcceleratorArn *string `type:"string" required:"true"`
8164}
8165
8166// String returns the string representation.
8167//
8168// API parameter values that are decorated as "sensitive" in the API will not
8169// be included in the string output. The member name will be present, but the
8170// value will be replaced with "sensitive".
8171func (s DescribeAcceleratorInput) String() string {
8172	return awsutil.Prettify(s)
8173}
8174
8175// GoString returns the string representation.
8176//
8177// API parameter values that are decorated as "sensitive" in the API will not
8178// be included in the string output. The member name will be present, but the
8179// value will be replaced with "sensitive".
8180func (s DescribeAcceleratorInput) GoString() string {
8181	return s.String()
8182}
8183
8184// Validate inspects the fields of the type to determine if they are valid.
8185func (s *DescribeAcceleratorInput) Validate() error {
8186	invalidParams := request.ErrInvalidParams{Context: "DescribeAcceleratorInput"}
8187	if s.AcceleratorArn == nil {
8188		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
8189	}
8190
8191	if invalidParams.Len() > 0 {
8192		return invalidParams
8193	}
8194	return nil
8195}
8196
8197// SetAcceleratorArn sets the AcceleratorArn field's value.
8198func (s *DescribeAcceleratorInput) SetAcceleratorArn(v string) *DescribeAcceleratorInput {
8199	s.AcceleratorArn = &v
8200	return s
8201}
8202
8203type DescribeAcceleratorOutput struct {
8204	_ struct{} `type:"structure"`
8205
8206	// The description of the accelerator.
8207	Accelerator *Accelerator `type:"structure"`
8208}
8209
8210// String returns the string representation.
8211//
8212// API parameter values that are decorated as "sensitive" in the API will not
8213// be included in the string output. The member name will be present, but the
8214// value will be replaced with "sensitive".
8215func (s DescribeAcceleratorOutput) String() string {
8216	return awsutil.Prettify(s)
8217}
8218
8219// GoString returns the string representation.
8220//
8221// API parameter values that are decorated as "sensitive" in the API will not
8222// be included in the string output. The member name will be present, but the
8223// value will be replaced with "sensitive".
8224func (s DescribeAcceleratorOutput) GoString() string {
8225	return s.String()
8226}
8227
8228// SetAccelerator sets the Accelerator field's value.
8229func (s *DescribeAcceleratorOutput) SetAccelerator(v *Accelerator) *DescribeAcceleratorOutput {
8230	s.Accelerator = v
8231	return s
8232}
8233
8234type DescribeCustomRoutingAcceleratorAttributesInput struct {
8235	_ struct{} `type:"structure"`
8236
8237	// The Amazon Resource Name (ARN) of the custom routing accelerator to describe
8238	// the attributes for.
8239	//
8240	// AcceleratorArn is a required field
8241	AcceleratorArn *string `type:"string" required:"true"`
8242}
8243
8244// String returns the string representation.
8245//
8246// API parameter values that are decorated as "sensitive" in the API will not
8247// be included in the string output. The member name will be present, but the
8248// value will be replaced with "sensitive".
8249func (s DescribeCustomRoutingAcceleratorAttributesInput) String() string {
8250	return awsutil.Prettify(s)
8251}
8252
8253// GoString returns the string representation.
8254//
8255// API parameter values that are decorated as "sensitive" in the API will not
8256// be included in the string output. The member name will be present, but the
8257// value will be replaced with "sensitive".
8258func (s DescribeCustomRoutingAcceleratorAttributesInput) GoString() string {
8259	return s.String()
8260}
8261
8262// Validate inspects the fields of the type to determine if they are valid.
8263func (s *DescribeCustomRoutingAcceleratorAttributesInput) Validate() error {
8264	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomRoutingAcceleratorAttributesInput"}
8265	if s.AcceleratorArn == nil {
8266		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
8267	}
8268
8269	if invalidParams.Len() > 0 {
8270		return invalidParams
8271	}
8272	return nil
8273}
8274
8275// SetAcceleratorArn sets the AcceleratorArn field's value.
8276func (s *DescribeCustomRoutingAcceleratorAttributesInput) SetAcceleratorArn(v string) *DescribeCustomRoutingAcceleratorAttributesInput {
8277	s.AcceleratorArn = &v
8278	return s
8279}
8280
8281type DescribeCustomRoutingAcceleratorAttributesOutput struct {
8282	_ struct{} `type:"structure"`
8283
8284	// The attributes of the custom routing accelerator.
8285	AcceleratorAttributes *CustomRoutingAcceleratorAttributes `type:"structure"`
8286}
8287
8288// String returns the string representation.
8289//
8290// API parameter values that are decorated as "sensitive" in the API will not
8291// be included in the string output. The member name will be present, but the
8292// value will be replaced with "sensitive".
8293func (s DescribeCustomRoutingAcceleratorAttributesOutput) String() string {
8294	return awsutil.Prettify(s)
8295}
8296
8297// GoString returns the string representation.
8298//
8299// API parameter values that are decorated as "sensitive" in the API will not
8300// be included in the string output. The member name will be present, but the
8301// value will be replaced with "sensitive".
8302func (s DescribeCustomRoutingAcceleratorAttributesOutput) GoString() string {
8303	return s.String()
8304}
8305
8306// SetAcceleratorAttributes sets the AcceleratorAttributes field's value.
8307func (s *DescribeCustomRoutingAcceleratorAttributesOutput) SetAcceleratorAttributes(v *CustomRoutingAcceleratorAttributes) *DescribeCustomRoutingAcceleratorAttributesOutput {
8308	s.AcceleratorAttributes = v
8309	return s
8310}
8311
8312type DescribeCustomRoutingAcceleratorInput struct {
8313	_ struct{} `type:"structure"`
8314
8315	// The Amazon Resource Name (ARN) of the accelerator to describe.
8316	//
8317	// AcceleratorArn is a required field
8318	AcceleratorArn *string `type:"string" required:"true"`
8319}
8320
8321// String returns the string representation.
8322//
8323// API parameter values that are decorated as "sensitive" in the API will not
8324// be included in the string output. The member name will be present, but the
8325// value will be replaced with "sensitive".
8326func (s DescribeCustomRoutingAcceleratorInput) String() string {
8327	return awsutil.Prettify(s)
8328}
8329
8330// GoString returns the string representation.
8331//
8332// API parameter values that are decorated as "sensitive" in the API will not
8333// be included in the string output. The member name will be present, but the
8334// value will be replaced with "sensitive".
8335func (s DescribeCustomRoutingAcceleratorInput) GoString() string {
8336	return s.String()
8337}
8338
8339// Validate inspects the fields of the type to determine if they are valid.
8340func (s *DescribeCustomRoutingAcceleratorInput) Validate() error {
8341	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomRoutingAcceleratorInput"}
8342	if s.AcceleratorArn == nil {
8343		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
8344	}
8345
8346	if invalidParams.Len() > 0 {
8347		return invalidParams
8348	}
8349	return nil
8350}
8351
8352// SetAcceleratorArn sets the AcceleratorArn field's value.
8353func (s *DescribeCustomRoutingAcceleratorInput) SetAcceleratorArn(v string) *DescribeCustomRoutingAcceleratorInput {
8354	s.AcceleratorArn = &v
8355	return s
8356}
8357
8358type DescribeCustomRoutingAcceleratorOutput struct {
8359	_ struct{} `type:"structure"`
8360
8361	// The description of the custom routing accelerator.
8362	Accelerator *CustomRoutingAccelerator `type:"structure"`
8363}
8364
8365// String returns the string representation.
8366//
8367// API parameter values that are decorated as "sensitive" in the API will not
8368// be included in the string output. The member name will be present, but the
8369// value will be replaced with "sensitive".
8370func (s DescribeCustomRoutingAcceleratorOutput) String() string {
8371	return awsutil.Prettify(s)
8372}
8373
8374// GoString returns the string representation.
8375//
8376// API parameter values that are decorated as "sensitive" in the API will not
8377// be included in the string output. The member name will be present, but the
8378// value will be replaced with "sensitive".
8379func (s DescribeCustomRoutingAcceleratorOutput) GoString() string {
8380	return s.String()
8381}
8382
8383// SetAccelerator sets the Accelerator field's value.
8384func (s *DescribeCustomRoutingAcceleratorOutput) SetAccelerator(v *CustomRoutingAccelerator) *DescribeCustomRoutingAcceleratorOutput {
8385	s.Accelerator = v
8386	return s
8387}
8388
8389type DescribeCustomRoutingEndpointGroupInput struct {
8390	_ struct{} `type:"structure"`
8391
8392	// The Amazon Resource Name (ARN) of the endpoint group to describe.
8393	//
8394	// EndpointGroupArn is a required field
8395	EndpointGroupArn *string `type:"string" required:"true"`
8396}
8397
8398// String returns the string representation.
8399//
8400// API parameter values that are decorated as "sensitive" in the API will not
8401// be included in the string output. The member name will be present, but the
8402// value will be replaced with "sensitive".
8403func (s DescribeCustomRoutingEndpointGroupInput) String() string {
8404	return awsutil.Prettify(s)
8405}
8406
8407// GoString returns the string representation.
8408//
8409// API parameter values that are decorated as "sensitive" in the API will not
8410// be included in the string output. The member name will be present, but the
8411// value will be replaced with "sensitive".
8412func (s DescribeCustomRoutingEndpointGroupInput) GoString() string {
8413	return s.String()
8414}
8415
8416// Validate inspects the fields of the type to determine if they are valid.
8417func (s *DescribeCustomRoutingEndpointGroupInput) Validate() error {
8418	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomRoutingEndpointGroupInput"}
8419	if s.EndpointGroupArn == nil {
8420		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
8421	}
8422
8423	if invalidParams.Len() > 0 {
8424		return invalidParams
8425	}
8426	return nil
8427}
8428
8429// SetEndpointGroupArn sets the EndpointGroupArn field's value.
8430func (s *DescribeCustomRoutingEndpointGroupInput) SetEndpointGroupArn(v string) *DescribeCustomRoutingEndpointGroupInput {
8431	s.EndpointGroupArn = &v
8432	return s
8433}
8434
8435type DescribeCustomRoutingEndpointGroupOutput struct {
8436	_ struct{} `type:"structure"`
8437
8438	// The description of an endpoint group for a custom routing accelerator.
8439	EndpointGroup *CustomRoutingEndpointGroup `type:"structure"`
8440}
8441
8442// String returns the string representation.
8443//
8444// API parameter values that are decorated as "sensitive" in the API will not
8445// be included in the string output. The member name will be present, but the
8446// value will be replaced with "sensitive".
8447func (s DescribeCustomRoutingEndpointGroupOutput) String() string {
8448	return awsutil.Prettify(s)
8449}
8450
8451// GoString returns the string representation.
8452//
8453// API parameter values that are decorated as "sensitive" in the API will not
8454// be included in the string output. The member name will be present, but the
8455// value will be replaced with "sensitive".
8456func (s DescribeCustomRoutingEndpointGroupOutput) GoString() string {
8457	return s.String()
8458}
8459
8460// SetEndpointGroup sets the EndpointGroup field's value.
8461func (s *DescribeCustomRoutingEndpointGroupOutput) SetEndpointGroup(v *CustomRoutingEndpointGroup) *DescribeCustomRoutingEndpointGroupOutput {
8462	s.EndpointGroup = v
8463	return s
8464}
8465
8466type DescribeCustomRoutingListenerInput struct {
8467	_ struct{} `type:"structure"`
8468
8469	// The Amazon Resource Name (ARN) of the listener to describe.
8470	//
8471	// ListenerArn is a required field
8472	ListenerArn *string `type:"string" required:"true"`
8473}
8474
8475// String returns the string representation.
8476//
8477// API parameter values that are decorated as "sensitive" in the API will not
8478// be included in the string output. The member name will be present, but the
8479// value will be replaced with "sensitive".
8480func (s DescribeCustomRoutingListenerInput) String() string {
8481	return awsutil.Prettify(s)
8482}
8483
8484// GoString returns the string representation.
8485//
8486// API parameter values that are decorated as "sensitive" in the API will not
8487// be included in the string output. The member name will be present, but the
8488// value will be replaced with "sensitive".
8489func (s DescribeCustomRoutingListenerInput) GoString() string {
8490	return s.String()
8491}
8492
8493// Validate inspects the fields of the type to determine if they are valid.
8494func (s *DescribeCustomRoutingListenerInput) Validate() error {
8495	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomRoutingListenerInput"}
8496	if s.ListenerArn == nil {
8497		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
8498	}
8499
8500	if invalidParams.Len() > 0 {
8501		return invalidParams
8502	}
8503	return nil
8504}
8505
8506// SetListenerArn sets the ListenerArn field's value.
8507func (s *DescribeCustomRoutingListenerInput) SetListenerArn(v string) *DescribeCustomRoutingListenerInput {
8508	s.ListenerArn = &v
8509	return s
8510}
8511
8512type DescribeCustomRoutingListenerOutput struct {
8513	_ struct{} `type:"structure"`
8514
8515	// The description of a listener for a custom routing accelerator.
8516	Listener *CustomRoutingListener `type:"structure"`
8517}
8518
8519// String returns the string representation.
8520//
8521// API parameter values that are decorated as "sensitive" in the API will not
8522// be included in the string output. The member name will be present, but the
8523// value will be replaced with "sensitive".
8524func (s DescribeCustomRoutingListenerOutput) String() string {
8525	return awsutil.Prettify(s)
8526}
8527
8528// GoString returns the string representation.
8529//
8530// API parameter values that are decorated as "sensitive" in the API will not
8531// be included in the string output. The member name will be present, but the
8532// value will be replaced with "sensitive".
8533func (s DescribeCustomRoutingListenerOutput) GoString() string {
8534	return s.String()
8535}
8536
8537// SetListener sets the Listener field's value.
8538func (s *DescribeCustomRoutingListenerOutput) SetListener(v *CustomRoutingListener) *DescribeCustomRoutingListenerOutput {
8539	s.Listener = v
8540	return s
8541}
8542
8543type DescribeEndpointGroupInput struct {
8544	_ struct{} `type:"structure"`
8545
8546	// The Amazon Resource Name (ARN) of the endpoint group to describe.
8547	//
8548	// EndpointGroupArn is a required field
8549	EndpointGroupArn *string `type:"string" required:"true"`
8550}
8551
8552// String returns the string representation.
8553//
8554// API parameter values that are decorated as "sensitive" in the API will not
8555// be included in the string output. The member name will be present, but the
8556// value will be replaced with "sensitive".
8557func (s DescribeEndpointGroupInput) String() string {
8558	return awsutil.Prettify(s)
8559}
8560
8561// GoString returns the string representation.
8562//
8563// API parameter values that are decorated as "sensitive" in the API will not
8564// be included in the string output. The member name will be present, but the
8565// value will be replaced with "sensitive".
8566func (s DescribeEndpointGroupInput) GoString() string {
8567	return s.String()
8568}
8569
8570// Validate inspects the fields of the type to determine if they are valid.
8571func (s *DescribeEndpointGroupInput) Validate() error {
8572	invalidParams := request.ErrInvalidParams{Context: "DescribeEndpointGroupInput"}
8573	if s.EndpointGroupArn == nil {
8574		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
8575	}
8576
8577	if invalidParams.Len() > 0 {
8578		return invalidParams
8579	}
8580	return nil
8581}
8582
8583// SetEndpointGroupArn sets the EndpointGroupArn field's value.
8584func (s *DescribeEndpointGroupInput) SetEndpointGroupArn(v string) *DescribeEndpointGroupInput {
8585	s.EndpointGroupArn = &v
8586	return s
8587}
8588
8589type DescribeEndpointGroupOutput struct {
8590	_ struct{} `type:"structure"`
8591
8592	// The description of an endpoint group.
8593	EndpointGroup *EndpointGroup `type:"structure"`
8594}
8595
8596// String returns the string representation.
8597//
8598// API parameter values that are decorated as "sensitive" in the API will not
8599// be included in the string output. The member name will be present, but the
8600// value will be replaced with "sensitive".
8601func (s DescribeEndpointGroupOutput) String() string {
8602	return awsutil.Prettify(s)
8603}
8604
8605// GoString returns the string representation.
8606//
8607// API parameter values that are decorated as "sensitive" in the API will not
8608// be included in the string output. The member name will be present, but the
8609// value will be replaced with "sensitive".
8610func (s DescribeEndpointGroupOutput) GoString() string {
8611	return s.String()
8612}
8613
8614// SetEndpointGroup sets the EndpointGroup field's value.
8615func (s *DescribeEndpointGroupOutput) SetEndpointGroup(v *EndpointGroup) *DescribeEndpointGroupOutput {
8616	s.EndpointGroup = v
8617	return s
8618}
8619
8620type DescribeListenerInput struct {
8621	_ struct{} `type:"structure"`
8622
8623	// The Amazon Resource Name (ARN) of the listener to describe.
8624	//
8625	// ListenerArn is a required field
8626	ListenerArn *string `type:"string" required:"true"`
8627}
8628
8629// String returns the string representation.
8630//
8631// API parameter values that are decorated as "sensitive" in the API will not
8632// be included in the string output. The member name will be present, but the
8633// value will be replaced with "sensitive".
8634func (s DescribeListenerInput) String() string {
8635	return awsutil.Prettify(s)
8636}
8637
8638// GoString returns the string representation.
8639//
8640// API parameter values that are decorated as "sensitive" in the API will not
8641// be included in the string output. The member name will be present, but the
8642// value will be replaced with "sensitive".
8643func (s DescribeListenerInput) GoString() string {
8644	return s.String()
8645}
8646
8647// Validate inspects the fields of the type to determine if they are valid.
8648func (s *DescribeListenerInput) Validate() error {
8649	invalidParams := request.ErrInvalidParams{Context: "DescribeListenerInput"}
8650	if s.ListenerArn == nil {
8651		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
8652	}
8653
8654	if invalidParams.Len() > 0 {
8655		return invalidParams
8656	}
8657	return nil
8658}
8659
8660// SetListenerArn sets the ListenerArn field's value.
8661func (s *DescribeListenerInput) SetListenerArn(v string) *DescribeListenerInput {
8662	s.ListenerArn = &v
8663	return s
8664}
8665
8666type DescribeListenerOutput struct {
8667	_ struct{} `type:"structure"`
8668
8669	// The description of a listener.
8670	Listener *Listener `type:"structure"`
8671}
8672
8673// String returns the string representation.
8674//
8675// API parameter values that are decorated as "sensitive" in the API will not
8676// be included in the string output. The member name will be present, but the
8677// value will be replaced with "sensitive".
8678func (s DescribeListenerOutput) String() string {
8679	return awsutil.Prettify(s)
8680}
8681
8682// GoString returns the string representation.
8683//
8684// API parameter values that are decorated as "sensitive" in the API will not
8685// be included in the string output. The member name will be present, but the
8686// value will be replaced with "sensitive".
8687func (s DescribeListenerOutput) GoString() string {
8688	return s.String()
8689}
8690
8691// SetListener sets the Listener field's value.
8692func (s *DescribeListenerOutput) SetListener(v *Listener) *DescribeListenerOutput {
8693	s.Listener = v
8694	return s
8695}
8696
8697// The port mappings for a specified endpoint IP address (destination).
8698type DestinationPortMapping struct {
8699	_ struct{} `type:"structure"`
8700
8701	// The Amazon Resource Name (ARN) of the custom routing accelerator that you
8702	// have port mappings for.
8703	AcceleratorArn *string `type:"string"`
8704
8705	// The IP address/port combinations (sockets) that map to a given destination
8706	// socket address.
8707	AcceleratorSocketAddresses []*SocketAddress `type:"list"`
8708
8709	// The endpoint IP address/port combination for traffic received on the accelerator
8710	// socket address.
8711	DestinationSocketAddress *SocketAddress `type:"structure"`
8712
8713	// Indicates whether or not a port mapping destination can receive traffic.
8714	// The value is either ALLOW, if traffic is allowed to the destination, or DENY,
8715	// if traffic is not allowed to the destination.
8716	DestinationTrafficState *string `type:"string" enum:"CustomRoutingDestinationTrafficState"`
8717
8718	// The Amazon Resource Name (ARN) of the endpoint group.
8719	EndpointGroupArn *string `type:"string"`
8720
8721	// The AWS Region for the endpoint group.
8722	EndpointGroupRegion *string `type:"string"`
8723
8724	// The ID for the virtual private cloud (VPC) subnet.
8725	EndpointId *string `type:"string"`
8726
8727	// The IP address type, which must be IPv4.
8728	IpAddressType *string `type:"string" enum:"IpAddressType"`
8729}
8730
8731// String returns the string representation.
8732//
8733// API parameter values that are decorated as "sensitive" in the API will not
8734// be included in the string output. The member name will be present, but the
8735// value will be replaced with "sensitive".
8736func (s DestinationPortMapping) String() string {
8737	return awsutil.Prettify(s)
8738}
8739
8740// GoString returns the string representation.
8741//
8742// API parameter values that are decorated as "sensitive" in the API will not
8743// be included in the string output. The member name will be present, but the
8744// value will be replaced with "sensitive".
8745func (s DestinationPortMapping) GoString() string {
8746	return s.String()
8747}
8748
8749// SetAcceleratorArn sets the AcceleratorArn field's value.
8750func (s *DestinationPortMapping) SetAcceleratorArn(v string) *DestinationPortMapping {
8751	s.AcceleratorArn = &v
8752	return s
8753}
8754
8755// SetAcceleratorSocketAddresses sets the AcceleratorSocketAddresses field's value.
8756func (s *DestinationPortMapping) SetAcceleratorSocketAddresses(v []*SocketAddress) *DestinationPortMapping {
8757	s.AcceleratorSocketAddresses = v
8758	return s
8759}
8760
8761// SetDestinationSocketAddress sets the DestinationSocketAddress field's value.
8762func (s *DestinationPortMapping) SetDestinationSocketAddress(v *SocketAddress) *DestinationPortMapping {
8763	s.DestinationSocketAddress = v
8764	return s
8765}
8766
8767// SetDestinationTrafficState sets the DestinationTrafficState field's value.
8768func (s *DestinationPortMapping) SetDestinationTrafficState(v string) *DestinationPortMapping {
8769	s.DestinationTrafficState = &v
8770	return s
8771}
8772
8773// SetEndpointGroupArn sets the EndpointGroupArn field's value.
8774func (s *DestinationPortMapping) SetEndpointGroupArn(v string) *DestinationPortMapping {
8775	s.EndpointGroupArn = &v
8776	return s
8777}
8778
8779// SetEndpointGroupRegion sets the EndpointGroupRegion field's value.
8780func (s *DestinationPortMapping) SetEndpointGroupRegion(v string) *DestinationPortMapping {
8781	s.EndpointGroupRegion = &v
8782	return s
8783}
8784
8785// SetEndpointId sets the EndpointId field's value.
8786func (s *DestinationPortMapping) SetEndpointId(v string) *DestinationPortMapping {
8787	s.EndpointId = &v
8788	return s
8789}
8790
8791// SetIpAddressType sets the IpAddressType field's value.
8792func (s *DestinationPortMapping) SetIpAddressType(v string) *DestinationPortMapping {
8793	s.IpAddressType = &v
8794	return s
8795}
8796
8797// The endpoint that you specified doesn't exist.
8798type EndpointAlreadyExistsException struct {
8799	_            struct{}                  `type:"structure"`
8800	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8801
8802	Message_ *string `locationName:"Message" type:"string"`
8803}
8804
8805// String returns the string representation.
8806//
8807// API parameter values that are decorated as "sensitive" in the API will not
8808// be included in the string output. The member name will be present, but the
8809// value will be replaced with "sensitive".
8810func (s EndpointAlreadyExistsException) String() string {
8811	return awsutil.Prettify(s)
8812}
8813
8814// GoString returns the string representation.
8815//
8816// API parameter values that are decorated as "sensitive" in the API will not
8817// be included in the string output. The member name will be present, but the
8818// value will be replaced with "sensitive".
8819func (s EndpointAlreadyExistsException) GoString() string {
8820	return s.String()
8821}
8822
8823func newErrorEndpointAlreadyExistsException(v protocol.ResponseMetadata) error {
8824	return &EndpointAlreadyExistsException{
8825		RespMetadata: v,
8826	}
8827}
8828
8829// Code returns the exception type name.
8830func (s *EndpointAlreadyExistsException) Code() string {
8831	return "EndpointAlreadyExistsException"
8832}
8833
8834// Message returns the exception's message.
8835func (s *EndpointAlreadyExistsException) Message() string {
8836	if s.Message_ != nil {
8837		return *s.Message_
8838	}
8839	return ""
8840}
8841
8842// OrigErr always returns nil, satisfies awserr.Error interface.
8843func (s *EndpointAlreadyExistsException) OrigErr() error {
8844	return nil
8845}
8846
8847func (s *EndpointAlreadyExistsException) Error() string {
8848	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8849}
8850
8851// Status code returns the HTTP status code for the request's response error.
8852func (s *EndpointAlreadyExistsException) StatusCode() int {
8853	return s.RespMetadata.StatusCode
8854}
8855
8856// RequestID returns the service's response RequestID for request.
8857func (s *EndpointAlreadyExistsException) RequestID() string {
8858	return s.RespMetadata.RequestID
8859}
8860
8861// A complex type for endpoints. A resource must be valid and active when you
8862// add it as an endpoint.
8863type EndpointConfiguration struct {
8864	_ struct{} `type:"structure"`
8865
8866	// Indicates whether client IP address preservation is enabled for an Application
8867	// Load Balancer endpoint. The value is true or false. The default value is
8868	// true for new accelerators.
8869	//
8870	// If the value is set to true, the client's IP address is preserved in the
8871	// X-Forwarded-For request header as traffic travels to applications on the
8872	// Application Load Balancer endpoint fronted by the accelerator.
8873	//
8874	// For more information, see Preserve Client IP Addresses in AWS Global Accelerator
8875	// (https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html)
8876	// in the AWS Global Accelerator Developer Guide.
8877	ClientIPPreservationEnabled *bool `type:"boolean"`
8878
8879	// An ID for the endpoint. If the endpoint is a Network Load Balancer or Application
8880	// Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If
8881	// the endpoint is an Elastic IP address, this is the Elastic IP address allocation
8882	// ID. For Amazon EC2 instances, this is the EC2 instance ID. A resource must
8883	// be valid and active when you add it as an endpoint.
8884	//
8885	// An Application Load Balancer can be either internal or internet-facing.
8886	EndpointId *string `type:"string"`
8887
8888	// The weight associated with the endpoint. When you add weights to endpoints,
8889	// you configure AWS Global Accelerator to route traffic based on proportions
8890	// that you specify. For example, you might specify endpoint weights of 4, 5,
8891	// 5, and 6 (sum=20). The result is that 4/20 of your traffic, on average, is
8892	// routed to the first endpoint, 5/20 is routed both to the second and third
8893	// endpoints, and 6/20 is routed to the last endpoint. For more information,
8894	// see Endpoint Weights (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html)
8895	// in the AWS Global Accelerator Developer Guide.
8896	Weight *int64 `type:"integer"`
8897}
8898
8899// String returns the string representation.
8900//
8901// API parameter values that are decorated as "sensitive" in the API will not
8902// be included in the string output. The member name will be present, but the
8903// value will be replaced with "sensitive".
8904func (s EndpointConfiguration) String() string {
8905	return awsutil.Prettify(s)
8906}
8907
8908// GoString returns the string representation.
8909//
8910// API parameter values that are decorated as "sensitive" in the API will not
8911// be included in the string output. The member name will be present, but the
8912// value will be replaced with "sensitive".
8913func (s EndpointConfiguration) GoString() string {
8914	return s.String()
8915}
8916
8917// SetClientIPPreservationEnabled sets the ClientIPPreservationEnabled field's value.
8918func (s *EndpointConfiguration) SetClientIPPreservationEnabled(v bool) *EndpointConfiguration {
8919	s.ClientIPPreservationEnabled = &v
8920	return s
8921}
8922
8923// SetEndpointId sets the EndpointId field's value.
8924func (s *EndpointConfiguration) SetEndpointId(v string) *EndpointConfiguration {
8925	s.EndpointId = &v
8926	return s
8927}
8928
8929// SetWeight sets the Weight field's value.
8930func (s *EndpointConfiguration) SetWeight(v int64) *EndpointConfiguration {
8931	s.Weight = &v
8932	return s
8933}
8934
8935// A complex type for an endpoint. Each endpoint group can include one or more
8936// endpoints, such as load balancers.
8937type EndpointDescription struct {
8938	_ struct{} `type:"structure"`
8939
8940	// Indicates whether client IP address preservation is enabled for an Application
8941	// Load Balancer endpoint. The value is true or false. The default value is
8942	// true for new accelerators.
8943	//
8944	// If the value is set to true, the client's IP address is preserved in the
8945	// X-Forwarded-For request header as traffic travels to applications on the
8946	// Application Load Balancer endpoint fronted by the accelerator.
8947	//
8948	// For more information, see Viewing Client IP Addresses in AWS Global Accelerator
8949	// (https://docs.aws.amazon.com/global-accelerator/latest/dg/introduction-how-it-works-client-ip.html)
8950	// in the AWS Global Accelerator Developer Guide.
8951	ClientIPPreservationEnabled *bool `type:"boolean"`
8952
8953	// An ID for the endpoint. If the endpoint is a Network Load Balancer or Application
8954	// Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If
8955	// the endpoint is an Elastic IP address, this is the Elastic IP address allocation
8956	// ID. For Amazon EC2 instances, this is the EC2 instance ID.
8957	//
8958	// An Application Load Balancer can be either internal or internet-facing.
8959	EndpointId *string `type:"string"`
8960
8961	// Returns a null result.
8962	HealthReason *string `type:"string"`
8963
8964	// The health status of the endpoint.
8965	HealthState *string `type:"string" enum:"HealthState"`
8966
8967	// The weight associated with the endpoint. When you add weights to endpoints,
8968	// you configure AWS Global Accelerator to route traffic based on proportions
8969	// that you specify. For example, you might specify endpoint weights of 4, 5,
8970	// 5, and 6 (sum=20). The result is that 4/20 of your traffic, on average, is
8971	// routed to the first endpoint, 5/20 is routed both to the second and third
8972	// endpoints, and 6/20 is routed to the last endpoint. For more information,
8973	// see Endpoint Weights (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html)
8974	// in the AWS Global Accelerator Developer Guide.
8975	Weight *int64 `type:"integer"`
8976}
8977
8978// String returns the string representation.
8979//
8980// API parameter values that are decorated as "sensitive" in the API will not
8981// be included in the string output. The member name will be present, but the
8982// value will be replaced with "sensitive".
8983func (s EndpointDescription) String() string {
8984	return awsutil.Prettify(s)
8985}
8986
8987// GoString returns the string representation.
8988//
8989// API parameter values that are decorated as "sensitive" in the API will not
8990// be included in the string output. The member name will be present, but the
8991// value will be replaced with "sensitive".
8992func (s EndpointDescription) GoString() string {
8993	return s.String()
8994}
8995
8996// SetClientIPPreservationEnabled sets the ClientIPPreservationEnabled field's value.
8997func (s *EndpointDescription) SetClientIPPreservationEnabled(v bool) *EndpointDescription {
8998	s.ClientIPPreservationEnabled = &v
8999	return s
9000}
9001
9002// SetEndpointId sets the EndpointId field's value.
9003func (s *EndpointDescription) SetEndpointId(v string) *EndpointDescription {
9004	s.EndpointId = &v
9005	return s
9006}
9007
9008// SetHealthReason sets the HealthReason field's value.
9009func (s *EndpointDescription) SetHealthReason(v string) *EndpointDescription {
9010	s.HealthReason = &v
9011	return s
9012}
9013
9014// SetHealthState sets the HealthState field's value.
9015func (s *EndpointDescription) SetHealthState(v string) *EndpointDescription {
9016	s.HealthState = &v
9017	return s
9018}
9019
9020// SetWeight sets the Weight field's value.
9021func (s *EndpointDescription) SetWeight(v int64) *EndpointDescription {
9022	s.Weight = &v
9023	return s
9024}
9025
9026// A complex type for the endpoint group. An AWS Region can have only one endpoint
9027// group for a specific listener.
9028type EndpointGroup struct {
9029	_ struct{} `type:"structure"`
9030
9031	// The list of endpoint objects.
9032	EndpointDescriptions []*EndpointDescription `type:"list"`
9033
9034	// The Amazon Resource Name (ARN) of the endpoint group.
9035	EndpointGroupArn *string `type:"string"`
9036
9037	// The AWS Region where the endpoint group is located.
9038	EndpointGroupRegion *string `type:"string"`
9039
9040	// The time—10 seconds or 30 seconds—between health checks for each endpoint.
9041	// The default value is 30.
9042	HealthCheckIntervalSeconds *int64 `min:"10" type:"integer"`
9043
9044	// If the protocol is HTTP/S, then this value provides the ping path that Global
9045	// Accelerator uses for the destination on the endpoints for health checks.
9046	// The default is slash (/).
9047	HealthCheckPath *string `type:"string"`
9048
9049	// The port that Global Accelerator uses to perform health checks on endpoints
9050	// that are part of this endpoint group.
9051	//
9052	// The default port is the port for the listener that this endpoint group is
9053	// associated with. If the listener port is a list, Global Accelerator uses
9054	// the first specified port in the list of ports.
9055	HealthCheckPort *int64 `min:"1" type:"integer"`
9056
9057	// The protocol that Global Accelerator uses to perform health checks on endpoints
9058	// that are part of this endpoint group. The default value is TCP.
9059	HealthCheckProtocol *string `type:"string" enum:"HealthCheckProtocol"`
9060
9061	// Allows you to override the destination ports used to route traffic to an
9062	// endpoint. Using a port override lets you to map a list of external destination
9063	// ports (that your users send traffic to) to a list of internal destination
9064	// ports that you want an application endpoint to receive traffic on.
9065	PortOverrides []*PortOverride `type:"list"`
9066
9067	// The number of consecutive health checks required to set the state of a healthy
9068	// endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default
9069	// value is 3.
9070	ThresholdCount *int64 `min:"1" type:"integer"`
9071
9072	// The percentage of traffic to send to an AWS Region. Additional traffic is
9073	// distributed to other endpoint groups for this listener.
9074	//
9075	// Use this action to increase (dial up) or decrease (dial down) traffic to
9076	// a specific Region. The percentage is applied to the traffic that would otherwise
9077	// have been routed to the Region based on optimal routing.
9078	//
9079	// The default value is 100.
9080	TrafficDialPercentage *float64 `type:"float"`
9081}
9082
9083// String returns the string representation.
9084//
9085// API parameter values that are decorated as "sensitive" in the API will not
9086// be included in the string output. The member name will be present, but the
9087// value will be replaced with "sensitive".
9088func (s EndpointGroup) String() string {
9089	return awsutil.Prettify(s)
9090}
9091
9092// GoString returns the string representation.
9093//
9094// API parameter values that are decorated as "sensitive" in the API will not
9095// be included in the string output. The member name will be present, but the
9096// value will be replaced with "sensitive".
9097func (s EndpointGroup) GoString() string {
9098	return s.String()
9099}
9100
9101// SetEndpointDescriptions sets the EndpointDescriptions field's value.
9102func (s *EndpointGroup) SetEndpointDescriptions(v []*EndpointDescription) *EndpointGroup {
9103	s.EndpointDescriptions = v
9104	return s
9105}
9106
9107// SetEndpointGroupArn sets the EndpointGroupArn field's value.
9108func (s *EndpointGroup) SetEndpointGroupArn(v string) *EndpointGroup {
9109	s.EndpointGroupArn = &v
9110	return s
9111}
9112
9113// SetEndpointGroupRegion sets the EndpointGroupRegion field's value.
9114func (s *EndpointGroup) SetEndpointGroupRegion(v string) *EndpointGroup {
9115	s.EndpointGroupRegion = &v
9116	return s
9117}
9118
9119// SetHealthCheckIntervalSeconds sets the HealthCheckIntervalSeconds field's value.
9120func (s *EndpointGroup) SetHealthCheckIntervalSeconds(v int64) *EndpointGroup {
9121	s.HealthCheckIntervalSeconds = &v
9122	return s
9123}
9124
9125// SetHealthCheckPath sets the HealthCheckPath field's value.
9126func (s *EndpointGroup) SetHealthCheckPath(v string) *EndpointGroup {
9127	s.HealthCheckPath = &v
9128	return s
9129}
9130
9131// SetHealthCheckPort sets the HealthCheckPort field's value.
9132func (s *EndpointGroup) SetHealthCheckPort(v int64) *EndpointGroup {
9133	s.HealthCheckPort = &v
9134	return s
9135}
9136
9137// SetHealthCheckProtocol sets the HealthCheckProtocol field's value.
9138func (s *EndpointGroup) SetHealthCheckProtocol(v string) *EndpointGroup {
9139	s.HealthCheckProtocol = &v
9140	return s
9141}
9142
9143// SetPortOverrides sets the PortOverrides field's value.
9144func (s *EndpointGroup) SetPortOverrides(v []*PortOverride) *EndpointGroup {
9145	s.PortOverrides = v
9146	return s
9147}
9148
9149// SetThresholdCount sets the ThresholdCount field's value.
9150func (s *EndpointGroup) SetThresholdCount(v int64) *EndpointGroup {
9151	s.ThresholdCount = &v
9152	return s
9153}
9154
9155// SetTrafficDialPercentage sets the TrafficDialPercentage field's value.
9156func (s *EndpointGroup) SetTrafficDialPercentage(v float64) *EndpointGroup {
9157	s.TrafficDialPercentage = &v
9158	return s
9159}
9160
9161// The endpoint group that you specified already exists.
9162type EndpointGroupAlreadyExistsException struct {
9163	_            struct{}                  `type:"structure"`
9164	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9165
9166	Message_ *string `locationName:"Message" type:"string"`
9167}
9168
9169// String returns the string representation.
9170//
9171// API parameter values that are decorated as "sensitive" in the API will not
9172// be included in the string output. The member name will be present, but the
9173// value will be replaced with "sensitive".
9174func (s EndpointGroupAlreadyExistsException) String() string {
9175	return awsutil.Prettify(s)
9176}
9177
9178// GoString returns the string representation.
9179//
9180// API parameter values that are decorated as "sensitive" in the API will not
9181// be included in the string output. The member name will be present, but the
9182// value will be replaced with "sensitive".
9183func (s EndpointGroupAlreadyExistsException) GoString() string {
9184	return s.String()
9185}
9186
9187func newErrorEndpointGroupAlreadyExistsException(v protocol.ResponseMetadata) error {
9188	return &EndpointGroupAlreadyExistsException{
9189		RespMetadata: v,
9190	}
9191}
9192
9193// Code returns the exception type name.
9194func (s *EndpointGroupAlreadyExistsException) Code() string {
9195	return "EndpointGroupAlreadyExistsException"
9196}
9197
9198// Message returns the exception's message.
9199func (s *EndpointGroupAlreadyExistsException) Message() string {
9200	if s.Message_ != nil {
9201		return *s.Message_
9202	}
9203	return ""
9204}
9205
9206// OrigErr always returns nil, satisfies awserr.Error interface.
9207func (s *EndpointGroupAlreadyExistsException) OrigErr() error {
9208	return nil
9209}
9210
9211func (s *EndpointGroupAlreadyExistsException) Error() string {
9212	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9213}
9214
9215// Status code returns the HTTP status code for the request's response error.
9216func (s *EndpointGroupAlreadyExistsException) StatusCode() int {
9217	return s.RespMetadata.StatusCode
9218}
9219
9220// RequestID returns the service's response RequestID for request.
9221func (s *EndpointGroupAlreadyExistsException) RequestID() string {
9222	return s.RespMetadata.RequestID
9223}
9224
9225// The endpoint group that you specified doesn't exist.
9226type EndpointGroupNotFoundException struct {
9227	_            struct{}                  `type:"structure"`
9228	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9229
9230	Message_ *string `locationName:"Message" type:"string"`
9231}
9232
9233// String returns the string representation.
9234//
9235// API parameter values that are decorated as "sensitive" in the API will not
9236// be included in the string output. The member name will be present, but the
9237// value will be replaced with "sensitive".
9238func (s EndpointGroupNotFoundException) String() string {
9239	return awsutil.Prettify(s)
9240}
9241
9242// GoString returns the string representation.
9243//
9244// API parameter values that are decorated as "sensitive" in the API will not
9245// be included in the string output. The member name will be present, but the
9246// value will be replaced with "sensitive".
9247func (s EndpointGroupNotFoundException) GoString() string {
9248	return s.String()
9249}
9250
9251func newErrorEndpointGroupNotFoundException(v protocol.ResponseMetadata) error {
9252	return &EndpointGroupNotFoundException{
9253		RespMetadata: v,
9254	}
9255}
9256
9257// Code returns the exception type name.
9258func (s *EndpointGroupNotFoundException) Code() string {
9259	return "EndpointGroupNotFoundException"
9260}
9261
9262// Message returns the exception's message.
9263func (s *EndpointGroupNotFoundException) Message() string {
9264	if s.Message_ != nil {
9265		return *s.Message_
9266	}
9267	return ""
9268}
9269
9270// OrigErr always returns nil, satisfies awserr.Error interface.
9271func (s *EndpointGroupNotFoundException) OrigErr() error {
9272	return nil
9273}
9274
9275func (s *EndpointGroupNotFoundException) Error() string {
9276	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9277}
9278
9279// Status code returns the HTTP status code for the request's response error.
9280func (s *EndpointGroupNotFoundException) StatusCode() int {
9281	return s.RespMetadata.StatusCode
9282}
9283
9284// RequestID returns the service's response RequestID for request.
9285func (s *EndpointGroupNotFoundException) RequestID() string {
9286	return s.RespMetadata.RequestID
9287}
9288
9289// The endpoint that you specified doesn't exist.
9290type EndpointNotFoundException struct {
9291	_            struct{}                  `type:"structure"`
9292	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9293
9294	Message_ *string `locationName:"Message" type:"string"`
9295}
9296
9297// String returns the string representation.
9298//
9299// API parameter values that are decorated as "sensitive" in the API will not
9300// be included in the string output. The member name will be present, but the
9301// value will be replaced with "sensitive".
9302func (s EndpointNotFoundException) String() string {
9303	return awsutil.Prettify(s)
9304}
9305
9306// GoString returns the string representation.
9307//
9308// API parameter values that are decorated as "sensitive" in the API will not
9309// be included in the string output. The member name will be present, but the
9310// value will be replaced with "sensitive".
9311func (s EndpointNotFoundException) GoString() string {
9312	return s.String()
9313}
9314
9315func newErrorEndpointNotFoundException(v protocol.ResponseMetadata) error {
9316	return &EndpointNotFoundException{
9317		RespMetadata: v,
9318	}
9319}
9320
9321// Code returns the exception type name.
9322func (s *EndpointNotFoundException) Code() string {
9323	return "EndpointNotFoundException"
9324}
9325
9326// Message returns the exception's message.
9327func (s *EndpointNotFoundException) Message() string {
9328	if s.Message_ != nil {
9329		return *s.Message_
9330	}
9331	return ""
9332}
9333
9334// OrigErr always returns nil, satisfies awserr.Error interface.
9335func (s *EndpointNotFoundException) OrigErr() error {
9336	return nil
9337}
9338
9339func (s *EndpointNotFoundException) Error() string {
9340	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9341}
9342
9343// Status code returns the HTTP status code for the request's response error.
9344func (s *EndpointNotFoundException) StatusCode() int {
9345	return s.RespMetadata.StatusCode
9346}
9347
9348// RequestID returns the service's response RequestID for request.
9349func (s *EndpointNotFoundException) RequestID() string {
9350	return s.RespMetadata.RequestID
9351}
9352
9353// The CIDR that you specified is not valid for this action. For example, the
9354// state of the CIDR might be incorrect for this action.
9355type IncorrectCidrStateException struct {
9356	_            struct{}                  `type:"structure"`
9357	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9358
9359	Message_ *string `locationName:"Message" type:"string"`
9360}
9361
9362// String returns the string representation.
9363//
9364// API parameter values that are decorated as "sensitive" in the API will not
9365// be included in the string output. The member name will be present, but the
9366// value will be replaced with "sensitive".
9367func (s IncorrectCidrStateException) String() string {
9368	return awsutil.Prettify(s)
9369}
9370
9371// GoString returns the string representation.
9372//
9373// API parameter values that are decorated as "sensitive" in the API will not
9374// be included in the string output. The member name will be present, but the
9375// value will be replaced with "sensitive".
9376func (s IncorrectCidrStateException) GoString() string {
9377	return s.String()
9378}
9379
9380func newErrorIncorrectCidrStateException(v protocol.ResponseMetadata) error {
9381	return &IncorrectCidrStateException{
9382		RespMetadata: v,
9383	}
9384}
9385
9386// Code returns the exception type name.
9387func (s *IncorrectCidrStateException) Code() string {
9388	return "IncorrectCidrStateException"
9389}
9390
9391// Message returns the exception's message.
9392func (s *IncorrectCidrStateException) Message() string {
9393	if s.Message_ != nil {
9394		return *s.Message_
9395	}
9396	return ""
9397}
9398
9399// OrigErr always returns nil, satisfies awserr.Error interface.
9400func (s *IncorrectCidrStateException) OrigErr() error {
9401	return nil
9402}
9403
9404func (s *IncorrectCidrStateException) Error() string {
9405	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9406}
9407
9408// Status code returns the HTTP status code for the request's response error.
9409func (s *IncorrectCidrStateException) StatusCode() int {
9410	return s.RespMetadata.StatusCode
9411}
9412
9413// RequestID returns the service's response RequestID for request.
9414func (s *IncorrectCidrStateException) RequestID() string {
9415	return s.RespMetadata.RequestID
9416}
9417
9418// There was an internal error for AWS Global Accelerator.
9419type InternalServiceErrorException struct {
9420	_            struct{}                  `type:"structure"`
9421	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9422
9423	Message_ *string `locationName:"Message" type:"string"`
9424}
9425
9426// String returns the string representation.
9427//
9428// API parameter values that are decorated as "sensitive" in the API will not
9429// be included in the string output. The member name will be present, but the
9430// value will be replaced with "sensitive".
9431func (s InternalServiceErrorException) String() string {
9432	return awsutil.Prettify(s)
9433}
9434
9435// GoString returns the string representation.
9436//
9437// API parameter values that are decorated as "sensitive" in the API will not
9438// be included in the string output. The member name will be present, but the
9439// value will be replaced with "sensitive".
9440func (s InternalServiceErrorException) GoString() string {
9441	return s.String()
9442}
9443
9444func newErrorInternalServiceErrorException(v protocol.ResponseMetadata) error {
9445	return &InternalServiceErrorException{
9446		RespMetadata: v,
9447	}
9448}
9449
9450// Code returns the exception type name.
9451func (s *InternalServiceErrorException) Code() string {
9452	return "InternalServiceErrorException"
9453}
9454
9455// Message returns the exception's message.
9456func (s *InternalServiceErrorException) Message() string {
9457	if s.Message_ != nil {
9458		return *s.Message_
9459	}
9460	return ""
9461}
9462
9463// OrigErr always returns nil, satisfies awserr.Error interface.
9464func (s *InternalServiceErrorException) OrigErr() error {
9465	return nil
9466}
9467
9468func (s *InternalServiceErrorException) Error() string {
9469	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9470}
9471
9472// Status code returns the HTTP status code for the request's response error.
9473func (s *InternalServiceErrorException) StatusCode() int {
9474	return s.RespMetadata.StatusCode
9475}
9476
9477// RequestID returns the service's response RequestID for request.
9478func (s *InternalServiceErrorException) RequestID() string {
9479	return s.RespMetadata.RequestID
9480}
9481
9482// An argument that you specified is invalid.
9483type InvalidArgumentException struct {
9484	_            struct{}                  `type:"structure"`
9485	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9486
9487	Message_ *string `locationName:"Message" type:"string"`
9488}
9489
9490// String returns the string representation.
9491//
9492// API parameter values that are decorated as "sensitive" in the API will not
9493// be included in the string output. The member name will be present, but the
9494// value will be replaced with "sensitive".
9495func (s InvalidArgumentException) String() string {
9496	return awsutil.Prettify(s)
9497}
9498
9499// GoString returns the string representation.
9500//
9501// API parameter values that are decorated as "sensitive" in the API will not
9502// be included in the string output. The member name will be present, but the
9503// value will be replaced with "sensitive".
9504func (s InvalidArgumentException) GoString() string {
9505	return s.String()
9506}
9507
9508func newErrorInvalidArgumentException(v protocol.ResponseMetadata) error {
9509	return &InvalidArgumentException{
9510		RespMetadata: v,
9511	}
9512}
9513
9514// Code returns the exception type name.
9515func (s *InvalidArgumentException) Code() string {
9516	return "InvalidArgumentException"
9517}
9518
9519// Message returns the exception's message.
9520func (s *InvalidArgumentException) Message() string {
9521	if s.Message_ != nil {
9522		return *s.Message_
9523	}
9524	return ""
9525}
9526
9527// OrigErr always returns nil, satisfies awserr.Error interface.
9528func (s *InvalidArgumentException) OrigErr() error {
9529	return nil
9530}
9531
9532func (s *InvalidArgumentException) Error() string {
9533	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9534}
9535
9536// Status code returns the HTTP status code for the request's response error.
9537func (s *InvalidArgumentException) StatusCode() int {
9538	return s.RespMetadata.StatusCode
9539}
9540
9541// RequestID returns the service's response RequestID for request.
9542func (s *InvalidArgumentException) RequestID() string {
9543	return s.RespMetadata.RequestID
9544}
9545
9546// There isn't another item to return.
9547type InvalidNextTokenException struct {
9548	_            struct{}                  `type:"structure"`
9549	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9550
9551	Message_ *string `locationName:"Message" type:"string"`
9552}
9553
9554// String returns the string representation.
9555//
9556// API parameter values that are decorated as "sensitive" in the API will not
9557// be included in the string output. The member name will be present, but the
9558// value will be replaced with "sensitive".
9559func (s InvalidNextTokenException) String() string {
9560	return awsutil.Prettify(s)
9561}
9562
9563// GoString returns the string representation.
9564//
9565// API parameter values that are decorated as "sensitive" in the API will not
9566// be included in the string output. The member name will be present, but the
9567// value will be replaced with "sensitive".
9568func (s InvalidNextTokenException) GoString() string {
9569	return s.String()
9570}
9571
9572func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
9573	return &InvalidNextTokenException{
9574		RespMetadata: v,
9575	}
9576}
9577
9578// Code returns the exception type name.
9579func (s *InvalidNextTokenException) Code() string {
9580	return "InvalidNextTokenException"
9581}
9582
9583// Message returns the exception's message.
9584func (s *InvalidNextTokenException) Message() string {
9585	if s.Message_ != nil {
9586		return *s.Message_
9587	}
9588	return ""
9589}
9590
9591// OrigErr always returns nil, satisfies awserr.Error interface.
9592func (s *InvalidNextTokenException) OrigErr() error {
9593	return nil
9594}
9595
9596func (s *InvalidNextTokenException) Error() string {
9597	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9598}
9599
9600// Status code returns the HTTP status code for the request's response error.
9601func (s *InvalidNextTokenException) StatusCode() int {
9602	return s.RespMetadata.StatusCode
9603}
9604
9605// RequestID returns the service's response RequestID for request.
9606func (s *InvalidNextTokenException) RequestID() string {
9607	return s.RespMetadata.RequestID
9608}
9609
9610// The port numbers that you specified are not valid numbers or are not unique
9611// for this accelerator.
9612type InvalidPortRangeException struct {
9613	_            struct{}                  `type:"structure"`
9614	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9615
9616	Message_ *string `locationName:"Message" type:"string"`
9617}
9618
9619// String returns the string representation.
9620//
9621// API parameter values that are decorated as "sensitive" in the API will not
9622// be included in the string output. The member name will be present, but the
9623// value will be replaced with "sensitive".
9624func (s InvalidPortRangeException) String() string {
9625	return awsutil.Prettify(s)
9626}
9627
9628// GoString returns the string representation.
9629//
9630// API parameter values that are decorated as "sensitive" in the API will not
9631// be included in the string output. The member name will be present, but the
9632// value will be replaced with "sensitive".
9633func (s InvalidPortRangeException) GoString() string {
9634	return s.String()
9635}
9636
9637func newErrorInvalidPortRangeException(v protocol.ResponseMetadata) error {
9638	return &InvalidPortRangeException{
9639		RespMetadata: v,
9640	}
9641}
9642
9643// Code returns the exception type name.
9644func (s *InvalidPortRangeException) Code() string {
9645	return "InvalidPortRangeException"
9646}
9647
9648// Message returns the exception's message.
9649func (s *InvalidPortRangeException) Message() string {
9650	if s.Message_ != nil {
9651		return *s.Message_
9652	}
9653	return ""
9654}
9655
9656// OrigErr always returns nil, satisfies awserr.Error interface.
9657func (s *InvalidPortRangeException) OrigErr() error {
9658	return nil
9659}
9660
9661func (s *InvalidPortRangeException) Error() string {
9662	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9663}
9664
9665// Status code returns the HTTP status code for the request's response error.
9666func (s *InvalidPortRangeException) StatusCode() int {
9667	return s.RespMetadata.StatusCode
9668}
9669
9670// RequestID returns the service's response RequestID for request.
9671func (s *InvalidPortRangeException) RequestID() string {
9672	return s.RespMetadata.RequestID
9673}
9674
9675// A complex type for the set of IP addresses for an accelerator.
9676type IpSet struct {
9677	_ struct{} `type:"structure"`
9678
9679	// The array of IP addresses in the IP address set. An IP address set can have
9680	// a maximum of two IP addresses.
9681	IpAddresses []*string `type:"list"`
9682
9683	// The types of IP addresses included in this IP set.
9684	IpFamily *string `type:"string"`
9685}
9686
9687// String returns the string representation.
9688//
9689// API parameter values that are decorated as "sensitive" in the API will not
9690// be included in the string output. The member name will be present, but the
9691// value will be replaced with "sensitive".
9692func (s IpSet) String() string {
9693	return awsutil.Prettify(s)
9694}
9695
9696// GoString returns the string representation.
9697//
9698// API parameter values that are decorated as "sensitive" in the API will not
9699// be included in the string output. The member name will be present, but the
9700// value will be replaced with "sensitive".
9701func (s IpSet) GoString() string {
9702	return s.String()
9703}
9704
9705// SetIpAddresses sets the IpAddresses field's value.
9706func (s *IpSet) SetIpAddresses(v []*string) *IpSet {
9707	s.IpAddresses = v
9708	return s
9709}
9710
9711// SetIpFamily sets the IpFamily field's value.
9712func (s *IpSet) SetIpFamily(v string) *IpSet {
9713	s.IpFamily = &v
9714	return s
9715}
9716
9717// Processing your request would cause you to exceed an AWS Global Accelerator
9718// limit.
9719type LimitExceededException struct {
9720	_            struct{}                  `type:"structure"`
9721	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9722
9723	Message_ *string `locationName:"Message" type:"string"`
9724}
9725
9726// String returns the string representation.
9727//
9728// API parameter values that are decorated as "sensitive" in the API will not
9729// be included in the string output. The member name will be present, but the
9730// value will be replaced with "sensitive".
9731func (s LimitExceededException) String() string {
9732	return awsutil.Prettify(s)
9733}
9734
9735// GoString returns the string representation.
9736//
9737// API parameter values that are decorated as "sensitive" in the API will not
9738// be included in the string output. The member name will be present, but the
9739// value will be replaced with "sensitive".
9740func (s LimitExceededException) GoString() string {
9741	return s.String()
9742}
9743
9744func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
9745	return &LimitExceededException{
9746		RespMetadata: v,
9747	}
9748}
9749
9750// Code returns the exception type name.
9751func (s *LimitExceededException) Code() string {
9752	return "LimitExceededException"
9753}
9754
9755// Message returns the exception's message.
9756func (s *LimitExceededException) Message() string {
9757	if s.Message_ != nil {
9758		return *s.Message_
9759	}
9760	return ""
9761}
9762
9763// OrigErr always returns nil, satisfies awserr.Error interface.
9764func (s *LimitExceededException) OrigErr() error {
9765	return nil
9766}
9767
9768func (s *LimitExceededException) Error() string {
9769	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9770}
9771
9772// Status code returns the HTTP status code for the request's response error.
9773func (s *LimitExceededException) StatusCode() int {
9774	return s.RespMetadata.StatusCode
9775}
9776
9777// RequestID returns the service's response RequestID for request.
9778func (s *LimitExceededException) RequestID() string {
9779	return s.RespMetadata.RequestID
9780}
9781
9782type ListAcceleratorsInput struct {
9783	_ struct{} `type:"structure"`
9784
9785	// The number of Global Accelerator objects that you want to return with this
9786	// call. The default value is 10.
9787	MaxResults *int64 `min:"1" type:"integer"`
9788
9789	// The token for the next set of results. You receive this token from a previous
9790	// call.
9791	NextToken *string `type:"string"`
9792}
9793
9794// String returns the string representation.
9795//
9796// API parameter values that are decorated as "sensitive" in the API will not
9797// be included in the string output. The member name will be present, but the
9798// value will be replaced with "sensitive".
9799func (s ListAcceleratorsInput) String() string {
9800	return awsutil.Prettify(s)
9801}
9802
9803// GoString returns the string representation.
9804//
9805// API parameter values that are decorated as "sensitive" in the API will not
9806// be included in the string output. The member name will be present, but the
9807// value will be replaced with "sensitive".
9808func (s ListAcceleratorsInput) GoString() string {
9809	return s.String()
9810}
9811
9812// Validate inspects the fields of the type to determine if they are valid.
9813func (s *ListAcceleratorsInput) Validate() error {
9814	invalidParams := request.ErrInvalidParams{Context: "ListAcceleratorsInput"}
9815	if s.MaxResults != nil && *s.MaxResults < 1 {
9816		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9817	}
9818
9819	if invalidParams.Len() > 0 {
9820		return invalidParams
9821	}
9822	return nil
9823}
9824
9825// SetMaxResults sets the MaxResults field's value.
9826func (s *ListAcceleratorsInput) SetMaxResults(v int64) *ListAcceleratorsInput {
9827	s.MaxResults = &v
9828	return s
9829}
9830
9831// SetNextToken sets the NextToken field's value.
9832func (s *ListAcceleratorsInput) SetNextToken(v string) *ListAcceleratorsInput {
9833	s.NextToken = &v
9834	return s
9835}
9836
9837type ListAcceleratorsOutput struct {
9838	_ struct{} `type:"structure"`
9839
9840	// The list of accelerators for a customer account.
9841	Accelerators []*Accelerator `type:"list"`
9842
9843	// The token for the next set of results. You receive this token from a previous
9844	// call.
9845	NextToken *string `type:"string"`
9846}
9847
9848// String returns the string representation.
9849//
9850// API parameter values that are decorated as "sensitive" in the API will not
9851// be included in the string output. The member name will be present, but the
9852// value will be replaced with "sensitive".
9853func (s ListAcceleratorsOutput) String() string {
9854	return awsutil.Prettify(s)
9855}
9856
9857// GoString returns the string representation.
9858//
9859// API parameter values that are decorated as "sensitive" in the API will not
9860// be included in the string output. The member name will be present, but the
9861// value will be replaced with "sensitive".
9862func (s ListAcceleratorsOutput) GoString() string {
9863	return s.String()
9864}
9865
9866// SetAccelerators sets the Accelerators field's value.
9867func (s *ListAcceleratorsOutput) SetAccelerators(v []*Accelerator) *ListAcceleratorsOutput {
9868	s.Accelerators = v
9869	return s
9870}
9871
9872// SetNextToken sets the NextToken field's value.
9873func (s *ListAcceleratorsOutput) SetNextToken(v string) *ListAcceleratorsOutput {
9874	s.NextToken = &v
9875	return s
9876}
9877
9878type ListByoipCidrsInput struct {
9879	_ struct{} `type:"structure"`
9880
9881	// The maximum number of results to return with a single call. To retrieve the
9882	// remaining results, make another call with the returned nextToken value.
9883	MaxResults *int64 `min:"1" type:"integer"`
9884
9885	// The token for the next page of results.
9886	NextToken *string `type:"string"`
9887}
9888
9889// String returns the string representation.
9890//
9891// API parameter values that are decorated as "sensitive" in the API will not
9892// be included in the string output. The member name will be present, but the
9893// value will be replaced with "sensitive".
9894func (s ListByoipCidrsInput) String() string {
9895	return awsutil.Prettify(s)
9896}
9897
9898// GoString returns the string representation.
9899//
9900// API parameter values that are decorated as "sensitive" in the API will not
9901// be included in the string output. The member name will be present, but the
9902// value will be replaced with "sensitive".
9903func (s ListByoipCidrsInput) GoString() string {
9904	return s.String()
9905}
9906
9907// Validate inspects the fields of the type to determine if they are valid.
9908func (s *ListByoipCidrsInput) Validate() error {
9909	invalidParams := request.ErrInvalidParams{Context: "ListByoipCidrsInput"}
9910	if s.MaxResults != nil && *s.MaxResults < 1 {
9911		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9912	}
9913
9914	if invalidParams.Len() > 0 {
9915		return invalidParams
9916	}
9917	return nil
9918}
9919
9920// SetMaxResults sets the MaxResults field's value.
9921func (s *ListByoipCidrsInput) SetMaxResults(v int64) *ListByoipCidrsInput {
9922	s.MaxResults = &v
9923	return s
9924}
9925
9926// SetNextToken sets the NextToken field's value.
9927func (s *ListByoipCidrsInput) SetNextToken(v string) *ListByoipCidrsInput {
9928	s.NextToken = &v
9929	return s
9930}
9931
9932type ListByoipCidrsOutput struct {
9933	_ struct{} `type:"structure"`
9934
9935	// Information about your address ranges.
9936	ByoipCidrs []*ByoipCidr `type:"list"`
9937
9938	// The token for the next page of results.
9939	NextToken *string `type:"string"`
9940}
9941
9942// String returns the string representation.
9943//
9944// API parameter values that are decorated as "sensitive" in the API will not
9945// be included in the string output. The member name will be present, but the
9946// value will be replaced with "sensitive".
9947func (s ListByoipCidrsOutput) String() string {
9948	return awsutil.Prettify(s)
9949}
9950
9951// GoString returns the string representation.
9952//
9953// API parameter values that are decorated as "sensitive" in the API will not
9954// be included in the string output. The member name will be present, but the
9955// value will be replaced with "sensitive".
9956func (s ListByoipCidrsOutput) GoString() string {
9957	return s.String()
9958}
9959
9960// SetByoipCidrs sets the ByoipCidrs field's value.
9961func (s *ListByoipCidrsOutput) SetByoipCidrs(v []*ByoipCidr) *ListByoipCidrsOutput {
9962	s.ByoipCidrs = v
9963	return s
9964}
9965
9966// SetNextToken sets the NextToken field's value.
9967func (s *ListByoipCidrsOutput) SetNextToken(v string) *ListByoipCidrsOutput {
9968	s.NextToken = &v
9969	return s
9970}
9971
9972type ListCustomRoutingAcceleratorsInput struct {
9973	_ struct{} `type:"structure"`
9974
9975	// The number of custom routing Global Accelerator objects that you want to
9976	// return with this call. The default value is 10.
9977	MaxResults *int64 `min:"1" type:"integer"`
9978
9979	// The token for the next set of results. You receive this token from a previous
9980	// call.
9981	NextToken *string `type:"string"`
9982}
9983
9984// String returns the string representation.
9985//
9986// API parameter values that are decorated as "sensitive" in the API will not
9987// be included in the string output. The member name will be present, but the
9988// value will be replaced with "sensitive".
9989func (s ListCustomRoutingAcceleratorsInput) String() string {
9990	return awsutil.Prettify(s)
9991}
9992
9993// GoString returns the string representation.
9994//
9995// API parameter values that are decorated as "sensitive" in the API will not
9996// be included in the string output. The member name will be present, but the
9997// value will be replaced with "sensitive".
9998func (s ListCustomRoutingAcceleratorsInput) GoString() string {
9999	return s.String()
10000}
10001
10002// Validate inspects the fields of the type to determine if they are valid.
10003func (s *ListCustomRoutingAcceleratorsInput) Validate() error {
10004	invalidParams := request.ErrInvalidParams{Context: "ListCustomRoutingAcceleratorsInput"}
10005	if s.MaxResults != nil && *s.MaxResults < 1 {
10006		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10007	}
10008
10009	if invalidParams.Len() > 0 {
10010		return invalidParams
10011	}
10012	return nil
10013}
10014
10015// SetMaxResults sets the MaxResults field's value.
10016func (s *ListCustomRoutingAcceleratorsInput) SetMaxResults(v int64) *ListCustomRoutingAcceleratorsInput {
10017	s.MaxResults = &v
10018	return s
10019}
10020
10021// SetNextToken sets the NextToken field's value.
10022func (s *ListCustomRoutingAcceleratorsInput) SetNextToken(v string) *ListCustomRoutingAcceleratorsInput {
10023	s.NextToken = &v
10024	return s
10025}
10026
10027type ListCustomRoutingAcceleratorsOutput struct {
10028	_ struct{} `type:"structure"`
10029
10030	// The list of custom routing accelerators for a customer account.
10031	Accelerators []*CustomRoutingAccelerator `type:"list"`
10032
10033	// The token for the next set of results. You receive this token from a previous
10034	// call.
10035	NextToken *string `type:"string"`
10036}
10037
10038// String returns the string representation.
10039//
10040// API parameter values that are decorated as "sensitive" in the API will not
10041// be included in the string output. The member name will be present, but the
10042// value will be replaced with "sensitive".
10043func (s ListCustomRoutingAcceleratorsOutput) String() string {
10044	return awsutil.Prettify(s)
10045}
10046
10047// GoString returns the string representation.
10048//
10049// API parameter values that are decorated as "sensitive" in the API will not
10050// be included in the string output. The member name will be present, but the
10051// value will be replaced with "sensitive".
10052func (s ListCustomRoutingAcceleratorsOutput) GoString() string {
10053	return s.String()
10054}
10055
10056// SetAccelerators sets the Accelerators field's value.
10057func (s *ListCustomRoutingAcceleratorsOutput) SetAccelerators(v []*CustomRoutingAccelerator) *ListCustomRoutingAcceleratorsOutput {
10058	s.Accelerators = v
10059	return s
10060}
10061
10062// SetNextToken sets the NextToken field's value.
10063func (s *ListCustomRoutingAcceleratorsOutput) SetNextToken(v string) *ListCustomRoutingAcceleratorsOutput {
10064	s.NextToken = &v
10065	return s
10066}
10067
10068type ListCustomRoutingEndpointGroupsInput struct {
10069	_ struct{} `type:"structure"`
10070
10071	// The Amazon Resource Name (ARN) of the listener to list endpoint groups for.
10072	//
10073	// ListenerArn is a required field
10074	ListenerArn *string `type:"string" required:"true"`
10075
10076	// The number of endpoint group objects that you want to return with this call.
10077	// The default value is 10.
10078	MaxResults *int64 `min:"1" type:"integer"`
10079
10080	// The token for the next set of results. You receive this token from a previous
10081	// call.
10082	NextToken *string `type:"string"`
10083}
10084
10085// String returns the string representation.
10086//
10087// API parameter values that are decorated as "sensitive" in the API will not
10088// be included in the string output. The member name will be present, but the
10089// value will be replaced with "sensitive".
10090func (s ListCustomRoutingEndpointGroupsInput) String() string {
10091	return awsutil.Prettify(s)
10092}
10093
10094// GoString returns the string representation.
10095//
10096// API parameter values that are decorated as "sensitive" in the API will not
10097// be included in the string output. The member name will be present, but the
10098// value will be replaced with "sensitive".
10099func (s ListCustomRoutingEndpointGroupsInput) GoString() string {
10100	return s.String()
10101}
10102
10103// Validate inspects the fields of the type to determine if they are valid.
10104func (s *ListCustomRoutingEndpointGroupsInput) Validate() error {
10105	invalidParams := request.ErrInvalidParams{Context: "ListCustomRoutingEndpointGroupsInput"}
10106	if s.ListenerArn == nil {
10107		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
10108	}
10109	if s.MaxResults != nil && *s.MaxResults < 1 {
10110		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10111	}
10112
10113	if invalidParams.Len() > 0 {
10114		return invalidParams
10115	}
10116	return nil
10117}
10118
10119// SetListenerArn sets the ListenerArn field's value.
10120func (s *ListCustomRoutingEndpointGroupsInput) SetListenerArn(v string) *ListCustomRoutingEndpointGroupsInput {
10121	s.ListenerArn = &v
10122	return s
10123}
10124
10125// SetMaxResults sets the MaxResults field's value.
10126func (s *ListCustomRoutingEndpointGroupsInput) SetMaxResults(v int64) *ListCustomRoutingEndpointGroupsInput {
10127	s.MaxResults = &v
10128	return s
10129}
10130
10131// SetNextToken sets the NextToken field's value.
10132func (s *ListCustomRoutingEndpointGroupsInput) SetNextToken(v string) *ListCustomRoutingEndpointGroupsInput {
10133	s.NextToken = &v
10134	return s
10135}
10136
10137type ListCustomRoutingEndpointGroupsOutput struct {
10138	_ struct{} `type:"structure"`
10139
10140	// The list of the endpoint groups associated with a listener for a custom routing
10141	// accelerator.
10142	EndpointGroups []*CustomRoutingEndpointGroup `type:"list"`
10143
10144	// The token for the next set of results. You receive this token from a previous
10145	// call.
10146	NextToken *string `type:"string"`
10147}
10148
10149// String returns the string representation.
10150//
10151// API parameter values that are decorated as "sensitive" in the API will not
10152// be included in the string output. The member name will be present, but the
10153// value will be replaced with "sensitive".
10154func (s ListCustomRoutingEndpointGroupsOutput) String() string {
10155	return awsutil.Prettify(s)
10156}
10157
10158// GoString returns the string representation.
10159//
10160// API parameter values that are decorated as "sensitive" in the API will not
10161// be included in the string output. The member name will be present, but the
10162// value will be replaced with "sensitive".
10163func (s ListCustomRoutingEndpointGroupsOutput) GoString() string {
10164	return s.String()
10165}
10166
10167// SetEndpointGroups sets the EndpointGroups field's value.
10168func (s *ListCustomRoutingEndpointGroupsOutput) SetEndpointGroups(v []*CustomRoutingEndpointGroup) *ListCustomRoutingEndpointGroupsOutput {
10169	s.EndpointGroups = v
10170	return s
10171}
10172
10173// SetNextToken sets the NextToken field's value.
10174func (s *ListCustomRoutingEndpointGroupsOutput) SetNextToken(v string) *ListCustomRoutingEndpointGroupsOutput {
10175	s.NextToken = &v
10176	return s
10177}
10178
10179type ListCustomRoutingListenersInput struct {
10180	_ struct{} `type:"structure"`
10181
10182	// The Amazon Resource Name (ARN) of the accelerator to list listeners for.
10183	//
10184	// AcceleratorArn is a required field
10185	AcceleratorArn *string `type:"string" required:"true"`
10186
10187	// The number of listener objects that you want to return with this call. The
10188	// default value is 10.
10189	MaxResults *int64 `min:"1" type:"integer"`
10190
10191	// The token for the next set of results. You receive this token from a previous
10192	// call.
10193	NextToken *string `type:"string"`
10194}
10195
10196// String returns the string representation.
10197//
10198// API parameter values that are decorated as "sensitive" in the API will not
10199// be included in the string output. The member name will be present, but the
10200// value will be replaced with "sensitive".
10201func (s ListCustomRoutingListenersInput) String() string {
10202	return awsutil.Prettify(s)
10203}
10204
10205// GoString returns the string representation.
10206//
10207// API parameter values that are decorated as "sensitive" in the API will not
10208// be included in the string output. The member name will be present, but the
10209// value will be replaced with "sensitive".
10210func (s ListCustomRoutingListenersInput) GoString() string {
10211	return s.String()
10212}
10213
10214// Validate inspects the fields of the type to determine if they are valid.
10215func (s *ListCustomRoutingListenersInput) Validate() error {
10216	invalidParams := request.ErrInvalidParams{Context: "ListCustomRoutingListenersInput"}
10217	if s.AcceleratorArn == nil {
10218		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
10219	}
10220	if s.MaxResults != nil && *s.MaxResults < 1 {
10221		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10222	}
10223
10224	if invalidParams.Len() > 0 {
10225		return invalidParams
10226	}
10227	return nil
10228}
10229
10230// SetAcceleratorArn sets the AcceleratorArn field's value.
10231func (s *ListCustomRoutingListenersInput) SetAcceleratorArn(v string) *ListCustomRoutingListenersInput {
10232	s.AcceleratorArn = &v
10233	return s
10234}
10235
10236// SetMaxResults sets the MaxResults field's value.
10237func (s *ListCustomRoutingListenersInput) SetMaxResults(v int64) *ListCustomRoutingListenersInput {
10238	s.MaxResults = &v
10239	return s
10240}
10241
10242// SetNextToken sets the NextToken field's value.
10243func (s *ListCustomRoutingListenersInput) SetNextToken(v string) *ListCustomRoutingListenersInput {
10244	s.NextToken = &v
10245	return s
10246}
10247
10248type ListCustomRoutingListenersOutput struct {
10249	_ struct{} `type:"structure"`
10250
10251	// The list of listeners for a custom routing accelerator.
10252	Listeners []*CustomRoutingListener `type:"list"`
10253
10254	// The token for the next set of results. You receive this token from a previous
10255	// call.
10256	NextToken *string `type:"string"`
10257}
10258
10259// String returns the string representation.
10260//
10261// API parameter values that are decorated as "sensitive" in the API will not
10262// be included in the string output. The member name will be present, but the
10263// value will be replaced with "sensitive".
10264func (s ListCustomRoutingListenersOutput) String() string {
10265	return awsutil.Prettify(s)
10266}
10267
10268// GoString returns the string representation.
10269//
10270// API parameter values that are decorated as "sensitive" in the API will not
10271// be included in the string output. The member name will be present, but the
10272// value will be replaced with "sensitive".
10273func (s ListCustomRoutingListenersOutput) GoString() string {
10274	return s.String()
10275}
10276
10277// SetListeners sets the Listeners field's value.
10278func (s *ListCustomRoutingListenersOutput) SetListeners(v []*CustomRoutingListener) *ListCustomRoutingListenersOutput {
10279	s.Listeners = v
10280	return s
10281}
10282
10283// SetNextToken sets the NextToken field's value.
10284func (s *ListCustomRoutingListenersOutput) SetNextToken(v string) *ListCustomRoutingListenersOutput {
10285	s.NextToken = &v
10286	return s
10287}
10288
10289type ListCustomRoutingPortMappingsByDestinationInput struct {
10290	_ struct{} `type:"structure"`
10291
10292	// The endpoint IP address in a virtual private cloud (VPC) subnet for which
10293	// you want to receive back port mappings.
10294	//
10295	// DestinationAddress is a required field
10296	DestinationAddress *string `type:"string" required:"true"`
10297
10298	// The ID for the virtual private cloud (VPC) subnet.
10299	//
10300	// EndpointId is a required field
10301	EndpointId *string `type:"string" required:"true"`
10302
10303	// The number of destination port mappings that you want to return with this
10304	// call. The default value is 10.
10305	MaxResults *int64 `min:"1" type:"integer"`
10306
10307	// The token for the next set of results. You receive this token from a previous
10308	// call.
10309	NextToken *string `type:"string"`
10310}
10311
10312// String returns the string representation.
10313//
10314// API parameter values that are decorated as "sensitive" in the API will not
10315// be included in the string output. The member name will be present, but the
10316// value will be replaced with "sensitive".
10317func (s ListCustomRoutingPortMappingsByDestinationInput) String() string {
10318	return awsutil.Prettify(s)
10319}
10320
10321// GoString returns the string representation.
10322//
10323// API parameter values that are decorated as "sensitive" in the API will not
10324// be included in the string output. The member name will be present, but the
10325// value will be replaced with "sensitive".
10326func (s ListCustomRoutingPortMappingsByDestinationInput) GoString() string {
10327	return s.String()
10328}
10329
10330// Validate inspects the fields of the type to determine if they are valid.
10331func (s *ListCustomRoutingPortMappingsByDestinationInput) Validate() error {
10332	invalidParams := request.ErrInvalidParams{Context: "ListCustomRoutingPortMappingsByDestinationInput"}
10333	if s.DestinationAddress == nil {
10334		invalidParams.Add(request.NewErrParamRequired("DestinationAddress"))
10335	}
10336	if s.EndpointId == nil {
10337		invalidParams.Add(request.NewErrParamRequired("EndpointId"))
10338	}
10339	if s.MaxResults != nil && *s.MaxResults < 1 {
10340		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10341	}
10342
10343	if invalidParams.Len() > 0 {
10344		return invalidParams
10345	}
10346	return nil
10347}
10348
10349// SetDestinationAddress sets the DestinationAddress field's value.
10350func (s *ListCustomRoutingPortMappingsByDestinationInput) SetDestinationAddress(v string) *ListCustomRoutingPortMappingsByDestinationInput {
10351	s.DestinationAddress = &v
10352	return s
10353}
10354
10355// SetEndpointId sets the EndpointId field's value.
10356func (s *ListCustomRoutingPortMappingsByDestinationInput) SetEndpointId(v string) *ListCustomRoutingPortMappingsByDestinationInput {
10357	s.EndpointId = &v
10358	return s
10359}
10360
10361// SetMaxResults sets the MaxResults field's value.
10362func (s *ListCustomRoutingPortMappingsByDestinationInput) SetMaxResults(v int64) *ListCustomRoutingPortMappingsByDestinationInput {
10363	s.MaxResults = &v
10364	return s
10365}
10366
10367// SetNextToken sets the NextToken field's value.
10368func (s *ListCustomRoutingPortMappingsByDestinationInput) SetNextToken(v string) *ListCustomRoutingPortMappingsByDestinationInput {
10369	s.NextToken = &v
10370	return s
10371}
10372
10373type ListCustomRoutingPortMappingsByDestinationOutput struct {
10374	_ struct{} `type:"structure"`
10375
10376	// The port mappings for the endpoint IP address that you specified in the request.
10377	DestinationPortMappings []*DestinationPortMapping `type:"list"`
10378
10379	// The token for the next set of results. You receive this token from a previous
10380	// call.
10381	NextToken *string `type:"string"`
10382}
10383
10384// String returns the string representation.
10385//
10386// API parameter values that are decorated as "sensitive" in the API will not
10387// be included in the string output. The member name will be present, but the
10388// value will be replaced with "sensitive".
10389func (s ListCustomRoutingPortMappingsByDestinationOutput) String() string {
10390	return awsutil.Prettify(s)
10391}
10392
10393// GoString returns the string representation.
10394//
10395// API parameter values that are decorated as "sensitive" in the API will not
10396// be included in the string output. The member name will be present, but the
10397// value will be replaced with "sensitive".
10398func (s ListCustomRoutingPortMappingsByDestinationOutput) GoString() string {
10399	return s.String()
10400}
10401
10402// SetDestinationPortMappings sets the DestinationPortMappings field's value.
10403func (s *ListCustomRoutingPortMappingsByDestinationOutput) SetDestinationPortMappings(v []*DestinationPortMapping) *ListCustomRoutingPortMappingsByDestinationOutput {
10404	s.DestinationPortMappings = v
10405	return s
10406}
10407
10408// SetNextToken sets the NextToken field's value.
10409func (s *ListCustomRoutingPortMappingsByDestinationOutput) SetNextToken(v string) *ListCustomRoutingPortMappingsByDestinationOutput {
10410	s.NextToken = &v
10411	return s
10412}
10413
10414type ListCustomRoutingPortMappingsInput struct {
10415	_ struct{} `type:"structure"`
10416
10417	// The Amazon Resource Name (ARN) of the accelerator to list the custom routing
10418	// port mappings for.
10419	//
10420	// AcceleratorArn is a required field
10421	AcceleratorArn *string `type:"string" required:"true"`
10422
10423	// The Amazon Resource Name (ARN) of the endpoint group to list the custom routing
10424	// port mappings for.
10425	EndpointGroupArn *string `type:"string"`
10426
10427	// The number of destination port mappings that you want to return with this
10428	// call. The default value is 10.
10429	MaxResults *int64 `min:"1" type:"integer"`
10430
10431	// The token for the next set of results. You receive this token from a previous
10432	// call.
10433	NextToken *string `type:"string"`
10434}
10435
10436// String returns the string representation.
10437//
10438// API parameter values that are decorated as "sensitive" in the API will not
10439// be included in the string output. The member name will be present, but the
10440// value will be replaced with "sensitive".
10441func (s ListCustomRoutingPortMappingsInput) String() string {
10442	return awsutil.Prettify(s)
10443}
10444
10445// GoString returns the string representation.
10446//
10447// API parameter values that are decorated as "sensitive" in the API will not
10448// be included in the string output. The member name will be present, but the
10449// value will be replaced with "sensitive".
10450func (s ListCustomRoutingPortMappingsInput) GoString() string {
10451	return s.String()
10452}
10453
10454// Validate inspects the fields of the type to determine if they are valid.
10455func (s *ListCustomRoutingPortMappingsInput) Validate() error {
10456	invalidParams := request.ErrInvalidParams{Context: "ListCustomRoutingPortMappingsInput"}
10457	if s.AcceleratorArn == nil {
10458		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
10459	}
10460	if s.MaxResults != nil && *s.MaxResults < 1 {
10461		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10462	}
10463
10464	if invalidParams.Len() > 0 {
10465		return invalidParams
10466	}
10467	return nil
10468}
10469
10470// SetAcceleratorArn sets the AcceleratorArn field's value.
10471func (s *ListCustomRoutingPortMappingsInput) SetAcceleratorArn(v string) *ListCustomRoutingPortMappingsInput {
10472	s.AcceleratorArn = &v
10473	return s
10474}
10475
10476// SetEndpointGroupArn sets the EndpointGroupArn field's value.
10477func (s *ListCustomRoutingPortMappingsInput) SetEndpointGroupArn(v string) *ListCustomRoutingPortMappingsInput {
10478	s.EndpointGroupArn = &v
10479	return s
10480}
10481
10482// SetMaxResults sets the MaxResults field's value.
10483func (s *ListCustomRoutingPortMappingsInput) SetMaxResults(v int64) *ListCustomRoutingPortMappingsInput {
10484	s.MaxResults = &v
10485	return s
10486}
10487
10488// SetNextToken sets the NextToken field's value.
10489func (s *ListCustomRoutingPortMappingsInput) SetNextToken(v string) *ListCustomRoutingPortMappingsInput {
10490	s.NextToken = &v
10491	return s
10492}
10493
10494type ListCustomRoutingPortMappingsOutput struct {
10495	_ struct{} `type:"structure"`
10496
10497	// The token for the next set of results. You receive this token from a previous
10498	// call.
10499	NextToken *string `type:"string"`
10500
10501	// The port mappings for a custom routing accelerator.
10502	PortMappings []*PortMapping `type:"list"`
10503}
10504
10505// String returns the string representation.
10506//
10507// API parameter values that are decorated as "sensitive" in the API will not
10508// be included in the string output. The member name will be present, but the
10509// value will be replaced with "sensitive".
10510func (s ListCustomRoutingPortMappingsOutput) String() string {
10511	return awsutil.Prettify(s)
10512}
10513
10514// GoString returns the string representation.
10515//
10516// API parameter values that are decorated as "sensitive" in the API will not
10517// be included in the string output. The member name will be present, but the
10518// value will be replaced with "sensitive".
10519func (s ListCustomRoutingPortMappingsOutput) GoString() string {
10520	return s.String()
10521}
10522
10523// SetNextToken sets the NextToken field's value.
10524func (s *ListCustomRoutingPortMappingsOutput) SetNextToken(v string) *ListCustomRoutingPortMappingsOutput {
10525	s.NextToken = &v
10526	return s
10527}
10528
10529// SetPortMappings sets the PortMappings field's value.
10530func (s *ListCustomRoutingPortMappingsOutput) SetPortMappings(v []*PortMapping) *ListCustomRoutingPortMappingsOutput {
10531	s.PortMappings = v
10532	return s
10533}
10534
10535type ListEndpointGroupsInput struct {
10536	_ struct{} `type:"structure"`
10537
10538	// The Amazon Resource Name (ARN) of the listener.
10539	//
10540	// ListenerArn is a required field
10541	ListenerArn *string `type:"string" required:"true"`
10542
10543	// The number of endpoint group objects that you want to return with this call.
10544	// The default value is 10.
10545	MaxResults *int64 `min:"1" type:"integer"`
10546
10547	// The token for the next set of results. You receive this token from a previous
10548	// call.
10549	NextToken *string `type:"string"`
10550}
10551
10552// String returns the string representation.
10553//
10554// API parameter values that are decorated as "sensitive" in the API will not
10555// be included in the string output. The member name will be present, but the
10556// value will be replaced with "sensitive".
10557func (s ListEndpointGroupsInput) String() string {
10558	return awsutil.Prettify(s)
10559}
10560
10561// GoString returns the string representation.
10562//
10563// API parameter values that are decorated as "sensitive" in the API will not
10564// be included in the string output. The member name will be present, but the
10565// value will be replaced with "sensitive".
10566func (s ListEndpointGroupsInput) GoString() string {
10567	return s.String()
10568}
10569
10570// Validate inspects the fields of the type to determine if they are valid.
10571func (s *ListEndpointGroupsInput) Validate() error {
10572	invalidParams := request.ErrInvalidParams{Context: "ListEndpointGroupsInput"}
10573	if s.ListenerArn == nil {
10574		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
10575	}
10576	if s.MaxResults != nil && *s.MaxResults < 1 {
10577		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10578	}
10579
10580	if invalidParams.Len() > 0 {
10581		return invalidParams
10582	}
10583	return nil
10584}
10585
10586// SetListenerArn sets the ListenerArn field's value.
10587func (s *ListEndpointGroupsInput) SetListenerArn(v string) *ListEndpointGroupsInput {
10588	s.ListenerArn = &v
10589	return s
10590}
10591
10592// SetMaxResults sets the MaxResults field's value.
10593func (s *ListEndpointGroupsInput) SetMaxResults(v int64) *ListEndpointGroupsInput {
10594	s.MaxResults = &v
10595	return s
10596}
10597
10598// SetNextToken sets the NextToken field's value.
10599func (s *ListEndpointGroupsInput) SetNextToken(v string) *ListEndpointGroupsInput {
10600	s.NextToken = &v
10601	return s
10602}
10603
10604type ListEndpointGroupsOutput struct {
10605	_ struct{} `type:"structure"`
10606
10607	// The list of the endpoint groups associated with a listener.
10608	EndpointGroups []*EndpointGroup `type:"list"`
10609
10610	// The token for the next set of results. You receive this token from a previous
10611	// call.
10612	NextToken *string `type:"string"`
10613}
10614
10615// String returns the string representation.
10616//
10617// API parameter values that are decorated as "sensitive" in the API will not
10618// be included in the string output. The member name will be present, but the
10619// value will be replaced with "sensitive".
10620func (s ListEndpointGroupsOutput) String() string {
10621	return awsutil.Prettify(s)
10622}
10623
10624// GoString returns the string representation.
10625//
10626// API parameter values that are decorated as "sensitive" in the API will not
10627// be included in the string output. The member name will be present, but the
10628// value will be replaced with "sensitive".
10629func (s ListEndpointGroupsOutput) GoString() string {
10630	return s.String()
10631}
10632
10633// SetEndpointGroups sets the EndpointGroups field's value.
10634func (s *ListEndpointGroupsOutput) SetEndpointGroups(v []*EndpointGroup) *ListEndpointGroupsOutput {
10635	s.EndpointGroups = v
10636	return s
10637}
10638
10639// SetNextToken sets the NextToken field's value.
10640func (s *ListEndpointGroupsOutput) SetNextToken(v string) *ListEndpointGroupsOutput {
10641	s.NextToken = &v
10642	return s
10643}
10644
10645type ListListenersInput struct {
10646	_ struct{} `type:"structure"`
10647
10648	// The Amazon Resource Name (ARN) of the accelerator for which you want to list
10649	// listener objects.
10650	//
10651	// AcceleratorArn is a required field
10652	AcceleratorArn *string `type:"string" required:"true"`
10653
10654	// The number of listener objects that you want to return with this call. The
10655	// default value is 10.
10656	MaxResults *int64 `min:"1" type:"integer"`
10657
10658	// The token for the next set of results. You receive this token from a previous
10659	// call.
10660	NextToken *string `type:"string"`
10661}
10662
10663// String returns the string representation.
10664//
10665// API parameter values that are decorated as "sensitive" in the API will not
10666// be included in the string output. The member name will be present, but the
10667// value will be replaced with "sensitive".
10668func (s ListListenersInput) String() string {
10669	return awsutil.Prettify(s)
10670}
10671
10672// GoString returns the string representation.
10673//
10674// API parameter values that are decorated as "sensitive" in the API will not
10675// be included in the string output. The member name will be present, but the
10676// value will be replaced with "sensitive".
10677func (s ListListenersInput) GoString() string {
10678	return s.String()
10679}
10680
10681// Validate inspects the fields of the type to determine if they are valid.
10682func (s *ListListenersInput) Validate() error {
10683	invalidParams := request.ErrInvalidParams{Context: "ListListenersInput"}
10684	if s.AcceleratorArn == nil {
10685		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
10686	}
10687	if s.MaxResults != nil && *s.MaxResults < 1 {
10688		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10689	}
10690
10691	if invalidParams.Len() > 0 {
10692		return invalidParams
10693	}
10694	return nil
10695}
10696
10697// SetAcceleratorArn sets the AcceleratorArn field's value.
10698func (s *ListListenersInput) SetAcceleratorArn(v string) *ListListenersInput {
10699	s.AcceleratorArn = &v
10700	return s
10701}
10702
10703// SetMaxResults sets the MaxResults field's value.
10704func (s *ListListenersInput) SetMaxResults(v int64) *ListListenersInput {
10705	s.MaxResults = &v
10706	return s
10707}
10708
10709// SetNextToken sets the NextToken field's value.
10710func (s *ListListenersInput) SetNextToken(v string) *ListListenersInput {
10711	s.NextToken = &v
10712	return s
10713}
10714
10715type ListListenersOutput struct {
10716	_ struct{} `type:"structure"`
10717
10718	// The list of listeners for an accelerator.
10719	Listeners []*Listener `type:"list"`
10720
10721	// The token for the next set of results. You receive this token from a previous
10722	// call.
10723	NextToken *string `type:"string"`
10724}
10725
10726// String returns the string representation.
10727//
10728// API parameter values that are decorated as "sensitive" in the API will not
10729// be included in the string output. The member name will be present, but the
10730// value will be replaced with "sensitive".
10731func (s ListListenersOutput) String() string {
10732	return awsutil.Prettify(s)
10733}
10734
10735// GoString returns the string representation.
10736//
10737// API parameter values that are decorated as "sensitive" in the API will not
10738// be included in the string output. The member name will be present, but the
10739// value will be replaced with "sensitive".
10740func (s ListListenersOutput) GoString() string {
10741	return s.String()
10742}
10743
10744// SetListeners sets the Listeners field's value.
10745func (s *ListListenersOutput) SetListeners(v []*Listener) *ListListenersOutput {
10746	s.Listeners = v
10747	return s
10748}
10749
10750// SetNextToken sets the NextToken field's value.
10751func (s *ListListenersOutput) SetNextToken(v string) *ListListenersOutput {
10752	s.NextToken = &v
10753	return s
10754}
10755
10756type ListTagsForResourceInput struct {
10757	_ struct{} `type:"structure"`
10758
10759	// The Amazon Resource Name (ARN) of the accelerator to list tags for. An ARN
10760	// uniquely identifies an accelerator.
10761	//
10762	// ResourceArn is a required field
10763	ResourceArn *string `min:"1" type:"string" required:"true"`
10764}
10765
10766// String returns the string representation.
10767//
10768// API parameter values that are decorated as "sensitive" in the API will not
10769// be included in the string output. The member name will be present, but the
10770// value will be replaced with "sensitive".
10771func (s ListTagsForResourceInput) String() string {
10772	return awsutil.Prettify(s)
10773}
10774
10775// GoString returns the string representation.
10776//
10777// API parameter values that are decorated as "sensitive" in the API will not
10778// be included in the string output. The member name will be present, but the
10779// value will be replaced with "sensitive".
10780func (s ListTagsForResourceInput) GoString() string {
10781	return s.String()
10782}
10783
10784// Validate inspects the fields of the type to determine if they are valid.
10785func (s *ListTagsForResourceInput) Validate() error {
10786	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
10787	if s.ResourceArn == nil {
10788		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10789	}
10790	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
10791		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
10792	}
10793
10794	if invalidParams.Len() > 0 {
10795		return invalidParams
10796	}
10797	return nil
10798}
10799
10800// SetResourceArn sets the ResourceArn field's value.
10801func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
10802	s.ResourceArn = &v
10803	return s
10804}
10805
10806type ListTagsForResourceOutput struct {
10807	_ struct{} `type:"structure"`
10808
10809	// Root level tag for the Tags parameters.
10810	Tags []*Tag `type:"list"`
10811}
10812
10813// String returns the string representation.
10814//
10815// API parameter values that are decorated as "sensitive" in the API will not
10816// be included in the string output. The member name will be present, but the
10817// value will be replaced with "sensitive".
10818func (s ListTagsForResourceOutput) String() string {
10819	return awsutil.Prettify(s)
10820}
10821
10822// GoString returns the string representation.
10823//
10824// API parameter values that are decorated as "sensitive" in the API will not
10825// be included in the string output. The member name will be present, but the
10826// value will be replaced with "sensitive".
10827func (s ListTagsForResourceOutput) GoString() string {
10828	return s.String()
10829}
10830
10831// SetTags sets the Tags field's value.
10832func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
10833	s.Tags = v
10834	return s
10835}
10836
10837// A complex type for a listener.
10838type Listener struct {
10839	_ struct{} `type:"structure"`
10840
10841	// Client affinity lets you direct all requests from a user to the same endpoint,
10842	// if you have stateful applications, regardless of the port and protocol of
10843	// the client request. Client affinity gives you control over whether to always
10844	// route each client to the same specific endpoint.
10845	//
10846	// AWS Global Accelerator uses a consistent-flow hashing algorithm to choose
10847	// the optimal endpoint for a connection. If client affinity is NONE, Global
10848	// Accelerator uses the "five-tuple" (5-tuple) properties—source IP address,
10849	// source port, destination IP address, destination port, and protocol—to
10850	// select the hash value, and then chooses the best endpoint. However, with
10851	// this setting, if someone uses different ports to connect to Global Accelerator,
10852	// their connections might not be always routed to the same endpoint because
10853	// the hash value changes.
10854	//
10855	// If you want a given client to always be routed to the same endpoint, set
10856	// client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting,
10857	// Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client)
10858	// IP address and destination IP address—to select the hash value.
10859	//
10860	// The default value is NONE.
10861	ClientAffinity *string `type:"string" enum:"ClientAffinity"`
10862
10863	// The Amazon Resource Name (ARN) of the listener.
10864	ListenerArn *string `type:"string"`
10865
10866	// The list of port ranges for the connections from clients to the accelerator.
10867	PortRanges []*PortRange `min:"1" type:"list"`
10868
10869	// The protocol for the connections from clients to the accelerator.
10870	Protocol *string `type:"string" enum:"Protocol"`
10871}
10872
10873// String returns the string representation.
10874//
10875// API parameter values that are decorated as "sensitive" in the API will not
10876// be included in the string output. The member name will be present, but the
10877// value will be replaced with "sensitive".
10878func (s Listener) String() string {
10879	return awsutil.Prettify(s)
10880}
10881
10882// GoString returns the string representation.
10883//
10884// API parameter values that are decorated as "sensitive" in the API will not
10885// be included in the string output. The member name will be present, but the
10886// value will be replaced with "sensitive".
10887func (s Listener) GoString() string {
10888	return s.String()
10889}
10890
10891// SetClientAffinity sets the ClientAffinity field's value.
10892func (s *Listener) SetClientAffinity(v string) *Listener {
10893	s.ClientAffinity = &v
10894	return s
10895}
10896
10897// SetListenerArn sets the ListenerArn field's value.
10898func (s *Listener) SetListenerArn(v string) *Listener {
10899	s.ListenerArn = &v
10900	return s
10901}
10902
10903// SetPortRanges sets the PortRanges field's value.
10904func (s *Listener) SetPortRanges(v []*PortRange) *Listener {
10905	s.PortRanges = v
10906	return s
10907}
10908
10909// SetProtocol sets the Protocol field's value.
10910func (s *Listener) SetProtocol(v string) *Listener {
10911	s.Protocol = &v
10912	return s
10913}
10914
10915// The listener that you specified doesn't exist.
10916type ListenerNotFoundException struct {
10917	_            struct{}                  `type:"structure"`
10918	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10919
10920	Message_ *string `locationName:"Message" type:"string"`
10921}
10922
10923// String returns the string representation.
10924//
10925// API parameter values that are decorated as "sensitive" in the API will not
10926// be included in the string output. The member name will be present, but the
10927// value will be replaced with "sensitive".
10928func (s ListenerNotFoundException) String() string {
10929	return awsutil.Prettify(s)
10930}
10931
10932// GoString returns the string representation.
10933//
10934// API parameter values that are decorated as "sensitive" in the API will not
10935// be included in the string output. The member name will be present, but the
10936// value will be replaced with "sensitive".
10937func (s ListenerNotFoundException) GoString() string {
10938	return s.String()
10939}
10940
10941func newErrorListenerNotFoundException(v protocol.ResponseMetadata) error {
10942	return &ListenerNotFoundException{
10943		RespMetadata: v,
10944	}
10945}
10946
10947// Code returns the exception type name.
10948func (s *ListenerNotFoundException) Code() string {
10949	return "ListenerNotFoundException"
10950}
10951
10952// Message returns the exception's message.
10953func (s *ListenerNotFoundException) Message() string {
10954	if s.Message_ != nil {
10955		return *s.Message_
10956	}
10957	return ""
10958}
10959
10960// OrigErr always returns nil, satisfies awserr.Error interface.
10961func (s *ListenerNotFoundException) OrigErr() error {
10962	return nil
10963}
10964
10965func (s *ListenerNotFoundException) Error() string {
10966	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10967}
10968
10969// Status code returns the HTTP status code for the request's response error.
10970func (s *ListenerNotFoundException) StatusCode() int {
10971	return s.RespMetadata.StatusCode
10972}
10973
10974// RequestID returns the service's response RequestID for request.
10975func (s *ListenerNotFoundException) RequestID() string {
10976	return s.RespMetadata.RequestID
10977}
10978
10979// Returns the ports and associated IP addresses and ports of Amazon EC2 instances
10980// in your virtual private cloud (VPC) subnets. Custom routing is a port mapping
10981// protocol in AWS Global Accelerator that statically associates port ranges
10982// with VPC subnets, which allows Global Accelerator to route to specific instances
10983// and ports within one or more subnets.
10984type PortMapping struct {
10985	_ struct{} `type:"structure"`
10986
10987	// The accelerator port.
10988	AcceleratorPort *int64 `min:"1" type:"integer"`
10989
10990	// The EC2 instance IP address and port number in the virtual private cloud
10991	// (VPC) subnet.
10992	DestinationSocketAddress *SocketAddress `type:"structure"`
10993
10994	// Indicates whether or not a port mapping destination can receive traffic.
10995	// The value is either ALLOW, if traffic is allowed to the destination, or DENY,
10996	// if traffic is not allowed to the destination.
10997	DestinationTrafficState *string `type:"string" enum:"CustomRoutingDestinationTrafficState"`
10998
10999	// The Amazon Resource Name (ARN) of the endpoint group.
11000	EndpointGroupArn *string `type:"string"`
11001
11002	// The IP address of the VPC subnet (the subnet ID).
11003	EndpointId *string `type:"string"`
11004
11005	// The protocols supported by the endpoint group.
11006	Protocols []*string `min:"1" type:"list"`
11007}
11008
11009// String returns the string representation.
11010//
11011// API parameter values that are decorated as "sensitive" in the API will not
11012// be included in the string output. The member name will be present, but the
11013// value will be replaced with "sensitive".
11014func (s PortMapping) String() string {
11015	return awsutil.Prettify(s)
11016}
11017
11018// GoString returns the string representation.
11019//
11020// API parameter values that are decorated as "sensitive" in the API will not
11021// be included in the string output. The member name will be present, but the
11022// value will be replaced with "sensitive".
11023func (s PortMapping) GoString() string {
11024	return s.String()
11025}
11026
11027// SetAcceleratorPort sets the AcceleratorPort field's value.
11028func (s *PortMapping) SetAcceleratorPort(v int64) *PortMapping {
11029	s.AcceleratorPort = &v
11030	return s
11031}
11032
11033// SetDestinationSocketAddress sets the DestinationSocketAddress field's value.
11034func (s *PortMapping) SetDestinationSocketAddress(v *SocketAddress) *PortMapping {
11035	s.DestinationSocketAddress = v
11036	return s
11037}
11038
11039// SetDestinationTrafficState sets the DestinationTrafficState field's value.
11040func (s *PortMapping) SetDestinationTrafficState(v string) *PortMapping {
11041	s.DestinationTrafficState = &v
11042	return s
11043}
11044
11045// SetEndpointGroupArn sets the EndpointGroupArn field's value.
11046func (s *PortMapping) SetEndpointGroupArn(v string) *PortMapping {
11047	s.EndpointGroupArn = &v
11048	return s
11049}
11050
11051// SetEndpointId sets the EndpointId field's value.
11052func (s *PortMapping) SetEndpointId(v string) *PortMapping {
11053	s.EndpointId = &v
11054	return s
11055}
11056
11057// SetProtocols sets the Protocols field's value.
11058func (s *PortMapping) SetProtocols(v []*string) *PortMapping {
11059	s.Protocols = v
11060	return s
11061}
11062
11063// Override specific listener ports used to route traffic to endpoints that
11064// are part of an endpoint group. For example, you can create a port override
11065// in which the listener receives user traffic on ports 80 and 443, but your
11066// accelerator routes that traffic to ports 1080 and 1443, respectively, on
11067// the endpoints.
11068//
11069// For more information, see Port overrides (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html)
11070// in the AWS Global Accelerator Developer Guide.
11071type PortOverride struct {
11072	_ struct{} `type:"structure"`
11073
11074	// The endpoint port that you want a listener port to be mapped to. This is
11075	// the port on the endpoint, such as the Application Load Balancer or Amazon
11076	// EC2 instance.
11077	EndpointPort *int64 `min:"1" type:"integer"`
11078
11079	// The listener port that you want to map to a specific endpoint port. This
11080	// is the port that user traffic arrives to the Global Accelerator on.
11081	ListenerPort *int64 `min:"1" type:"integer"`
11082}
11083
11084// String returns the string representation.
11085//
11086// API parameter values that are decorated as "sensitive" in the API will not
11087// be included in the string output. The member name will be present, but the
11088// value will be replaced with "sensitive".
11089func (s PortOverride) String() string {
11090	return awsutil.Prettify(s)
11091}
11092
11093// GoString returns the string representation.
11094//
11095// API parameter values that are decorated as "sensitive" in the API will not
11096// be included in the string output. The member name will be present, but the
11097// value will be replaced with "sensitive".
11098func (s PortOverride) GoString() string {
11099	return s.String()
11100}
11101
11102// Validate inspects the fields of the type to determine if they are valid.
11103func (s *PortOverride) Validate() error {
11104	invalidParams := request.ErrInvalidParams{Context: "PortOverride"}
11105	if s.EndpointPort != nil && *s.EndpointPort < 1 {
11106		invalidParams.Add(request.NewErrParamMinValue("EndpointPort", 1))
11107	}
11108	if s.ListenerPort != nil && *s.ListenerPort < 1 {
11109		invalidParams.Add(request.NewErrParamMinValue("ListenerPort", 1))
11110	}
11111
11112	if invalidParams.Len() > 0 {
11113		return invalidParams
11114	}
11115	return nil
11116}
11117
11118// SetEndpointPort sets the EndpointPort field's value.
11119func (s *PortOverride) SetEndpointPort(v int64) *PortOverride {
11120	s.EndpointPort = &v
11121	return s
11122}
11123
11124// SetListenerPort sets the ListenerPort field's value.
11125func (s *PortOverride) SetListenerPort(v int64) *PortOverride {
11126	s.ListenerPort = &v
11127	return s
11128}
11129
11130// A complex type for a range of ports for a listener.
11131type PortRange struct {
11132	_ struct{} `type:"structure"`
11133
11134	// The first port in the range of ports, inclusive.
11135	FromPort *int64 `min:"1" type:"integer"`
11136
11137	// The last port in the range of ports, inclusive.
11138	ToPort *int64 `min:"1" type:"integer"`
11139}
11140
11141// String returns the string representation.
11142//
11143// API parameter values that are decorated as "sensitive" in the API will not
11144// be included in the string output. The member name will be present, but the
11145// value will be replaced with "sensitive".
11146func (s PortRange) String() string {
11147	return awsutil.Prettify(s)
11148}
11149
11150// GoString returns the string representation.
11151//
11152// API parameter values that are decorated as "sensitive" in the API will not
11153// be included in the string output. The member name will be present, but the
11154// value will be replaced with "sensitive".
11155func (s PortRange) GoString() string {
11156	return s.String()
11157}
11158
11159// Validate inspects the fields of the type to determine if they are valid.
11160func (s *PortRange) Validate() error {
11161	invalidParams := request.ErrInvalidParams{Context: "PortRange"}
11162	if s.FromPort != nil && *s.FromPort < 1 {
11163		invalidParams.Add(request.NewErrParamMinValue("FromPort", 1))
11164	}
11165	if s.ToPort != nil && *s.ToPort < 1 {
11166		invalidParams.Add(request.NewErrParamMinValue("ToPort", 1))
11167	}
11168
11169	if invalidParams.Len() > 0 {
11170		return invalidParams
11171	}
11172	return nil
11173}
11174
11175// SetFromPort sets the FromPort field's value.
11176func (s *PortRange) SetFromPort(v int64) *PortRange {
11177	s.FromPort = &v
11178	return s
11179}
11180
11181// SetToPort sets the ToPort field's value.
11182func (s *PortRange) SetToPort(v int64) *PortRange {
11183	s.ToPort = &v
11184	return s
11185}
11186
11187type ProvisionByoipCidrInput struct {
11188	_ struct{} `type:"structure"`
11189
11190	// The public IPv4 address range, in CIDR notation. The most specific IP prefix
11191	// that you can specify is /24. The address range cannot overlap with another
11192	// address range that you've brought to this or another Region.
11193	//
11194	// Cidr is a required field
11195	Cidr *string `type:"string" required:"true"`
11196
11197	// A signed document that proves that you are authorized to bring the specified
11198	// IP address range to Amazon using BYOIP.
11199	//
11200	// CidrAuthorizationContext is a required field
11201	CidrAuthorizationContext *CidrAuthorizationContext `type:"structure" required:"true"`
11202}
11203
11204// String returns the string representation.
11205//
11206// API parameter values that are decorated as "sensitive" in the API will not
11207// be included in the string output. The member name will be present, but the
11208// value will be replaced with "sensitive".
11209func (s ProvisionByoipCidrInput) String() string {
11210	return awsutil.Prettify(s)
11211}
11212
11213// GoString returns the string representation.
11214//
11215// API parameter values that are decorated as "sensitive" in the API will not
11216// be included in the string output. The member name will be present, but the
11217// value will be replaced with "sensitive".
11218func (s ProvisionByoipCidrInput) GoString() string {
11219	return s.String()
11220}
11221
11222// Validate inspects the fields of the type to determine if they are valid.
11223func (s *ProvisionByoipCidrInput) Validate() error {
11224	invalidParams := request.ErrInvalidParams{Context: "ProvisionByoipCidrInput"}
11225	if s.Cidr == nil {
11226		invalidParams.Add(request.NewErrParamRequired("Cidr"))
11227	}
11228	if s.CidrAuthorizationContext == nil {
11229		invalidParams.Add(request.NewErrParamRequired("CidrAuthorizationContext"))
11230	}
11231	if s.CidrAuthorizationContext != nil {
11232		if err := s.CidrAuthorizationContext.Validate(); err != nil {
11233			invalidParams.AddNested("CidrAuthorizationContext", err.(request.ErrInvalidParams))
11234		}
11235	}
11236
11237	if invalidParams.Len() > 0 {
11238		return invalidParams
11239	}
11240	return nil
11241}
11242
11243// SetCidr sets the Cidr field's value.
11244func (s *ProvisionByoipCidrInput) SetCidr(v string) *ProvisionByoipCidrInput {
11245	s.Cidr = &v
11246	return s
11247}
11248
11249// SetCidrAuthorizationContext sets the CidrAuthorizationContext field's value.
11250func (s *ProvisionByoipCidrInput) SetCidrAuthorizationContext(v *CidrAuthorizationContext) *ProvisionByoipCidrInput {
11251	s.CidrAuthorizationContext = v
11252	return s
11253}
11254
11255type ProvisionByoipCidrOutput struct {
11256	_ struct{} `type:"structure"`
11257
11258	// Information about the address range.
11259	ByoipCidr *ByoipCidr `type:"structure"`
11260}
11261
11262// String returns the string representation.
11263//
11264// API parameter values that are decorated as "sensitive" in the API will not
11265// be included in the string output. The member name will be present, but the
11266// value will be replaced with "sensitive".
11267func (s ProvisionByoipCidrOutput) String() string {
11268	return awsutil.Prettify(s)
11269}
11270
11271// GoString returns the string representation.
11272//
11273// API parameter values that are decorated as "sensitive" in the API will not
11274// be included in the string output. The member name will be present, but the
11275// value will be replaced with "sensitive".
11276func (s ProvisionByoipCidrOutput) GoString() string {
11277	return s.String()
11278}
11279
11280// SetByoipCidr sets the ByoipCidr field's value.
11281func (s *ProvisionByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *ProvisionByoipCidrOutput {
11282	s.ByoipCidr = v
11283	return s
11284}
11285
11286type RemoveCustomRoutingEndpointsInput struct {
11287	_ struct{} `type:"structure"`
11288
11289	// The Amazon Resource Name (ARN) of the endpoint group to remove endpoints
11290	// from.
11291	//
11292	// EndpointGroupArn is a required field
11293	EndpointGroupArn *string `type:"string" required:"true"`
11294
11295	// The IDs for the endpoints. For custom routing accelerators, endpoint IDs
11296	// are the virtual private cloud (VPC) subnet IDs.
11297	//
11298	// EndpointIds is a required field
11299	EndpointIds []*string `type:"list" required:"true"`
11300}
11301
11302// String returns the string representation.
11303//
11304// API parameter values that are decorated as "sensitive" in the API will not
11305// be included in the string output. The member name will be present, but the
11306// value will be replaced with "sensitive".
11307func (s RemoveCustomRoutingEndpointsInput) String() string {
11308	return awsutil.Prettify(s)
11309}
11310
11311// GoString returns the string representation.
11312//
11313// API parameter values that are decorated as "sensitive" in the API will not
11314// be included in the string output. The member name will be present, but the
11315// value will be replaced with "sensitive".
11316func (s RemoveCustomRoutingEndpointsInput) GoString() string {
11317	return s.String()
11318}
11319
11320// Validate inspects the fields of the type to determine if they are valid.
11321func (s *RemoveCustomRoutingEndpointsInput) Validate() error {
11322	invalidParams := request.ErrInvalidParams{Context: "RemoveCustomRoutingEndpointsInput"}
11323	if s.EndpointGroupArn == nil {
11324		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
11325	}
11326	if s.EndpointIds == nil {
11327		invalidParams.Add(request.NewErrParamRequired("EndpointIds"))
11328	}
11329
11330	if invalidParams.Len() > 0 {
11331		return invalidParams
11332	}
11333	return nil
11334}
11335
11336// SetEndpointGroupArn sets the EndpointGroupArn field's value.
11337func (s *RemoveCustomRoutingEndpointsInput) SetEndpointGroupArn(v string) *RemoveCustomRoutingEndpointsInput {
11338	s.EndpointGroupArn = &v
11339	return s
11340}
11341
11342// SetEndpointIds sets the EndpointIds field's value.
11343func (s *RemoveCustomRoutingEndpointsInput) SetEndpointIds(v []*string) *RemoveCustomRoutingEndpointsInput {
11344	s.EndpointIds = v
11345	return s
11346}
11347
11348type RemoveCustomRoutingEndpointsOutput struct {
11349	_ struct{} `type:"structure"`
11350}
11351
11352// String returns the string representation.
11353//
11354// API parameter values that are decorated as "sensitive" in the API will not
11355// be included in the string output. The member name will be present, but the
11356// value will be replaced with "sensitive".
11357func (s RemoveCustomRoutingEndpointsOutput) String() string {
11358	return awsutil.Prettify(s)
11359}
11360
11361// GoString returns the string representation.
11362//
11363// API parameter values that are decorated as "sensitive" in the API will not
11364// be included in the string output. The member name will be present, but the
11365// value will be replaced with "sensitive".
11366func (s RemoveCustomRoutingEndpointsOutput) GoString() string {
11367	return s.String()
11368}
11369
11370// An IP address/port combination.
11371type SocketAddress struct {
11372	_ struct{} `type:"structure"`
11373
11374	// The IP address for the socket address.
11375	IpAddress *string `type:"string"`
11376
11377	// The port for the socket address.
11378	Port *int64 `min:"1" type:"integer"`
11379}
11380
11381// String returns the string representation.
11382//
11383// API parameter values that are decorated as "sensitive" in the API will not
11384// be included in the string output. The member name will be present, but the
11385// value will be replaced with "sensitive".
11386func (s SocketAddress) String() string {
11387	return awsutil.Prettify(s)
11388}
11389
11390// GoString returns the string representation.
11391//
11392// API parameter values that are decorated as "sensitive" in the API will not
11393// be included in the string output. The member name will be present, but the
11394// value will be replaced with "sensitive".
11395func (s SocketAddress) GoString() string {
11396	return s.String()
11397}
11398
11399// SetIpAddress sets the IpAddress field's value.
11400func (s *SocketAddress) SetIpAddress(v string) *SocketAddress {
11401	s.IpAddress = &v
11402	return s
11403}
11404
11405// SetPort sets the Port field's value.
11406func (s *SocketAddress) SetPort(v int64) *SocketAddress {
11407	s.Port = &v
11408	return s
11409}
11410
11411// A complex type that contains a Tag key and Tag value.
11412type Tag struct {
11413	_ struct{} `type:"structure"`
11414
11415	// A string that contains a Tag key.
11416	//
11417	// Key is a required field
11418	Key *string `min:"1" type:"string" required:"true"`
11419
11420	// A string that contains a Tag value.
11421	//
11422	// Value is a required field
11423	Value *string `type:"string" required:"true"`
11424}
11425
11426// String returns the string representation.
11427//
11428// API parameter values that are decorated as "sensitive" in the API will not
11429// be included in the string output. The member name will be present, but the
11430// value will be replaced with "sensitive".
11431func (s Tag) String() string {
11432	return awsutil.Prettify(s)
11433}
11434
11435// GoString returns the string representation.
11436//
11437// API parameter values that are decorated as "sensitive" in the API will not
11438// be included in the string output. The member name will be present, but the
11439// value will be replaced with "sensitive".
11440func (s Tag) GoString() string {
11441	return s.String()
11442}
11443
11444// Validate inspects the fields of the type to determine if they are valid.
11445func (s *Tag) Validate() error {
11446	invalidParams := request.ErrInvalidParams{Context: "Tag"}
11447	if s.Key == nil {
11448		invalidParams.Add(request.NewErrParamRequired("Key"))
11449	}
11450	if s.Key != nil && len(*s.Key) < 1 {
11451		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
11452	}
11453	if s.Value == nil {
11454		invalidParams.Add(request.NewErrParamRequired("Value"))
11455	}
11456
11457	if invalidParams.Len() > 0 {
11458		return invalidParams
11459	}
11460	return nil
11461}
11462
11463// SetKey sets the Key field's value.
11464func (s *Tag) SetKey(v string) *Tag {
11465	s.Key = &v
11466	return s
11467}
11468
11469// SetValue sets the Value field's value.
11470func (s *Tag) SetValue(v string) *Tag {
11471	s.Value = &v
11472	return s
11473}
11474
11475type TagResourceInput struct {
11476	_ struct{} `type:"structure"`
11477
11478	// The Amazon Resource Name (ARN) of the Global Accelerator resource to add
11479	// tags to. An ARN uniquely identifies a resource.
11480	//
11481	// ResourceArn is a required field
11482	ResourceArn *string `min:"1" type:"string" required:"true"`
11483
11484	// The tags to add to a resource. A tag consists of a key and a value that you
11485	// define.
11486	//
11487	// Tags is a required field
11488	Tags []*Tag `type:"list" required:"true"`
11489}
11490
11491// String returns the string representation.
11492//
11493// API parameter values that are decorated as "sensitive" in the API will not
11494// be included in the string output. The member name will be present, but the
11495// value will be replaced with "sensitive".
11496func (s TagResourceInput) String() string {
11497	return awsutil.Prettify(s)
11498}
11499
11500// GoString returns the string representation.
11501//
11502// API parameter values that are decorated as "sensitive" in the API will not
11503// be included in the string output. The member name will be present, but the
11504// value will be replaced with "sensitive".
11505func (s TagResourceInput) GoString() string {
11506	return s.String()
11507}
11508
11509// Validate inspects the fields of the type to determine if they are valid.
11510func (s *TagResourceInput) Validate() error {
11511	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
11512	if s.ResourceArn == nil {
11513		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
11514	}
11515	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
11516		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
11517	}
11518	if s.Tags == nil {
11519		invalidParams.Add(request.NewErrParamRequired("Tags"))
11520	}
11521	if s.Tags != nil {
11522		for i, v := range s.Tags {
11523			if v == nil {
11524				continue
11525			}
11526			if err := v.Validate(); err != nil {
11527				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11528			}
11529		}
11530	}
11531
11532	if invalidParams.Len() > 0 {
11533		return invalidParams
11534	}
11535	return nil
11536}
11537
11538// SetResourceArn sets the ResourceArn field's value.
11539func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
11540	s.ResourceArn = &v
11541	return s
11542}
11543
11544// SetTags sets the Tags field's value.
11545func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
11546	s.Tags = v
11547	return s
11548}
11549
11550type TagResourceOutput struct {
11551	_ struct{} `type:"structure"`
11552}
11553
11554// String returns the string representation.
11555//
11556// API parameter values that are decorated as "sensitive" in the API will not
11557// be included in the string output. The member name will be present, but the
11558// value will be replaced with "sensitive".
11559func (s TagResourceOutput) String() string {
11560	return awsutil.Prettify(s)
11561}
11562
11563// GoString returns the string representation.
11564//
11565// API parameter values that are decorated as "sensitive" in the API will not
11566// be included in the string output. The member name will be present, but the
11567// value will be replaced with "sensitive".
11568func (s TagResourceOutput) GoString() string {
11569	return s.String()
11570}
11571
11572type UntagResourceInput struct {
11573	_ struct{} `type:"structure"`
11574
11575	// The Amazon Resource Name (ARN) of the Global Accelerator resource to remove
11576	// tags from. An ARN uniquely identifies a resource.
11577	//
11578	// ResourceArn is a required field
11579	ResourceArn *string `min:"1" type:"string" required:"true"`
11580
11581	// The tag key pairs that you want to remove from the specified resources.
11582	//
11583	// TagKeys is a required field
11584	TagKeys []*string `type:"list" required:"true"`
11585}
11586
11587// String returns the string representation.
11588//
11589// API parameter values that are decorated as "sensitive" in the API will not
11590// be included in the string output. The member name will be present, but the
11591// value will be replaced with "sensitive".
11592func (s UntagResourceInput) String() string {
11593	return awsutil.Prettify(s)
11594}
11595
11596// GoString returns the string representation.
11597//
11598// API parameter values that are decorated as "sensitive" in the API will not
11599// be included in the string output. The member name will be present, but the
11600// value will be replaced with "sensitive".
11601func (s UntagResourceInput) GoString() string {
11602	return s.String()
11603}
11604
11605// Validate inspects the fields of the type to determine if they are valid.
11606func (s *UntagResourceInput) Validate() error {
11607	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
11608	if s.ResourceArn == nil {
11609		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
11610	}
11611	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
11612		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
11613	}
11614	if s.TagKeys == nil {
11615		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
11616	}
11617
11618	if invalidParams.Len() > 0 {
11619		return invalidParams
11620	}
11621	return nil
11622}
11623
11624// SetResourceArn sets the ResourceArn field's value.
11625func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
11626	s.ResourceArn = &v
11627	return s
11628}
11629
11630// SetTagKeys sets the TagKeys field's value.
11631func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
11632	s.TagKeys = v
11633	return s
11634}
11635
11636type UntagResourceOutput struct {
11637	_ struct{} `type:"structure"`
11638}
11639
11640// String returns the string representation.
11641//
11642// API parameter values that are decorated as "sensitive" in the API will not
11643// be included in the string output. The member name will be present, but the
11644// value will be replaced with "sensitive".
11645func (s UntagResourceOutput) String() string {
11646	return awsutil.Prettify(s)
11647}
11648
11649// GoString returns the string representation.
11650//
11651// API parameter values that are decorated as "sensitive" in the API will not
11652// be included in the string output. The member name will be present, but the
11653// value will be replaced with "sensitive".
11654func (s UntagResourceOutput) GoString() string {
11655	return s.String()
11656}
11657
11658type UpdateAcceleratorAttributesInput struct {
11659	_ struct{} `type:"structure"`
11660
11661	// The Amazon Resource Name (ARN) of the accelerator that you want to update.
11662	//
11663	// AcceleratorArn is a required field
11664	AcceleratorArn *string `type:"string" required:"true"`
11665
11666	// Update whether flow logs are enabled. The default value is false. If the
11667	// value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.
11668	//
11669	// For more information, see Flow Logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html)
11670	// in the AWS Global Accelerator Developer Guide.
11671	FlowLogsEnabled *bool `type:"boolean"`
11672
11673	// The name of the Amazon S3 bucket for the flow logs. Attribute is required
11674	// if FlowLogsEnabled is true. The bucket must exist and have a bucket policy
11675	// that grants AWS Global Accelerator permission to write to the bucket.
11676	FlowLogsS3Bucket *string `type:"string"`
11677
11678	// Update the prefix for the location in the Amazon S3 bucket for the flow logs.
11679	// Attribute is required if FlowLogsEnabled is true.
11680	//
11681	// If you don’t specify a prefix, the flow logs are stored in the root of
11682	// the bucket. If you specify slash (/) for the S3 bucket prefix, the log file
11683	// bucket folder structure will include a double slash (//), like the following:
11684	//
11685	// s3-bucket_name//AWSLogs/aws_account_id
11686	FlowLogsS3Prefix *string `type:"string"`
11687}
11688
11689// String returns the string representation.
11690//
11691// API parameter values that are decorated as "sensitive" in the API will not
11692// be included in the string output. The member name will be present, but the
11693// value will be replaced with "sensitive".
11694func (s UpdateAcceleratorAttributesInput) String() string {
11695	return awsutil.Prettify(s)
11696}
11697
11698// GoString returns the string representation.
11699//
11700// API parameter values that are decorated as "sensitive" in the API will not
11701// be included in the string output. The member name will be present, but the
11702// value will be replaced with "sensitive".
11703func (s UpdateAcceleratorAttributesInput) GoString() string {
11704	return s.String()
11705}
11706
11707// Validate inspects the fields of the type to determine if they are valid.
11708func (s *UpdateAcceleratorAttributesInput) Validate() error {
11709	invalidParams := request.ErrInvalidParams{Context: "UpdateAcceleratorAttributesInput"}
11710	if s.AcceleratorArn == nil {
11711		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
11712	}
11713
11714	if invalidParams.Len() > 0 {
11715		return invalidParams
11716	}
11717	return nil
11718}
11719
11720// SetAcceleratorArn sets the AcceleratorArn field's value.
11721func (s *UpdateAcceleratorAttributesInput) SetAcceleratorArn(v string) *UpdateAcceleratorAttributesInput {
11722	s.AcceleratorArn = &v
11723	return s
11724}
11725
11726// SetFlowLogsEnabled sets the FlowLogsEnabled field's value.
11727func (s *UpdateAcceleratorAttributesInput) SetFlowLogsEnabled(v bool) *UpdateAcceleratorAttributesInput {
11728	s.FlowLogsEnabled = &v
11729	return s
11730}
11731
11732// SetFlowLogsS3Bucket sets the FlowLogsS3Bucket field's value.
11733func (s *UpdateAcceleratorAttributesInput) SetFlowLogsS3Bucket(v string) *UpdateAcceleratorAttributesInput {
11734	s.FlowLogsS3Bucket = &v
11735	return s
11736}
11737
11738// SetFlowLogsS3Prefix sets the FlowLogsS3Prefix field's value.
11739func (s *UpdateAcceleratorAttributesInput) SetFlowLogsS3Prefix(v string) *UpdateAcceleratorAttributesInput {
11740	s.FlowLogsS3Prefix = &v
11741	return s
11742}
11743
11744type UpdateAcceleratorAttributesOutput struct {
11745	_ struct{} `type:"structure"`
11746
11747	// Updated attributes for the accelerator.
11748	AcceleratorAttributes *AcceleratorAttributes `type:"structure"`
11749}
11750
11751// String returns the string representation.
11752//
11753// API parameter values that are decorated as "sensitive" in the API will not
11754// be included in the string output. The member name will be present, but the
11755// value will be replaced with "sensitive".
11756func (s UpdateAcceleratorAttributesOutput) String() string {
11757	return awsutil.Prettify(s)
11758}
11759
11760// GoString returns the string representation.
11761//
11762// API parameter values that are decorated as "sensitive" in the API will not
11763// be included in the string output. The member name will be present, but the
11764// value will be replaced with "sensitive".
11765func (s UpdateAcceleratorAttributesOutput) GoString() string {
11766	return s.String()
11767}
11768
11769// SetAcceleratorAttributes sets the AcceleratorAttributes field's value.
11770func (s *UpdateAcceleratorAttributesOutput) SetAcceleratorAttributes(v *AcceleratorAttributes) *UpdateAcceleratorAttributesOutput {
11771	s.AcceleratorAttributes = v
11772	return s
11773}
11774
11775type UpdateAcceleratorInput struct {
11776	_ struct{} `type:"structure"`
11777
11778	// The Amazon Resource Name (ARN) of the accelerator to update.
11779	//
11780	// AcceleratorArn is a required field
11781	AcceleratorArn *string `type:"string" required:"true"`
11782
11783	// Indicates whether an accelerator is enabled. The value is true or false.
11784	// The default value is true.
11785	//
11786	// If the value is set to true, the accelerator cannot be deleted. If set to
11787	// false, the accelerator can be deleted.
11788	Enabled *bool `type:"boolean"`
11789
11790	// The IP address type, which must be IPv4.
11791	IpAddressType *string `type:"string" enum:"IpAddressType"`
11792
11793	// The name of the accelerator. The name can have a maximum of 32 characters,
11794	// must contain only alphanumeric characters or hyphens (-), and must not begin
11795	// or end with a hyphen.
11796	Name *string `type:"string"`
11797}
11798
11799// String returns the string representation.
11800//
11801// API parameter values that are decorated as "sensitive" in the API will not
11802// be included in the string output. The member name will be present, but the
11803// value will be replaced with "sensitive".
11804func (s UpdateAcceleratorInput) String() string {
11805	return awsutil.Prettify(s)
11806}
11807
11808// GoString returns the string representation.
11809//
11810// API parameter values that are decorated as "sensitive" in the API will not
11811// be included in the string output. The member name will be present, but the
11812// value will be replaced with "sensitive".
11813func (s UpdateAcceleratorInput) GoString() string {
11814	return s.String()
11815}
11816
11817// Validate inspects the fields of the type to determine if they are valid.
11818func (s *UpdateAcceleratorInput) Validate() error {
11819	invalidParams := request.ErrInvalidParams{Context: "UpdateAcceleratorInput"}
11820	if s.AcceleratorArn == nil {
11821		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
11822	}
11823
11824	if invalidParams.Len() > 0 {
11825		return invalidParams
11826	}
11827	return nil
11828}
11829
11830// SetAcceleratorArn sets the AcceleratorArn field's value.
11831func (s *UpdateAcceleratorInput) SetAcceleratorArn(v string) *UpdateAcceleratorInput {
11832	s.AcceleratorArn = &v
11833	return s
11834}
11835
11836// SetEnabled sets the Enabled field's value.
11837func (s *UpdateAcceleratorInput) SetEnabled(v bool) *UpdateAcceleratorInput {
11838	s.Enabled = &v
11839	return s
11840}
11841
11842// SetIpAddressType sets the IpAddressType field's value.
11843func (s *UpdateAcceleratorInput) SetIpAddressType(v string) *UpdateAcceleratorInput {
11844	s.IpAddressType = &v
11845	return s
11846}
11847
11848// SetName sets the Name field's value.
11849func (s *UpdateAcceleratorInput) SetName(v string) *UpdateAcceleratorInput {
11850	s.Name = &v
11851	return s
11852}
11853
11854type UpdateAcceleratorOutput struct {
11855	_ struct{} `type:"structure"`
11856
11857	// Information about the updated accelerator.
11858	Accelerator *Accelerator `type:"structure"`
11859}
11860
11861// String returns the string representation.
11862//
11863// API parameter values that are decorated as "sensitive" in the API will not
11864// be included in the string output. The member name will be present, but the
11865// value will be replaced with "sensitive".
11866func (s UpdateAcceleratorOutput) String() string {
11867	return awsutil.Prettify(s)
11868}
11869
11870// GoString returns the string representation.
11871//
11872// API parameter values that are decorated as "sensitive" in the API will not
11873// be included in the string output. The member name will be present, but the
11874// value will be replaced with "sensitive".
11875func (s UpdateAcceleratorOutput) GoString() string {
11876	return s.String()
11877}
11878
11879// SetAccelerator sets the Accelerator field's value.
11880func (s *UpdateAcceleratorOutput) SetAccelerator(v *Accelerator) *UpdateAcceleratorOutput {
11881	s.Accelerator = v
11882	return s
11883}
11884
11885type UpdateCustomRoutingAcceleratorAttributesInput struct {
11886	_ struct{} `type:"structure"`
11887
11888	// The Amazon Resource Name (ARN) of the custom routing accelerator to update
11889	// attributes for.
11890	//
11891	// AcceleratorArn is a required field
11892	AcceleratorArn *string `type:"string" required:"true"`
11893
11894	// Update whether flow logs are enabled. The default value is false. If the
11895	// value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.
11896	//
11897	// For more information, see Flow Logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html)
11898	// in the AWS Global Accelerator Developer Guide.
11899	FlowLogsEnabled *bool `type:"boolean"`
11900
11901	// The name of the Amazon S3 bucket for the flow logs. Attribute is required
11902	// if FlowLogsEnabled is true. The bucket must exist and have a bucket policy
11903	// that grants AWS Global Accelerator permission to write to the bucket.
11904	FlowLogsS3Bucket *string `type:"string"`
11905
11906	// Update the prefix for the location in the Amazon S3 bucket for the flow logs.
11907	// Attribute is required if FlowLogsEnabled is true.
11908	//
11909	// If you don’t specify a prefix, the flow logs are stored in the root of
11910	// the bucket. If you specify slash (/) for the S3 bucket prefix, the log file
11911	// bucket folder structure will include a double slash (//), like the following:
11912	//
11913	// DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id
11914	FlowLogsS3Prefix *string `type:"string"`
11915}
11916
11917// String returns the string representation.
11918//
11919// API parameter values that are decorated as "sensitive" in the API will not
11920// be included in the string output. The member name will be present, but the
11921// value will be replaced with "sensitive".
11922func (s UpdateCustomRoutingAcceleratorAttributesInput) String() string {
11923	return awsutil.Prettify(s)
11924}
11925
11926// GoString returns the string representation.
11927//
11928// API parameter values that are decorated as "sensitive" in the API will not
11929// be included in the string output. The member name will be present, but the
11930// value will be replaced with "sensitive".
11931func (s UpdateCustomRoutingAcceleratorAttributesInput) GoString() string {
11932	return s.String()
11933}
11934
11935// Validate inspects the fields of the type to determine if they are valid.
11936func (s *UpdateCustomRoutingAcceleratorAttributesInput) Validate() error {
11937	invalidParams := request.ErrInvalidParams{Context: "UpdateCustomRoutingAcceleratorAttributesInput"}
11938	if s.AcceleratorArn == nil {
11939		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
11940	}
11941
11942	if invalidParams.Len() > 0 {
11943		return invalidParams
11944	}
11945	return nil
11946}
11947
11948// SetAcceleratorArn sets the AcceleratorArn field's value.
11949func (s *UpdateCustomRoutingAcceleratorAttributesInput) SetAcceleratorArn(v string) *UpdateCustomRoutingAcceleratorAttributesInput {
11950	s.AcceleratorArn = &v
11951	return s
11952}
11953
11954// SetFlowLogsEnabled sets the FlowLogsEnabled field's value.
11955func (s *UpdateCustomRoutingAcceleratorAttributesInput) SetFlowLogsEnabled(v bool) *UpdateCustomRoutingAcceleratorAttributesInput {
11956	s.FlowLogsEnabled = &v
11957	return s
11958}
11959
11960// SetFlowLogsS3Bucket sets the FlowLogsS3Bucket field's value.
11961func (s *UpdateCustomRoutingAcceleratorAttributesInput) SetFlowLogsS3Bucket(v string) *UpdateCustomRoutingAcceleratorAttributesInput {
11962	s.FlowLogsS3Bucket = &v
11963	return s
11964}
11965
11966// SetFlowLogsS3Prefix sets the FlowLogsS3Prefix field's value.
11967func (s *UpdateCustomRoutingAcceleratorAttributesInput) SetFlowLogsS3Prefix(v string) *UpdateCustomRoutingAcceleratorAttributesInput {
11968	s.FlowLogsS3Prefix = &v
11969	return s
11970}
11971
11972type UpdateCustomRoutingAcceleratorAttributesOutput struct {
11973	_ struct{} `type:"structure"`
11974
11975	// Updated custom routing accelerator.
11976	AcceleratorAttributes *CustomRoutingAcceleratorAttributes `type:"structure"`
11977}
11978
11979// String returns the string representation.
11980//
11981// API parameter values that are decorated as "sensitive" in the API will not
11982// be included in the string output. The member name will be present, but the
11983// value will be replaced with "sensitive".
11984func (s UpdateCustomRoutingAcceleratorAttributesOutput) String() string {
11985	return awsutil.Prettify(s)
11986}
11987
11988// GoString returns the string representation.
11989//
11990// API parameter values that are decorated as "sensitive" in the API will not
11991// be included in the string output. The member name will be present, but the
11992// value will be replaced with "sensitive".
11993func (s UpdateCustomRoutingAcceleratorAttributesOutput) GoString() string {
11994	return s.String()
11995}
11996
11997// SetAcceleratorAttributes sets the AcceleratorAttributes field's value.
11998func (s *UpdateCustomRoutingAcceleratorAttributesOutput) SetAcceleratorAttributes(v *CustomRoutingAcceleratorAttributes) *UpdateCustomRoutingAcceleratorAttributesOutput {
11999	s.AcceleratorAttributes = v
12000	return s
12001}
12002
12003type UpdateCustomRoutingAcceleratorInput struct {
12004	_ struct{} `type:"structure"`
12005
12006	// The Amazon Resource Name (ARN) of the accelerator to update.
12007	//
12008	// AcceleratorArn is a required field
12009	AcceleratorArn *string `type:"string" required:"true"`
12010
12011	// Indicates whether an accelerator is enabled. The value is true or false.
12012	// The default value is true.
12013	//
12014	// If the value is set to true, the accelerator cannot be deleted. If set to
12015	// false, the accelerator can be deleted.
12016	Enabled *bool `type:"boolean"`
12017
12018	// The value for the address type must be IPv4.
12019	IpAddressType *string `type:"string" enum:"IpAddressType"`
12020
12021	// The name of the accelerator. The name can have a maximum of 32 characters,
12022	// must contain only alphanumeric characters or hyphens (-), and must not begin
12023	// or end with a hyphen.
12024	Name *string `type:"string"`
12025}
12026
12027// String returns the string representation.
12028//
12029// API parameter values that are decorated as "sensitive" in the API will not
12030// be included in the string output. The member name will be present, but the
12031// value will be replaced with "sensitive".
12032func (s UpdateCustomRoutingAcceleratorInput) String() string {
12033	return awsutil.Prettify(s)
12034}
12035
12036// GoString returns the string representation.
12037//
12038// API parameter values that are decorated as "sensitive" in the API will not
12039// be included in the string output. The member name will be present, but the
12040// value will be replaced with "sensitive".
12041func (s UpdateCustomRoutingAcceleratorInput) GoString() string {
12042	return s.String()
12043}
12044
12045// Validate inspects the fields of the type to determine if they are valid.
12046func (s *UpdateCustomRoutingAcceleratorInput) Validate() error {
12047	invalidParams := request.ErrInvalidParams{Context: "UpdateCustomRoutingAcceleratorInput"}
12048	if s.AcceleratorArn == nil {
12049		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
12050	}
12051
12052	if invalidParams.Len() > 0 {
12053		return invalidParams
12054	}
12055	return nil
12056}
12057
12058// SetAcceleratorArn sets the AcceleratorArn field's value.
12059func (s *UpdateCustomRoutingAcceleratorInput) SetAcceleratorArn(v string) *UpdateCustomRoutingAcceleratorInput {
12060	s.AcceleratorArn = &v
12061	return s
12062}
12063
12064// SetEnabled sets the Enabled field's value.
12065func (s *UpdateCustomRoutingAcceleratorInput) SetEnabled(v bool) *UpdateCustomRoutingAcceleratorInput {
12066	s.Enabled = &v
12067	return s
12068}
12069
12070// SetIpAddressType sets the IpAddressType field's value.
12071func (s *UpdateCustomRoutingAcceleratorInput) SetIpAddressType(v string) *UpdateCustomRoutingAcceleratorInput {
12072	s.IpAddressType = &v
12073	return s
12074}
12075
12076// SetName sets the Name field's value.
12077func (s *UpdateCustomRoutingAcceleratorInput) SetName(v string) *UpdateCustomRoutingAcceleratorInput {
12078	s.Name = &v
12079	return s
12080}
12081
12082type UpdateCustomRoutingAcceleratorOutput struct {
12083	_ struct{} `type:"structure"`
12084
12085	// Information about the updated custom routing accelerator.
12086	Accelerator *CustomRoutingAccelerator `type:"structure"`
12087}
12088
12089// String returns the string representation.
12090//
12091// API parameter values that are decorated as "sensitive" in the API will not
12092// be included in the string output. The member name will be present, but the
12093// value will be replaced with "sensitive".
12094func (s UpdateCustomRoutingAcceleratorOutput) String() string {
12095	return awsutil.Prettify(s)
12096}
12097
12098// GoString returns the string representation.
12099//
12100// API parameter values that are decorated as "sensitive" in the API will not
12101// be included in the string output. The member name will be present, but the
12102// value will be replaced with "sensitive".
12103func (s UpdateCustomRoutingAcceleratorOutput) GoString() string {
12104	return s.String()
12105}
12106
12107// SetAccelerator sets the Accelerator field's value.
12108func (s *UpdateCustomRoutingAcceleratorOutput) SetAccelerator(v *CustomRoutingAccelerator) *UpdateCustomRoutingAcceleratorOutput {
12109	s.Accelerator = v
12110	return s
12111}
12112
12113type UpdateCustomRoutingListenerInput struct {
12114	_ struct{} `type:"structure"`
12115
12116	// The Amazon Resource Name (ARN) of the listener to update.
12117	//
12118	// ListenerArn is a required field
12119	ListenerArn *string `type:"string" required:"true"`
12120
12121	// The updated port range to support for connections from clients to your accelerator.
12122	// If you remove ports that are currently being used by a subnet endpoint, the
12123	// call fails.
12124	//
12125	// Separately, you set port ranges for endpoints. For more information, see
12126	// About endpoints for custom routing accelerators (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html).
12127	//
12128	// PortRanges is a required field
12129	PortRanges []*PortRange `min:"1" type:"list" required:"true"`
12130}
12131
12132// String returns the string representation.
12133//
12134// API parameter values that are decorated as "sensitive" in the API will not
12135// be included in the string output. The member name will be present, but the
12136// value will be replaced with "sensitive".
12137func (s UpdateCustomRoutingListenerInput) String() string {
12138	return awsutil.Prettify(s)
12139}
12140
12141// GoString returns the string representation.
12142//
12143// API parameter values that are decorated as "sensitive" in the API will not
12144// be included in the string output. The member name will be present, but the
12145// value will be replaced with "sensitive".
12146func (s UpdateCustomRoutingListenerInput) GoString() string {
12147	return s.String()
12148}
12149
12150// Validate inspects the fields of the type to determine if they are valid.
12151func (s *UpdateCustomRoutingListenerInput) Validate() error {
12152	invalidParams := request.ErrInvalidParams{Context: "UpdateCustomRoutingListenerInput"}
12153	if s.ListenerArn == nil {
12154		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
12155	}
12156	if s.PortRanges == nil {
12157		invalidParams.Add(request.NewErrParamRequired("PortRanges"))
12158	}
12159	if s.PortRanges != nil && len(s.PortRanges) < 1 {
12160		invalidParams.Add(request.NewErrParamMinLen("PortRanges", 1))
12161	}
12162	if s.PortRanges != nil {
12163		for i, v := range s.PortRanges {
12164			if v == nil {
12165				continue
12166			}
12167			if err := v.Validate(); err != nil {
12168				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortRanges", i), err.(request.ErrInvalidParams))
12169			}
12170		}
12171	}
12172
12173	if invalidParams.Len() > 0 {
12174		return invalidParams
12175	}
12176	return nil
12177}
12178
12179// SetListenerArn sets the ListenerArn field's value.
12180func (s *UpdateCustomRoutingListenerInput) SetListenerArn(v string) *UpdateCustomRoutingListenerInput {
12181	s.ListenerArn = &v
12182	return s
12183}
12184
12185// SetPortRanges sets the PortRanges field's value.
12186func (s *UpdateCustomRoutingListenerInput) SetPortRanges(v []*PortRange) *UpdateCustomRoutingListenerInput {
12187	s.PortRanges = v
12188	return s
12189}
12190
12191type UpdateCustomRoutingListenerOutput struct {
12192	_ struct{} `type:"structure"`
12193
12194	// Information for the updated listener for a custom routing accelerator.
12195	Listener *CustomRoutingListener `type:"structure"`
12196}
12197
12198// String returns the string representation.
12199//
12200// API parameter values that are decorated as "sensitive" in the API will not
12201// be included in the string output. The member name will be present, but the
12202// value will be replaced with "sensitive".
12203func (s UpdateCustomRoutingListenerOutput) String() string {
12204	return awsutil.Prettify(s)
12205}
12206
12207// GoString returns the string representation.
12208//
12209// API parameter values that are decorated as "sensitive" in the API will not
12210// be included in the string output. The member name will be present, but the
12211// value will be replaced with "sensitive".
12212func (s UpdateCustomRoutingListenerOutput) GoString() string {
12213	return s.String()
12214}
12215
12216// SetListener sets the Listener field's value.
12217func (s *UpdateCustomRoutingListenerOutput) SetListener(v *CustomRoutingListener) *UpdateCustomRoutingListenerOutput {
12218	s.Listener = v
12219	return s
12220}
12221
12222type UpdateEndpointGroupInput struct {
12223	_ struct{} `type:"structure"`
12224
12225	// The list of endpoint objects. A resource must be valid and active when you
12226	// add it as an endpoint.
12227	EndpointConfigurations []*EndpointConfiguration `type:"list"`
12228
12229	// The Amazon Resource Name (ARN) of the endpoint group.
12230	//
12231	// EndpointGroupArn is a required field
12232	EndpointGroupArn *string `type:"string" required:"true"`
12233
12234	// The time—10 seconds or 30 seconds—between each health check for an endpoint.
12235	// The default value is 30.
12236	HealthCheckIntervalSeconds *int64 `min:"10" type:"integer"`
12237
12238	// If the protocol is HTTP/S, then this specifies the path that is the destination
12239	// for health check targets. The default value is slash (/).
12240	HealthCheckPath *string `type:"string"`
12241
12242	// The port that AWS Global Accelerator uses to check the health of endpoints
12243	// that are part of this endpoint group. The default port is the listener port
12244	// that this endpoint group is associated with. If the listener port is a list
12245	// of ports, Global Accelerator uses the first port in the list.
12246	HealthCheckPort *int64 `min:"1" type:"integer"`
12247
12248	// The protocol that AWS Global Accelerator uses to check the health of endpoints
12249	// that are part of this endpoint group. The default value is TCP.
12250	HealthCheckProtocol *string `type:"string" enum:"HealthCheckProtocol"`
12251
12252	// Override specific listener ports used to route traffic to endpoints that
12253	// are part of this endpoint group. For example, you can create a port override
12254	// in which the listener receives user traffic on ports 80 and 443, but your
12255	// accelerator routes that traffic to ports 1080 and 1443, respectively, on
12256	// the endpoints.
12257	//
12258	// For more information, see Port overrides (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html)
12259	// in the AWS Global Accelerator Developer Guide.
12260	PortOverrides []*PortOverride `type:"list"`
12261
12262	// The number of consecutive health checks required to set the state of a healthy
12263	// endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default
12264	// value is 3.
12265	ThresholdCount *int64 `min:"1" type:"integer"`
12266
12267	// The percentage of traffic to send to an AWS Region. Additional traffic is
12268	// distributed to other endpoint groups for this listener.
12269	//
12270	// Use this action to increase (dial up) or decrease (dial down) traffic to
12271	// a specific Region. The percentage is applied to the traffic that would otherwise
12272	// have been routed to the Region based on optimal routing.
12273	//
12274	// The default value is 100.
12275	TrafficDialPercentage *float64 `type:"float"`
12276}
12277
12278// String returns the string representation.
12279//
12280// API parameter values that are decorated as "sensitive" in the API will not
12281// be included in the string output. The member name will be present, but the
12282// value will be replaced with "sensitive".
12283func (s UpdateEndpointGroupInput) String() string {
12284	return awsutil.Prettify(s)
12285}
12286
12287// GoString returns the string representation.
12288//
12289// API parameter values that are decorated as "sensitive" in the API will not
12290// be included in the string output. The member name will be present, but the
12291// value will be replaced with "sensitive".
12292func (s UpdateEndpointGroupInput) GoString() string {
12293	return s.String()
12294}
12295
12296// Validate inspects the fields of the type to determine if they are valid.
12297func (s *UpdateEndpointGroupInput) Validate() error {
12298	invalidParams := request.ErrInvalidParams{Context: "UpdateEndpointGroupInput"}
12299	if s.EndpointGroupArn == nil {
12300		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
12301	}
12302	if s.HealthCheckIntervalSeconds != nil && *s.HealthCheckIntervalSeconds < 10 {
12303		invalidParams.Add(request.NewErrParamMinValue("HealthCheckIntervalSeconds", 10))
12304	}
12305	if s.HealthCheckPort != nil && *s.HealthCheckPort < 1 {
12306		invalidParams.Add(request.NewErrParamMinValue("HealthCheckPort", 1))
12307	}
12308	if s.ThresholdCount != nil && *s.ThresholdCount < 1 {
12309		invalidParams.Add(request.NewErrParamMinValue("ThresholdCount", 1))
12310	}
12311	if s.PortOverrides != nil {
12312		for i, v := range s.PortOverrides {
12313			if v == nil {
12314				continue
12315			}
12316			if err := v.Validate(); err != nil {
12317				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortOverrides", i), err.(request.ErrInvalidParams))
12318			}
12319		}
12320	}
12321
12322	if invalidParams.Len() > 0 {
12323		return invalidParams
12324	}
12325	return nil
12326}
12327
12328// SetEndpointConfigurations sets the EndpointConfigurations field's value.
12329func (s *UpdateEndpointGroupInput) SetEndpointConfigurations(v []*EndpointConfiguration) *UpdateEndpointGroupInput {
12330	s.EndpointConfigurations = v
12331	return s
12332}
12333
12334// SetEndpointGroupArn sets the EndpointGroupArn field's value.
12335func (s *UpdateEndpointGroupInput) SetEndpointGroupArn(v string) *UpdateEndpointGroupInput {
12336	s.EndpointGroupArn = &v
12337	return s
12338}
12339
12340// SetHealthCheckIntervalSeconds sets the HealthCheckIntervalSeconds field's value.
12341func (s *UpdateEndpointGroupInput) SetHealthCheckIntervalSeconds(v int64) *UpdateEndpointGroupInput {
12342	s.HealthCheckIntervalSeconds = &v
12343	return s
12344}
12345
12346// SetHealthCheckPath sets the HealthCheckPath field's value.
12347func (s *UpdateEndpointGroupInput) SetHealthCheckPath(v string) *UpdateEndpointGroupInput {
12348	s.HealthCheckPath = &v
12349	return s
12350}
12351
12352// SetHealthCheckPort sets the HealthCheckPort field's value.
12353func (s *UpdateEndpointGroupInput) SetHealthCheckPort(v int64) *UpdateEndpointGroupInput {
12354	s.HealthCheckPort = &v
12355	return s
12356}
12357
12358// SetHealthCheckProtocol sets the HealthCheckProtocol field's value.
12359func (s *UpdateEndpointGroupInput) SetHealthCheckProtocol(v string) *UpdateEndpointGroupInput {
12360	s.HealthCheckProtocol = &v
12361	return s
12362}
12363
12364// SetPortOverrides sets the PortOverrides field's value.
12365func (s *UpdateEndpointGroupInput) SetPortOverrides(v []*PortOverride) *UpdateEndpointGroupInput {
12366	s.PortOverrides = v
12367	return s
12368}
12369
12370// SetThresholdCount sets the ThresholdCount field's value.
12371func (s *UpdateEndpointGroupInput) SetThresholdCount(v int64) *UpdateEndpointGroupInput {
12372	s.ThresholdCount = &v
12373	return s
12374}
12375
12376// SetTrafficDialPercentage sets the TrafficDialPercentage field's value.
12377func (s *UpdateEndpointGroupInput) SetTrafficDialPercentage(v float64) *UpdateEndpointGroupInput {
12378	s.TrafficDialPercentage = &v
12379	return s
12380}
12381
12382type UpdateEndpointGroupOutput struct {
12383	_ struct{} `type:"structure"`
12384
12385	// The information about the endpoint group that was updated.
12386	EndpointGroup *EndpointGroup `type:"structure"`
12387}
12388
12389// String returns the string representation.
12390//
12391// API parameter values that are decorated as "sensitive" in the API will not
12392// be included in the string output. The member name will be present, but the
12393// value will be replaced with "sensitive".
12394func (s UpdateEndpointGroupOutput) String() string {
12395	return awsutil.Prettify(s)
12396}
12397
12398// GoString returns the string representation.
12399//
12400// API parameter values that are decorated as "sensitive" in the API will not
12401// be included in the string output. The member name will be present, but the
12402// value will be replaced with "sensitive".
12403func (s UpdateEndpointGroupOutput) GoString() string {
12404	return s.String()
12405}
12406
12407// SetEndpointGroup sets the EndpointGroup field's value.
12408func (s *UpdateEndpointGroupOutput) SetEndpointGroup(v *EndpointGroup) *UpdateEndpointGroupOutput {
12409	s.EndpointGroup = v
12410	return s
12411}
12412
12413type UpdateListenerInput struct {
12414	_ struct{} `type:"structure"`
12415
12416	// Client affinity lets you direct all requests from a user to the same endpoint,
12417	// if you have stateful applications, regardless of the port and protocol of
12418	// the client request. Client affinity gives you control over whether to always
12419	// route each client to the same specific endpoint.
12420	//
12421	// AWS Global Accelerator uses a consistent-flow hashing algorithm to choose
12422	// the optimal endpoint for a connection. If client affinity is NONE, Global
12423	// Accelerator uses the "five-tuple" (5-tuple) properties—source IP address,
12424	// source port, destination IP address, destination port, and protocol—to
12425	// select the hash value, and then chooses the best endpoint. However, with
12426	// this setting, if someone uses different ports to connect to Global Accelerator,
12427	// their connections might not be always routed to the same endpoint because
12428	// the hash value changes.
12429	//
12430	// If you want a given client to always be routed to the same endpoint, set
12431	// client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting,
12432	// Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client)
12433	// IP address and destination IP address—to select the hash value.
12434	//
12435	// The default value is NONE.
12436	ClientAffinity *string `type:"string" enum:"ClientAffinity"`
12437
12438	// The Amazon Resource Name (ARN) of the listener to update.
12439	//
12440	// ListenerArn is a required field
12441	ListenerArn *string `type:"string" required:"true"`
12442
12443	// The updated list of port ranges for the connections from clients to the accelerator.
12444	PortRanges []*PortRange `min:"1" type:"list"`
12445
12446	// The updated protocol for the connections from clients to the accelerator.
12447	Protocol *string `type:"string" enum:"Protocol"`
12448}
12449
12450// String returns the string representation.
12451//
12452// API parameter values that are decorated as "sensitive" in the API will not
12453// be included in the string output. The member name will be present, but the
12454// value will be replaced with "sensitive".
12455func (s UpdateListenerInput) String() string {
12456	return awsutil.Prettify(s)
12457}
12458
12459// GoString returns the string representation.
12460//
12461// API parameter values that are decorated as "sensitive" in the API will not
12462// be included in the string output. The member name will be present, but the
12463// value will be replaced with "sensitive".
12464func (s UpdateListenerInput) GoString() string {
12465	return s.String()
12466}
12467
12468// Validate inspects the fields of the type to determine if they are valid.
12469func (s *UpdateListenerInput) Validate() error {
12470	invalidParams := request.ErrInvalidParams{Context: "UpdateListenerInput"}
12471	if s.ListenerArn == nil {
12472		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
12473	}
12474	if s.PortRanges != nil && len(s.PortRanges) < 1 {
12475		invalidParams.Add(request.NewErrParamMinLen("PortRanges", 1))
12476	}
12477	if s.PortRanges != nil {
12478		for i, v := range s.PortRanges {
12479			if v == nil {
12480				continue
12481			}
12482			if err := v.Validate(); err != nil {
12483				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortRanges", i), err.(request.ErrInvalidParams))
12484			}
12485		}
12486	}
12487
12488	if invalidParams.Len() > 0 {
12489		return invalidParams
12490	}
12491	return nil
12492}
12493
12494// SetClientAffinity sets the ClientAffinity field's value.
12495func (s *UpdateListenerInput) SetClientAffinity(v string) *UpdateListenerInput {
12496	s.ClientAffinity = &v
12497	return s
12498}
12499
12500// SetListenerArn sets the ListenerArn field's value.
12501func (s *UpdateListenerInput) SetListenerArn(v string) *UpdateListenerInput {
12502	s.ListenerArn = &v
12503	return s
12504}
12505
12506// SetPortRanges sets the PortRanges field's value.
12507func (s *UpdateListenerInput) SetPortRanges(v []*PortRange) *UpdateListenerInput {
12508	s.PortRanges = v
12509	return s
12510}
12511
12512// SetProtocol sets the Protocol field's value.
12513func (s *UpdateListenerInput) SetProtocol(v string) *UpdateListenerInput {
12514	s.Protocol = &v
12515	return s
12516}
12517
12518type UpdateListenerOutput struct {
12519	_ struct{} `type:"structure"`
12520
12521	// Information for the updated listener.
12522	Listener *Listener `type:"structure"`
12523}
12524
12525// String returns the string representation.
12526//
12527// API parameter values that are decorated as "sensitive" in the API will not
12528// be included in the string output. The member name will be present, but the
12529// value will be replaced with "sensitive".
12530func (s UpdateListenerOutput) String() string {
12531	return awsutil.Prettify(s)
12532}
12533
12534// GoString returns the string representation.
12535//
12536// API parameter values that are decorated as "sensitive" in the API will not
12537// be included in the string output. The member name will be present, but the
12538// value will be replaced with "sensitive".
12539func (s UpdateListenerOutput) GoString() string {
12540	return s.String()
12541}
12542
12543// SetListener sets the Listener field's value.
12544func (s *UpdateListenerOutput) SetListener(v *Listener) *UpdateListenerOutput {
12545	s.Listener = v
12546	return s
12547}
12548
12549type WithdrawByoipCidrInput struct {
12550	_ struct{} `type:"structure"`
12551
12552	// The address range, in CIDR notation.
12553	//
12554	// Cidr is a required field
12555	Cidr *string `type:"string" required:"true"`
12556}
12557
12558// String returns the string representation.
12559//
12560// API parameter values that are decorated as "sensitive" in the API will not
12561// be included in the string output. The member name will be present, but the
12562// value will be replaced with "sensitive".
12563func (s WithdrawByoipCidrInput) String() string {
12564	return awsutil.Prettify(s)
12565}
12566
12567// GoString returns the string representation.
12568//
12569// API parameter values that are decorated as "sensitive" in the API will not
12570// be included in the string output. The member name will be present, but the
12571// value will be replaced with "sensitive".
12572func (s WithdrawByoipCidrInput) GoString() string {
12573	return s.String()
12574}
12575
12576// Validate inspects the fields of the type to determine if they are valid.
12577func (s *WithdrawByoipCidrInput) Validate() error {
12578	invalidParams := request.ErrInvalidParams{Context: "WithdrawByoipCidrInput"}
12579	if s.Cidr == nil {
12580		invalidParams.Add(request.NewErrParamRequired("Cidr"))
12581	}
12582
12583	if invalidParams.Len() > 0 {
12584		return invalidParams
12585	}
12586	return nil
12587}
12588
12589// SetCidr sets the Cidr field's value.
12590func (s *WithdrawByoipCidrInput) SetCidr(v string) *WithdrawByoipCidrInput {
12591	s.Cidr = &v
12592	return s
12593}
12594
12595type WithdrawByoipCidrOutput struct {
12596	_ struct{} `type:"structure"`
12597
12598	// Information about the address pool.
12599	ByoipCidr *ByoipCidr `type:"structure"`
12600}
12601
12602// String returns the string representation.
12603//
12604// API parameter values that are decorated as "sensitive" in the API will not
12605// be included in the string output. The member name will be present, but the
12606// value will be replaced with "sensitive".
12607func (s WithdrawByoipCidrOutput) String() string {
12608	return awsutil.Prettify(s)
12609}
12610
12611// GoString returns the string representation.
12612//
12613// API parameter values that are decorated as "sensitive" in the API will not
12614// be included in the string output. The member name will be present, but the
12615// value will be replaced with "sensitive".
12616func (s WithdrawByoipCidrOutput) GoString() string {
12617	return s.String()
12618}
12619
12620// SetByoipCidr sets the ByoipCidr field's value.
12621func (s *WithdrawByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *WithdrawByoipCidrOutput {
12622	s.ByoipCidr = v
12623	return s
12624}
12625
12626const (
12627	// AcceleratorStatusDeployed is a AcceleratorStatus enum value
12628	AcceleratorStatusDeployed = "DEPLOYED"
12629
12630	// AcceleratorStatusInProgress is a AcceleratorStatus enum value
12631	AcceleratorStatusInProgress = "IN_PROGRESS"
12632)
12633
12634// AcceleratorStatus_Values returns all elements of the AcceleratorStatus enum
12635func AcceleratorStatus_Values() []string {
12636	return []string{
12637		AcceleratorStatusDeployed,
12638		AcceleratorStatusInProgress,
12639	}
12640}
12641
12642const (
12643	// ByoipCidrStatePendingProvisioning is a ByoipCidrState enum value
12644	ByoipCidrStatePendingProvisioning = "PENDING_PROVISIONING"
12645
12646	// ByoipCidrStateReady is a ByoipCidrState enum value
12647	ByoipCidrStateReady = "READY"
12648
12649	// ByoipCidrStatePendingAdvertising is a ByoipCidrState enum value
12650	ByoipCidrStatePendingAdvertising = "PENDING_ADVERTISING"
12651
12652	// ByoipCidrStateAdvertising is a ByoipCidrState enum value
12653	ByoipCidrStateAdvertising = "ADVERTISING"
12654
12655	// ByoipCidrStatePendingWithdrawing is a ByoipCidrState enum value
12656	ByoipCidrStatePendingWithdrawing = "PENDING_WITHDRAWING"
12657
12658	// ByoipCidrStatePendingDeprovisioning is a ByoipCidrState enum value
12659	ByoipCidrStatePendingDeprovisioning = "PENDING_DEPROVISIONING"
12660
12661	// ByoipCidrStateDeprovisioned is a ByoipCidrState enum value
12662	ByoipCidrStateDeprovisioned = "DEPROVISIONED"
12663
12664	// ByoipCidrStateFailedProvision is a ByoipCidrState enum value
12665	ByoipCidrStateFailedProvision = "FAILED_PROVISION"
12666
12667	// ByoipCidrStateFailedAdvertising is a ByoipCidrState enum value
12668	ByoipCidrStateFailedAdvertising = "FAILED_ADVERTISING"
12669
12670	// ByoipCidrStateFailedWithdraw is a ByoipCidrState enum value
12671	ByoipCidrStateFailedWithdraw = "FAILED_WITHDRAW"
12672
12673	// ByoipCidrStateFailedDeprovision is a ByoipCidrState enum value
12674	ByoipCidrStateFailedDeprovision = "FAILED_DEPROVISION"
12675)
12676
12677// ByoipCidrState_Values returns all elements of the ByoipCidrState enum
12678func ByoipCidrState_Values() []string {
12679	return []string{
12680		ByoipCidrStatePendingProvisioning,
12681		ByoipCidrStateReady,
12682		ByoipCidrStatePendingAdvertising,
12683		ByoipCidrStateAdvertising,
12684		ByoipCidrStatePendingWithdrawing,
12685		ByoipCidrStatePendingDeprovisioning,
12686		ByoipCidrStateDeprovisioned,
12687		ByoipCidrStateFailedProvision,
12688		ByoipCidrStateFailedAdvertising,
12689		ByoipCidrStateFailedWithdraw,
12690		ByoipCidrStateFailedDeprovision,
12691	}
12692}
12693
12694const (
12695	// ClientAffinityNone is a ClientAffinity enum value
12696	ClientAffinityNone = "NONE"
12697
12698	// ClientAffinitySourceIp is a ClientAffinity enum value
12699	ClientAffinitySourceIp = "SOURCE_IP"
12700)
12701
12702// ClientAffinity_Values returns all elements of the ClientAffinity enum
12703func ClientAffinity_Values() []string {
12704	return []string{
12705		ClientAffinityNone,
12706		ClientAffinitySourceIp,
12707	}
12708}
12709
12710const (
12711	// CustomRoutingAcceleratorStatusDeployed is a CustomRoutingAcceleratorStatus enum value
12712	CustomRoutingAcceleratorStatusDeployed = "DEPLOYED"
12713
12714	// CustomRoutingAcceleratorStatusInProgress is a CustomRoutingAcceleratorStatus enum value
12715	CustomRoutingAcceleratorStatusInProgress = "IN_PROGRESS"
12716)
12717
12718// CustomRoutingAcceleratorStatus_Values returns all elements of the CustomRoutingAcceleratorStatus enum
12719func CustomRoutingAcceleratorStatus_Values() []string {
12720	return []string{
12721		CustomRoutingAcceleratorStatusDeployed,
12722		CustomRoutingAcceleratorStatusInProgress,
12723	}
12724}
12725
12726const (
12727	// CustomRoutingDestinationTrafficStateAllow is a CustomRoutingDestinationTrafficState enum value
12728	CustomRoutingDestinationTrafficStateAllow = "ALLOW"
12729
12730	// CustomRoutingDestinationTrafficStateDeny is a CustomRoutingDestinationTrafficState enum value
12731	CustomRoutingDestinationTrafficStateDeny = "DENY"
12732)
12733
12734// CustomRoutingDestinationTrafficState_Values returns all elements of the CustomRoutingDestinationTrafficState enum
12735func CustomRoutingDestinationTrafficState_Values() []string {
12736	return []string{
12737		CustomRoutingDestinationTrafficStateAllow,
12738		CustomRoutingDestinationTrafficStateDeny,
12739	}
12740}
12741
12742const (
12743	// CustomRoutingProtocolTcp is a CustomRoutingProtocol enum value
12744	CustomRoutingProtocolTcp = "TCP"
12745
12746	// CustomRoutingProtocolUdp is a CustomRoutingProtocol enum value
12747	CustomRoutingProtocolUdp = "UDP"
12748)
12749
12750// CustomRoutingProtocol_Values returns all elements of the CustomRoutingProtocol enum
12751func CustomRoutingProtocol_Values() []string {
12752	return []string{
12753		CustomRoutingProtocolTcp,
12754		CustomRoutingProtocolUdp,
12755	}
12756}
12757
12758const (
12759	// HealthCheckProtocolTcp is a HealthCheckProtocol enum value
12760	HealthCheckProtocolTcp = "TCP"
12761
12762	// HealthCheckProtocolHttp is a HealthCheckProtocol enum value
12763	HealthCheckProtocolHttp = "HTTP"
12764
12765	// HealthCheckProtocolHttps is a HealthCheckProtocol enum value
12766	HealthCheckProtocolHttps = "HTTPS"
12767)
12768
12769// HealthCheckProtocol_Values returns all elements of the HealthCheckProtocol enum
12770func HealthCheckProtocol_Values() []string {
12771	return []string{
12772		HealthCheckProtocolTcp,
12773		HealthCheckProtocolHttp,
12774		HealthCheckProtocolHttps,
12775	}
12776}
12777
12778const (
12779	// HealthStateInitial is a HealthState enum value
12780	HealthStateInitial = "INITIAL"
12781
12782	// HealthStateHealthy is a HealthState enum value
12783	HealthStateHealthy = "HEALTHY"
12784
12785	// HealthStateUnhealthy is a HealthState enum value
12786	HealthStateUnhealthy = "UNHEALTHY"
12787)
12788
12789// HealthState_Values returns all elements of the HealthState enum
12790func HealthState_Values() []string {
12791	return []string{
12792		HealthStateInitial,
12793		HealthStateHealthy,
12794		HealthStateUnhealthy,
12795	}
12796}
12797
12798const (
12799	// IpAddressTypeIpv4 is a IpAddressType enum value
12800	IpAddressTypeIpv4 = "IPV4"
12801)
12802
12803// IpAddressType_Values returns all elements of the IpAddressType enum
12804func IpAddressType_Values() []string {
12805	return []string{
12806		IpAddressTypeIpv4,
12807	}
12808}
12809
12810const (
12811	// ProtocolTcp is a Protocol enum value
12812	ProtocolTcp = "TCP"
12813
12814	// ProtocolUdp is a Protocol enum value
12815	ProtocolUdp = "UDP"
12816)
12817
12818// Protocol_Values returns all elements of the Protocol enum
12819func Protocol_Values() []string {
12820	return []string{
12821		ProtocolTcp,
12822		ProtocolUdp,
12823	}
12824}
12825