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// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
468// with awserr.Error's Code and Message methods to get detailed information about
469// the error.
470//
471// See the AWS API reference guide for AWS Global Accelerator's
472// API operation CreateCustomRoutingAccelerator for usage and error information.
473//
474// Returned Error Types:
475//   * InternalServiceErrorException
476//   There was an internal error for AWS Global Accelerator.
477//
478//   * InvalidArgumentException
479//   An argument that you specified is invalid.
480//
481//   * LimitExceededException
482//   Processing your request would cause you to exceed an AWS Global Accelerator
483//   limit.
484//
485//   * AccessDeniedException
486//   You don't have access permission.
487//
488// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateCustomRoutingAccelerator
489func (c *GlobalAccelerator) CreateCustomRoutingAccelerator(input *CreateCustomRoutingAcceleratorInput) (*CreateCustomRoutingAcceleratorOutput, error) {
490	req, out := c.CreateCustomRoutingAcceleratorRequest(input)
491	return out, req.Send()
492}
493
494// CreateCustomRoutingAcceleratorWithContext is the same as CreateCustomRoutingAccelerator with the addition of
495// the ability to pass a context and additional request options.
496//
497// See CreateCustomRoutingAccelerator for details on how to use this API operation.
498//
499// The context must be non-nil and will be used for request cancellation. If
500// the context is nil a panic will occur. In the future the SDK may create
501// sub-contexts for http.Requests. See https://golang.org/pkg/context/
502// for more information on using Contexts.
503func (c *GlobalAccelerator) CreateCustomRoutingAcceleratorWithContext(ctx aws.Context, input *CreateCustomRoutingAcceleratorInput, opts ...request.Option) (*CreateCustomRoutingAcceleratorOutput, error) {
504	req, out := c.CreateCustomRoutingAcceleratorRequest(input)
505	req.SetContext(ctx)
506	req.ApplyOptions(opts...)
507	return out, req.Send()
508}
509
510const opCreateCustomRoutingEndpointGroup = "CreateCustomRoutingEndpointGroup"
511
512// CreateCustomRoutingEndpointGroupRequest generates a "aws/request.Request" representing the
513// client's request for the CreateCustomRoutingEndpointGroup operation. The "output" return
514// value will be populated with the request's response once the request completes
515// successfully.
516//
517// Use "Send" method on the returned Request to send the API call to the service.
518// the "output" return value is not valid until after Send returns without error.
519//
520// See CreateCustomRoutingEndpointGroup for more information on using the CreateCustomRoutingEndpointGroup
521// API call, and error handling.
522//
523// This method is useful when you want to inject custom logic or configuration
524// into the SDK's request lifecycle. Such as custom headers, or retry logic.
525//
526//
527//    // Example sending a request using the CreateCustomRoutingEndpointGroupRequest method.
528//    req, resp := client.CreateCustomRoutingEndpointGroupRequest(params)
529//
530//    err := req.Send()
531//    if err == nil { // resp is now filled
532//        fmt.Println(resp)
533//    }
534//
535// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateCustomRoutingEndpointGroup
536func (c *GlobalAccelerator) CreateCustomRoutingEndpointGroupRequest(input *CreateCustomRoutingEndpointGroupInput) (req *request.Request, output *CreateCustomRoutingEndpointGroupOutput) {
537	op := &request.Operation{
538		Name:       opCreateCustomRoutingEndpointGroup,
539		HTTPMethod: "POST",
540		HTTPPath:   "/",
541	}
542
543	if input == nil {
544		input = &CreateCustomRoutingEndpointGroupInput{}
545	}
546
547	output = &CreateCustomRoutingEndpointGroupOutput{}
548	req = c.newRequest(op, input, output)
549	return
550}
551
552// CreateCustomRoutingEndpointGroup API operation for AWS Global Accelerator.
553//
554// Create an endpoint group for the specified listener for a custom routing
555// accelerator. An endpoint group is a collection of endpoints in one AWS Region.
556//
557// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
558// with awserr.Error's Code and Message methods to get detailed information about
559// the error.
560//
561// See the AWS API reference guide for AWS Global Accelerator's
562// API operation CreateCustomRoutingEndpointGroup for usage and error information.
563//
564// Returned Error Types:
565//   * AcceleratorNotFoundException
566//   The accelerator that you specified doesn't exist.
567//
568//   * EndpointGroupAlreadyExistsException
569//   The endpoint group that you specified already exists.
570//
571//   * ListenerNotFoundException
572//   The listener that you specified doesn't exist.
573//
574//   * InternalServiceErrorException
575//   There was an internal error for AWS Global Accelerator.
576//
577//   * InvalidArgumentException
578//   An argument that you specified is invalid.
579//
580//   * InvalidPortRangeException
581//   The port numbers that you specified are not valid numbers or are not unique
582//   for this accelerator.
583//
584//   * LimitExceededException
585//   Processing your request would cause you to exceed an AWS Global Accelerator
586//   limit.
587//
588//   * AccessDeniedException
589//   You don't have access permission.
590//
591// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateCustomRoutingEndpointGroup
592func (c *GlobalAccelerator) CreateCustomRoutingEndpointGroup(input *CreateCustomRoutingEndpointGroupInput) (*CreateCustomRoutingEndpointGroupOutput, error) {
593	req, out := c.CreateCustomRoutingEndpointGroupRequest(input)
594	return out, req.Send()
595}
596
597// CreateCustomRoutingEndpointGroupWithContext is the same as CreateCustomRoutingEndpointGroup with the addition of
598// the ability to pass a context and additional request options.
599//
600// See CreateCustomRoutingEndpointGroup for details on how to use this API operation.
601//
602// The context must be non-nil and will be used for request cancellation. If
603// the context is nil a panic will occur. In the future the SDK may create
604// sub-contexts for http.Requests. See https://golang.org/pkg/context/
605// for more information on using Contexts.
606func (c *GlobalAccelerator) CreateCustomRoutingEndpointGroupWithContext(ctx aws.Context, input *CreateCustomRoutingEndpointGroupInput, opts ...request.Option) (*CreateCustomRoutingEndpointGroupOutput, error) {
607	req, out := c.CreateCustomRoutingEndpointGroupRequest(input)
608	req.SetContext(ctx)
609	req.ApplyOptions(opts...)
610	return out, req.Send()
611}
612
613const opCreateCustomRoutingListener = "CreateCustomRoutingListener"
614
615// CreateCustomRoutingListenerRequest generates a "aws/request.Request" representing the
616// client's request for the CreateCustomRoutingListener operation. The "output" return
617// value will be populated with the request's response once the request completes
618// successfully.
619//
620// Use "Send" method on the returned Request to send the API call to the service.
621// the "output" return value is not valid until after Send returns without error.
622//
623// See CreateCustomRoutingListener for more information on using the CreateCustomRoutingListener
624// API call, and error handling.
625//
626// This method is useful when you want to inject custom logic or configuration
627// into the SDK's request lifecycle. Such as custom headers, or retry logic.
628//
629//
630//    // Example sending a request using the CreateCustomRoutingListenerRequest method.
631//    req, resp := client.CreateCustomRoutingListenerRequest(params)
632//
633//    err := req.Send()
634//    if err == nil { // resp is now filled
635//        fmt.Println(resp)
636//    }
637//
638// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateCustomRoutingListener
639func (c *GlobalAccelerator) CreateCustomRoutingListenerRequest(input *CreateCustomRoutingListenerInput) (req *request.Request, output *CreateCustomRoutingListenerOutput) {
640	op := &request.Operation{
641		Name:       opCreateCustomRoutingListener,
642		HTTPMethod: "POST",
643		HTTPPath:   "/",
644	}
645
646	if input == nil {
647		input = &CreateCustomRoutingListenerInput{}
648	}
649
650	output = &CreateCustomRoutingListenerOutput{}
651	req = c.newRequest(op, input, output)
652	return
653}
654
655// CreateCustomRoutingListener API operation for AWS Global Accelerator.
656//
657// Create a listener to process inbound connections from clients to a custom
658// routing accelerator. Connections arrive to assigned static IP addresses on
659// the port range that you specify.
660//
661// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
662// with awserr.Error's Code and Message methods to get detailed information about
663// the error.
664//
665// See the AWS API reference guide for AWS Global Accelerator's
666// API operation CreateCustomRoutingListener for usage and error information.
667//
668// Returned Error Types:
669//   * InvalidArgumentException
670//   An argument that you specified is invalid.
671//
672//   * AcceleratorNotFoundException
673//   The accelerator that you specified doesn't exist.
674//
675//   * InvalidPortRangeException
676//   The port numbers that you specified are not valid numbers or are not unique
677//   for this accelerator.
678//
679//   * InternalServiceErrorException
680//   There was an internal error for AWS Global Accelerator.
681//
682//   * LimitExceededException
683//   Processing your request would cause you to exceed an AWS Global Accelerator
684//   limit.
685//
686// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateCustomRoutingListener
687func (c *GlobalAccelerator) CreateCustomRoutingListener(input *CreateCustomRoutingListenerInput) (*CreateCustomRoutingListenerOutput, error) {
688	req, out := c.CreateCustomRoutingListenerRequest(input)
689	return out, req.Send()
690}
691
692// CreateCustomRoutingListenerWithContext is the same as CreateCustomRoutingListener with the addition of
693// the ability to pass a context and additional request options.
694//
695// See CreateCustomRoutingListener for details on how to use this API operation.
696//
697// The context must be non-nil and will be used for request cancellation. If
698// the context is nil a panic will occur. In the future the SDK may create
699// sub-contexts for http.Requests. See https://golang.org/pkg/context/
700// for more information on using Contexts.
701func (c *GlobalAccelerator) CreateCustomRoutingListenerWithContext(ctx aws.Context, input *CreateCustomRoutingListenerInput, opts ...request.Option) (*CreateCustomRoutingListenerOutput, error) {
702	req, out := c.CreateCustomRoutingListenerRequest(input)
703	req.SetContext(ctx)
704	req.ApplyOptions(opts...)
705	return out, req.Send()
706}
707
708const opCreateEndpointGroup = "CreateEndpointGroup"
709
710// CreateEndpointGroupRequest generates a "aws/request.Request" representing the
711// client's request for the CreateEndpointGroup operation. The "output" return
712// value will be populated with the request's response once the request completes
713// successfully.
714//
715// Use "Send" method on the returned Request to send the API call to the service.
716// the "output" return value is not valid until after Send returns without error.
717//
718// See CreateEndpointGroup for more information on using the CreateEndpointGroup
719// API call, and error handling.
720//
721// This method is useful when you want to inject custom logic or configuration
722// into the SDK's request lifecycle. Such as custom headers, or retry logic.
723//
724//
725//    // Example sending a request using the CreateEndpointGroupRequest method.
726//    req, resp := client.CreateEndpointGroupRequest(params)
727//
728//    err := req.Send()
729//    if err == nil { // resp is now filled
730//        fmt.Println(resp)
731//    }
732//
733// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateEndpointGroup
734func (c *GlobalAccelerator) CreateEndpointGroupRequest(input *CreateEndpointGroupInput) (req *request.Request, output *CreateEndpointGroupOutput) {
735	op := &request.Operation{
736		Name:       opCreateEndpointGroup,
737		HTTPMethod: "POST",
738		HTTPPath:   "/",
739	}
740
741	if input == nil {
742		input = &CreateEndpointGroupInput{}
743	}
744
745	output = &CreateEndpointGroupOutput{}
746	req = c.newRequest(op, input, output)
747	return
748}
749
750// CreateEndpointGroup API operation for AWS Global Accelerator.
751//
752// Create an endpoint group for the specified listener. An endpoint group is
753// a collection of endpoints in one AWS Region. A resource must be valid and
754// active when you add it as an endpoint.
755//
756// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
757// with awserr.Error's Code and Message methods to get detailed information about
758// the error.
759//
760// See the AWS API reference guide for AWS Global Accelerator's
761// API operation CreateEndpointGroup for usage and error information.
762//
763// Returned Error Types:
764//   * AcceleratorNotFoundException
765//   The accelerator that you specified doesn't exist.
766//
767//   * EndpointGroupAlreadyExistsException
768//   The endpoint group that you specified already exists.
769//
770//   * ListenerNotFoundException
771//   The listener that you specified doesn't exist.
772//
773//   * InternalServiceErrorException
774//   There was an internal error for AWS Global Accelerator.
775//
776//   * InvalidArgumentException
777//   An argument that you specified is invalid.
778//
779//   * LimitExceededException
780//   Processing your request would cause you to exceed an AWS Global Accelerator
781//   limit.
782//
783//   * AccessDeniedException
784//   You don't have access permission.
785//
786// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateEndpointGroup
787func (c *GlobalAccelerator) CreateEndpointGroup(input *CreateEndpointGroupInput) (*CreateEndpointGroupOutput, error) {
788	req, out := c.CreateEndpointGroupRequest(input)
789	return out, req.Send()
790}
791
792// CreateEndpointGroupWithContext is the same as CreateEndpointGroup with the addition of
793// the ability to pass a context and additional request options.
794//
795// See CreateEndpointGroup for details on how to use this API operation.
796//
797// The context must be non-nil and will be used for request cancellation. If
798// the context is nil a panic will occur. In the future the SDK may create
799// sub-contexts for http.Requests. See https://golang.org/pkg/context/
800// for more information on using Contexts.
801func (c *GlobalAccelerator) CreateEndpointGroupWithContext(ctx aws.Context, input *CreateEndpointGroupInput, opts ...request.Option) (*CreateEndpointGroupOutput, error) {
802	req, out := c.CreateEndpointGroupRequest(input)
803	req.SetContext(ctx)
804	req.ApplyOptions(opts...)
805	return out, req.Send()
806}
807
808const opCreateListener = "CreateListener"
809
810// CreateListenerRequest generates a "aws/request.Request" representing the
811// client's request for the CreateListener operation. The "output" return
812// value will be populated with the request's response once the request completes
813// successfully.
814//
815// Use "Send" method on the returned Request to send the API call to the service.
816// the "output" return value is not valid until after Send returns without error.
817//
818// See CreateListener for more information on using the CreateListener
819// API call, and error handling.
820//
821// This method is useful when you want to inject custom logic or configuration
822// into the SDK's request lifecycle. Such as custom headers, or retry logic.
823//
824//
825//    // Example sending a request using the CreateListenerRequest method.
826//    req, resp := client.CreateListenerRequest(params)
827//
828//    err := req.Send()
829//    if err == nil { // resp is now filled
830//        fmt.Println(resp)
831//    }
832//
833// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateListener
834func (c *GlobalAccelerator) CreateListenerRequest(input *CreateListenerInput) (req *request.Request, output *CreateListenerOutput) {
835	op := &request.Operation{
836		Name:       opCreateListener,
837		HTTPMethod: "POST",
838		HTTPPath:   "/",
839	}
840
841	if input == nil {
842		input = &CreateListenerInput{}
843	}
844
845	output = &CreateListenerOutput{}
846	req = c.newRequest(op, input, output)
847	return
848}
849
850// CreateListener API operation for AWS Global Accelerator.
851//
852// Create a listener to process inbound connections from clients to an accelerator.
853// Connections arrive to assigned static IP addresses on a port, port range,
854// or list of port ranges that you specify.
855//
856// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
857// with awserr.Error's Code and Message methods to get detailed information about
858// the error.
859//
860// See the AWS API reference guide for AWS Global Accelerator's
861// API operation CreateListener for usage and error information.
862//
863// Returned Error Types:
864//   * InvalidArgumentException
865//   An argument that you specified is invalid.
866//
867//   * AcceleratorNotFoundException
868//   The accelerator that you specified doesn't exist.
869//
870//   * InvalidPortRangeException
871//   The port numbers that you specified are not valid numbers or are not unique
872//   for this accelerator.
873//
874//   * InternalServiceErrorException
875//   There was an internal error for AWS Global Accelerator.
876//
877//   * LimitExceededException
878//   Processing your request would cause you to exceed an AWS Global Accelerator
879//   limit.
880//
881// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateListener
882func (c *GlobalAccelerator) CreateListener(input *CreateListenerInput) (*CreateListenerOutput, error) {
883	req, out := c.CreateListenerRequest(input)
884	return out, req.Send()
885}
886
887// CreateListenerWithContext is the same as CreateListener with the addition of
888// the ability to pass a context and additional request options.
889//
890// See CreateListener for details on how to use this API operation.
891//
892// The context must be non-nil and will be used for request cancellation. If
893// the context is nil a panic will occur. In the future the SDK may create
894// sub-contexts for http.Requests. See https://golang.org/pkg/context/
895// for more information on using Contexts.
896func (c *GlobalAccelerator) CreateListenerWithContext(ctx aws.Context, input *CreateListenerInput, opts ...request.Option) (*CreateListenerOutput, error) {
897	req, out := c.CreateListenerRequest(input)
898	req.SetContext(ctx)
899	req.ApplyOptions(opts...)
900	return out, req.Send()
901}
902
903const opDeleteAccelerator = "DeleteAccelerator"
904
905// DeleteAcceleratorRequest generates a "aws/request.Request" representing the
906// client's request for the DeleteAccelerator operation. The "output" return
907// value will be populated with the request's response once the request completes
908// successfully.
909//
910// Use "Send" method on the returned Request to send the API call to the service.
911// the "output" return value is not valid until after Send returns without error.
912//
913// See DeleteAccelerator for more information on using the DeleteAccelerator
914// API call, and error handling.
915//
916// This method is useful when you want to inject custom logic or configuration
917// into the SDK's request lifecycle. Such as custom headers, or retry logic.
918//
919//
920//    // Example sending a request using the DeleteAcceleratorRequest method.
921//    req, resp := client.DeleteAcceleratorRequest(params)
922//
923//    err := req.Send()
924//    if err == nil { // resp is now filled
925//        fmt.Println(resp)
926//    }
927//
928// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteAccelerator
929func (c *GlobalAccelerator) DeleteAcceleratorRequest(input *DeleteAcceleratorInput) (req *request.Request, output *DeleteAcceleratorOutput) {
930	op := &request.Operation{
931		Name:       opDeleteAccelerator,
932		HTTPMethod: "POST",
933		HTTPPath:   "/",
934	}
935
936	if input == nil {
937		input = &DeleteAcceleratorInput{}
938	}
939
940	output = &DeleteAcceleratorOutput{}
941	req = c.newRequest(op, input, output)
942	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
943	return
944}
945
946// DeleteAccelerator API operation for AWS Global Accelerator.
947//
948// Delete an accelerator. Before you can delete an accelerator, you must disable
949// it and remove all dependent resources (listeners and endpoint groups). To
950// disable the accelerator, update the accelerator to set Enabled to false.
951//
952// When you create an accelerator, by default, Global Accelerator provides you
953// with a set of two static IP addresses. Alternatively, you can bring your
954// own IP address ranges to Global Accelerator and assign IP addresses from
955// those ranges.
956//
957// The IP addresses are assigned to your accelerator for as long as it exists,
958// even if you disable the accelerator and it no longer accepts or routes traffic.
959// However, when you delete an accelerator, you lose the static IP addresses
960// that are assigned to the accelerator, so you can no longer route traffic
961// by using them. As a best practice, ensure that you have permissions in place
962// to avoid inadvertently deleting accelerators. You can use IAM policies with
963// Global Accelerator to limit the users who have permissions to delete an accelerator.
964// For more information, see Authentication and Access Control (https://docs.aws.amazon.com/global-accelerator/latest/dg/auth-and-access-control.html)
965// in the AWS Global Accelerator Developer Guide.
966//
967// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
968// with awserr.Error's Code and Message methods to get detailed information about
969// the error.
970//
971// See the AWS API reference guide for AWS Global Accelerator's
972// API operation DeleteAccelerator for usage and error information.
973//
974// Returned Error Types:
975//   * AcceleratorNotFoundException
976//   The accelerator that you specified doesn't exist.
977//
978//   * AcceleratorNotDisabledException
979//   The accelerator that you specified could not be disabled.
980//
981//   * AssociatedListenerFoundException
982//   The accelerator that you specified has a listener associated with it. You
983//   must remove all dependent resources from an accelerator before you can delete
984//   it.
985//
986//   * InternalServiceErrorException
987//   There was an internal error for AWS Global Accelerator.
988//
989//   * InvalidArgumentException
990//   An argument that you specified is invalid.
991//
992// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteAccelerator
993func (c *GlobalAccelerator) DeleteAccelerator(input *DeleteAcceleratorInput) (*DeleteAcceleratorOutput, error) {
994	req, out := c.DeleteAcceleratorRequest(input)
995	return out, req.Send()
996}
997
998// DeleteAcceleratorWithContext is the same as DeleteAccelerator with the addition of
999// the ability to pass a context and additional request options.
1000//
1001// See DeleteAccelerator for details on how to use this API operation.
1002//
1003// The context must be non-nil and will be used for request cancellation. If
1004// the context is nil a panic will occur. In the future the SDK may create
1005// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1006// for more information on using Contexts.
1007func (c *GlobalAccelerator) DeleteAcceleratorWithContext(ctx aws.Context, input *DeleteAcceleratorInput, opts ...request.Option) (*DeleteAcceleratorOutput, error) {
1008	req, out := c.DeleteAcceleratorRequest(input)
1009	req.SetContext(ctx)
1010	req.ApplyOptions(opts...)
1011	return out, req.Send()
1012}
1013
1014const opDeleteCustomRoutingAccelerator = "DeleteCustomRoutingAccelerator"
1015
1016// DeleteCustomRoutingAcceleratorRequest generates a "aws/request.Request" representing the
1017// client's request for the DeleteCustomRoutingAccelerator operation. The "output" return
1018// value will be populated with the request's response once the request completes
1019// successfully.
1020//
1021// Use "Send" method on the returned Request to send the API call to the service.
1022// the "output" return value is not valid until after Send returns without error.
1023//
1024// See DeleteCustomRoutingAccelerator for more information on using the DeleteCustomRoutingAccelerator
1025// API call, and error handling.
1026//
1027// This method is useful when you want to inject custom logic or configuration
1028// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1029//
1030//
1031//    // Example sending a request using the DeleteCustomRoutingAcceleratorRequest method.
1032//    req, resp := client.DeleteCustomRoutingAcceleratorRequest(params)
1033//
1034//    err := req.Send()
1035//    if err == nil { // resp is now filled
1036//        fmt.Println(resp)
1037//    }
1038//
1039// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteCustomRoutingAccelerator
1040func (c *GlobalAccelerator) DeleteCustomRoutingAcceleratorRequest(input *DeleteCustomRoutingAcceleratorInput) (req *request.Request, output *DeleteCustomRoutingAcceleratorOutput) {
1041	op := &request.Operation{
1042		Name:       opDeleteCustomRoutingAccelerator,
1043		HTTPMethod: "POST",
1044		HTTPPath:   "/",
1045	}
1046
1047	if input == nil {
1048		input = &DeleteCustomRoutingAcceleratorInput{}
1049	}
1050
1051	output = &DeleteCustomRoutingAcceleratorOutput{}
1052	req = c.newRequest(op, input, output)
1053	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1054	return
1055}
1056
1057// DeleteCustomRoutingAccelerator API operation for AWS Global Accelerator.
1058//
1059// Delete a custom routing accelerator. Before you can delete an accelerator,
1060// you must disable it and remove all dependent resources (listeners and endpoint
1061// groups). To disable the accelerator, update the accelerator to set Enabled
1062// to false.
1063//
1064// When you create a custom routing accelerator, by default, Global Accelerator
1065// provides you with a set of two static IP addresses.
1066//
1067// The IP addresses are assigned to your accelerator for as long as it exists,
1068// even if you disable the accelerator and it no longer accepts or routes traffic.
1069// However, when you delete an accelerator, you lose the static IP addresses
1070// that are assigned to the accelerator, so you can no longer route traffic
1071// by using them. As a best practice, ensure that you have permissions in place
1072// to avoid inadvertently deleting accelerators. You can use IAM policies with
1073// Global Accelerator to limit the users who have permissions to delete an accelerator.
1074// For more information, see Authentication and Access Control (https://docs.aws.amazon.com/global-accelerator/latest/dg/auth-and-access-control.html)
1075// in the AWS Global Accelerator Developer Guide.
1076//
1077// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1078// with awserr.Error's Code and Message methods to get detailed information about
1079// the error.
1080//
1081// See the AWS API reference guide for AWS Global Accelerator's
1082// API operation DeleteCustomRoutingAccelerator for usage and error information.
1083//
1084// Returned Error Types:
1085//   * AcceleratorNotFoundException
1086//   The accelerator that you specified doesn't exist.
1087//
1088//   * AcceleratorNotDisabledException
1089//   The accelerator that you specified could not be disabled.
1090//
1091//   * AssociatedListenerFoundException
1092//   The accelerator that you specified has a listener associated with it. You
1093//   must remove all dependent resources from an accelerator before you can delete
1094//   it.
1095//
1096//   * InternalServiceErrorException
1097//   There was an internal error for AWS Global Accelerator.
1098//
1099//   * InvalidArgumentException
1100//   An argument that you specified is invalid.
1101//
1102// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteCustomRoutingAccelerator
1103func (c *GlobalAccelerator) DeleteCustomRoutingAccelerator(input *DeleteCustomRoutingAcceleratorInput) (*DeleteCustomRoutingAcceleratorOutput, error) {
1104	req, out := c.DeleteCustomRoutingAcceleratorRequest(input)
1105	return out, req.Send()
1106}
1107
1108// DeleteCustomRoutingAcceleratorWithContext is the same as DeleteCustomRoutingAccelerator with the addition of
1109// the ability to pass a context and additional request options.
1110//
1111// See DeleteCustomRoutingAccelerator for details on how to use this API operation.
1112//
1113// The context must be non-nil and will be used for request cancellation. If
1114// the context is nil a panic will occur. In the future the SDK may create
1115// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1116// for more information on using Contexts.
1117func (c *GlobalAccelerator) DeleteCustomRoutingAcceleratorWithContext(ctx aws.Context, input *DeleteCustomRoutingAcceleratorInput, opts ...request.Option) (*DeleteCustomRoutingAcceleratorOutput, error) {
1118	req, out := c.DeleteCustomRoutingAcceleratorRequest(input)
1119	req.SetContext(ctx)
1120	req.ApplyOptions(opts...)
1121	return out, req.Send()
1122}
1123
1124const opDeleteCustomRoutingEndpointGroup = "DeleteCustomRoutingEndpointGroup"
1125
1126// DeleteCustomRoutingEndpointGroupRequest generates a "aws/request.Request" representing the
1127// client's request for the DeleteCustomRoutingEndpointGroup operation. The "output" return
1128// value will be populated with the request's response once the request completes
1129// successfully.
1130//
1131// Use "Send" method on the returned Request to send the API call to the service.
1132// the "output" return value is not valid until after Send returns without error.
1133//
1134// See DeleteCustomRoutingEndpointGroup for more information on using the DeleteCustomRoutingEndpointGroup
1135// API call, and error handling.
1136//
1137// This method is useful when you want to inject custom logic or configuration
1138// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1139//
1140//
1141//    // Example sending a request using the DeleteCustomRoutingEndpointGroupRequest method.
1142//    req, resp := client.DeleteCustomRoutingEndpointGroupRequest(params)
1143//
1144//    err := req.Send()
1145//    if err == nil { // resp is now filled
1146//        fmt.Println(resp)
1147//    }
1148//
1149// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteCustomRoutingEndpointGroup
1150func (c *GlobalAccelerator) DeleteCustomRoutingEndpointGroupRequest(input *DeleteCustomRoutingEndpointGroupInput) (req *request.Request, output *DeleteCustomRoutingEndpointGroupOutput) {
1151	op := &request.Operation{
1152		Name:       opDeleteCustomRoutingEndpointGroup,
1153		HTTPMethod: "POST",
1154		HTTPPath:   "/",
1155	}
1156
1157	if input == nil {
1158		input = &DeleteCustomRoutingEndpointGroupInput{}
1159	}
1160
1161	output = &DeleteCustomRoutingEndpointGroupOutput{}
1162	req = c.newRequest(op, input, output)
1163	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1164	return
1165}
1166
1167// DeleteCustomRoutingEndpointGroup API operation for AWS Global Accelerator.
1168//
1169// Delete an endpoint group from a listener for a custom routing accelerator.
1170//
1171// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1172// with awserr.Error's Code and Message methods to get detailed information about
1173// the error.
1174//
1175// See the AWS API reference guide for AWS Global Accelerator's
1176// API operation DeleteCustomRoutingEndpointGroup for usage and error information.
1177//
1178// Returned Error Types:
1179//   * InvalidArgumentException
1180//   An argument that you specified is invalid.
1181//
1182//   * EndpointGroupNotFoundException
1183//   The endpoint group that you specified doesn't exist.
1184//
1185//   * InternalServiceErrorException
1186//   There was an internal error for AWS Global Accelerator.
1187//
1188// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteCustomRoutingEndpointGroup
1189func (c *GlobalAccelerator) DeleteCustomRoutingEndpointGroup(input *DeleteCustomRoutingEndpointGroupInput) (*DeleteCustomRoutingEndpointGroupOutput, error) {
1190	req, out := c.DeleteCustomRoutingEndpointGroupRequest(input)
1191	return out, req.Send()
1192}
1193
1194// DeleteCustomRoutingEndpointGroupWithContext is the same as DeleteCustomRoutingEndpointGroup with the addition of
1195// the ability to pass a context and additional request options.
1196//
1197// See DeleteCustomRoutingEndpointGroup for details on how to use this API operation.
1198//
1199// The context must be non-nil and will be used for request cancellation. If
1200// the context is nil a panic will occur. In the future the SDK may create
1201// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1202// for more information on using Contexts.
1203func (c *GlobalAccelerator) DeleteCustomRoutingEndpointGroupWithContext(ctx aws.Context, input *DeleteCustomRoutingEndpointGroupInput, opts ...request.Option) (*DeleteCustomRoutingEndpointGroupOutput, error) {
1204	req, out := c.DeleteCustomRoutingEndpointGroupRequest(input)
1205	req.SetContext(ctx)
1206	req.ApplyOptions(opts...)
1207	return out, req.Send()
1208}
1209
1210const opDeleteCustomRoutingListener = "DeleteCustomRoutingListener"
1211
1212// DeleteCustomRoutingListenerRequest generates a "aws/request.Request" representing the
1213// client's request for the DeleteCustomRoutingListener operation. The "output" return
1214// value will be populated with the request's response once the request completes
1215// successfully.
1216//
1217// Use "Send" method on the returned Request to send the API call to the service.
1218// the "output" return value is not valid until after Send returns without error.
1219//
1220// See DeleteCustomRoutingListener for more information on using the DeleteCustomRoutingListener
1221// API call, and error handling.
1222//
1223// This method is useful when you want to inject custom logic or configuration
1224// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1225//
1226//
1227//    // Example sending a request using the DeleteCustomRoutingListenerRequest method.
1228//    req, resp := client.DeleteCustomRoutingListenerRequest(params)
1229//
1230//    err := req.Send()
1231//    if err == nil { // resp is now filled
1232//        fmt.Println(resp)
1233//    }
1234//
1235// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteCustomRoutingListener
1236func (c *GlobalAccelerator) DeleteCustomRoutingListenerRequest(input *DeleteCustomRoutingListenerInput) (req *request.Request, output *DeleteCustomRoutingListenerOutput) {
1237	op := &request.Operation{
1238		Name:       opDeleteCustomRoutingListener,
1239		HTTPMethod: "POST",
1240		HTTPPath:   "/",
1241	}
1242
1243	if input == nil {
1244		input = &DeleteCustomRoutingListenerInput{}
1245	}
1246
1247	output = &DeleteCustomRoutingListenerOutput{}
1248	req = c.newRequest(op, input, output)
1249	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1250	return
1251}
1252
1253// DeleteCustomRoutingListener API operation for AWS Global Accelerator.
1254//
1255// Delete a listener for a custom routing accelerator.
1256//
1257// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1258// with awserr.Error's Code and Message methods to get detailed information about
1259// the error.
1260//
1261// See the AWS API reference guide for AWS Global Accelerator's
1262// API operation DeleteCustomRoutingListener for usage and error information.
1263//
1264// Returned Error Types:
1265//   * InvalidArgumentException
1266//   An argument that you specified is invalid.
1267//
1268//   * ListenerNotFoundException
1269//   The listener that you specified doesn't exist.
1270//
1271//   * AssociatedEndpointGroupFoundException
1272//   The listener that you specified has an endpoint group associated with it.
1273//   You must remove all dependent resources from a listener before you can delete
1274//   it.
1275//
1276//   * InternalServiceErrorException
1277//   There was an internal error for AWS Global Accelerator.
1278//
1279// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteCustomRoutingListener
1280func (c *GlobalAccelerator) DeleteCustomRoutingListener(input *DeleteCustomRoutingListenerInput) (*DeleteCustomRoutingListenerOutput, error) {
1281	req, out := c.DeleteCustomRoutingListenerRequest(input)
1282	return out, req.Send()
1283}
1284
1285// DeleteCustomRoutingListenerWithContext is the same as DeleteCustomRoutingListener with the addition of
1286// the ability to pass a context and additional request options.
1287//
1288// See DeleteCustomRoutingListener for details on how to use this API operation.
1289//
1290// The context must be non-nil and will be used for request cancellation. If
1291// the context is nil a panic will occur. In the future the SDK may create
1292// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1293// for more information on using Contexts.
1294func (c *GlobalAccelerator) DeleteCustomRoutingListenerWithContext(ctx aws.Context, input *DeleteCustomRoutingListenerInput, opts ...request.Option) (*DeleteCustomRoutingListenerOutput, error) {
1295	req, out := c.DeleteCustomRoutingListenerRequest(input)
1296	req.SetContext(ctx)
1297	req.ApplyOptions(opts...)
1298	return out, req.Send()
1299}
1300
1301const opDeleteEndpointGroup = "DeleteEndpointGroup"
1302
1303// DeleteEndpointGroupRequest generates a "aws/request.Request" representing the
1304// client's request for the DeleteEndpointGroup operation. The "output" return
1305// value will be populated with the request's response once the request completes
1306// successfully.
1307//
1308// Use "Send" method on the returned Request to send the API call to the service.
1309// the "output" return value is not valid until after Send returns without error.
1310//
1311// See DeleteEndpointGroup for more information on using the DeleteEndpointGroup
1312// API call, and error handling.
1313//
1314// This method is useful when you want to inject custom logic or configuration
1315// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1316//
1317//
1318//    // Example sending a request using the DeleteEndpointGroupRequest method.
1319//    req, resp := client.DeleteEndpointGroupRequest(params)
1320//
1321//    err := req.Send()
1322//    if err == nil { // resp is now filled
1323//        fmt.Println(resp)
1324//    }
1325//
1326// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteEndpointGroup
1327func (c *GlobalAccelerator) DeleteEndpointGroupRequest(input *DeleteEndpointGroupInput) (req *request.Request, output *DeleteEndpointGroupOutput) {
1328	op := &request.Operation{
1329		Name:       opDeleteEndpointGroup,
1330		HTTPMethod: "POST",
1331		HTTPPath:   "/",
1332	}
1333
1334	if input == nil {
1335		input = &DeleteEndpointGroupInput{}
1336	}
1337
1338	output = &DeleteEndpointGroupOutput{}
1339	req = c.newRequest(op, input, output)
1340	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1341	return
1342}
1343
1344// DeleteEndpointGroup API operation for AWS Global Accelerator.
1345//
1346// Delete an endpoint group from a listener.
1347//
1348// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1349// with awserr.Error's Code and Message methods to get detailed information about
1350// the error.
1351//
1352// See the AWS API reference guide for AWS Global Accelerator's
1353// API operation DeleteEndpointGroup for usage and error information.
1354//
1355// Returned Error Types:
1356//   * InvalidArgumentException
1357//   An argument that you specified is invalid.
1358//
1359//   * EndpointGroupNotFoundException
1360//   The endpoint group that you specified doesn't exist.
1361//
1362//   * InternalServiceErrorException
1363//   There was an internal error for AWS Global Accelerator.
1364//
1365// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteEndpointGroup
1366func (c *GlobalAccelerator) DeleteEndpointGroup(input *DeleteEndpointGroupInput) (*DeleteEndpointGroupOutput, error) {
1367	req, out := c.DeleteEndpointGroupRequest(input)
1368	return out, req.Send()
1369}
1370
1371// DeleteEndpointGroupWithContext is the same as DeleteEndpointGroup with the addition of
1372// the ability to pass a context and additional request options.
1373//
1374// See DeleteEndpointGroup for details on how to use this API operation.
1375//
1376// The context must be non-nil and will be used for request cancellation. If
1377// the context is nil a panic will occur. In the future the SDK may create
1378// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1379// for more information on using Contexts.
1380func (c *GlobalAccelerator) DeleteEndpointGroupWithContext(ctx aws.Context, input *DeleteEndpointGroupInput, opts ...request.Option) (*DeleteEndpointGroupOutput, error) {
1381	req, out := c.DeleteEndpointGroupRequest(input)
1382	req.SetContext(ctx)
1383	req.ApplyOptions(opts...)
1384	return out, req.Send()
1385}
1386
1387const opDeleteListener = "DeleteListener"
1388
1389// DeleteListenerRequest generates a "aws/request.Request" representing the
1390// client's request for the DeleteListener operation. The "output" return
1391// value will be populated with the request's response once the request completes
1392// successfully.
1393//
1394// Use "Send" method on the returned Request to send the API call to the service.
1395// the "output" return value is not valid until after Send returns without error.
1396//
1397// See DeleteListener for more information on using the DeleteListener
1398// API call, and error handling.
1399//
1400// This method is useful when you want to inject custom logic or configuration
1401// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1402//
1403//
1404//    // Example sending a request using the DeleteListenerRequest method.
1405//    req, resp := client.DeleteListenerRequest(params)
1406//
1407//    err := req.Send()
1408//    if err == nil { // resp is now filled
1409//        fmt.Println(resp)
1410//    }
1411//
1412// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteListener
1413func (c *GlobalAccelerator) DeleteListenerRequest(input *DeleteListenerInput) (req *request.Request, output *DeleteListenerOutput) {
1414	op := &request.Operation{
1415		Name:       opDeleteListener,
1416		HTTPMethod: "POST",
1417		HTTPPath:   "/",
1418	}
1419
1420	if input == nil {
1421		input = &DeleteListenerInput{}
1422	}
1423
1424	output = &DeleteListenerOutput{}
1425	req = c.newRequest(op, input, output)
1426	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1427	return
1428}
1429
1430// DeleteListener API operation for AWS Global Accelerator.
1431//
1432// Delete a listener from an accelerator.
1433//
1434// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1435// with awserr.Error's Code and Message methods to get detailed information about
1436// the error.
1437//
1438// See the AWS API reference guide for AWS Global Accelerator's
1439// API operation DeleteListener for usage and error information.
1440//
1441// Returned Error Types:
1442//   * InvalidArgumentException
1443//   An argument that you specified is invalid.
1444//
1445//   * ListenerNotFoundException
1446//   The listener that you specified doesn't exist.
1447//
1448//   * AssociatedEndpointGroupFoundException
1449//   The listener that you specified has an endpoint group associated with it.
1450//   You must remove all dependent resources from a listener before you can delete
1451//   it.
1452//
1453//   * InternalServiceErrorException
1454//   There was an internal error for AWS Global Accelerator.
1455//
1456// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteListener
1457func (c *GlobalAccelerator) DeleteListener(input *DeleteListenerInput) (*DeleteListenerOutput, error) {
1458	req, out := c.DeleteListenerRequest(input)
1459	return out, req.Send()
1460}
1461
1462// DeleteListenerWithContext is the same as DeleteListener with the addition of
1463// the ability to pass a context and additional request options.
1464//
1465// See DeleteListener for details on how to use this API operation.
1466//
1467// The context must be non-nil and will be used for request cancellation. If
1468// the context is nil a panic will occur. In the future the SDK may create
1469// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1470// for more information on using Contexts.
1471func (c *GlobalAccelerator) DeleteListenerWithContext(ctx aws.Context, input *DeleteListenerInput, opts ...request.Option) (*DeleteListenerOutput, error) {
1472	req, out := c.DeleteListenerRequest(input)
1473	req.SetContext(ctx)
1474	req.ApplyOptions(opts...)
1475	return out, req.Send()
1476}
1477
1478const opDenyCustomRoutingTraffic = "DenyCustomRoutingTraffic"
1479
1480// DenyCustomRoutingTrafficRequest generates a "aws/request.Request" representing the
1481// client's request for the DenyCustomRoutingTraffic operation. The "output" return
1482// value will be populated with the request's response once the request completes
1483// successfully.
1484//
1485// Use "Send" method on the returned Request to send the API call to the service.
1486// the "output" return value is not valid until after Send returns without error.
1487//
1488// See DenyCustomRoutingTraffic for more information on using the DenyCustomRoutingTraffic
1489// API call, and error handling.
1490//
1491// This method is useful when you want to inject custom logic or configuration
1492// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1493//
1494//
1495//    // Example sending a request using the DenyCustomRoutingTrafficRequest method.
1496//    req, resp := client.DenyCustomRoutingTrafficRequest(params)
1497//
1498//    err := req.Send()
1499//    if err == nil { // resp is now filled
1500//        fmt.Println(resp)
1501//    }
1502//
1503// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DenyCustomRoutingTraffic
1504func (c *GlobalAccelerator) DenyCustomRoutingTrafficRequest(input *DenyCustomRoutingTrafficInput) (req *request.Request, output *DenyCustomRoutingTrafficOutput) {
1505	op := &request.Operation{
1506		Name:       opDenyCustomRoutingTraffic,
1507		HTTPMethod: "POST",
1508		HTTPPath:   "/",
1509	}
1510
1511	if input == nil {
1512		input = &DenyCustomRoutingTrafficInput{}
1513	}
1514
1515	output = &DenyCustomRoutingTrafficOutput{}
1516	req = c.newRequest(op, input, output)
1517	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1518	return
1519}
1520
1521// DenyCustomRoutingTraffic API operation for AWS Global Accelerator.
1522//
1523// Specify the Amazon EC2 instance (destination) IP addresses and ports for
1524// a VPC subnet endpoint that cannot receive traffic for a custom routing accelerator.
1525// You can deny traffic to all destinations in the VPC endpoint, or deny traffic
1526// to a specified list of destination IP addresses and ports. Note that you
1527// cannot specify IP addresses or ports outside of the range that you configured
1528// for the endpoint group.
1529//
1530// After you make changes, you can verify that the updates are complete by checking
1531// the status of your accelerator: the status changes from IN_PROGRESS to DEPLOYED.
1532//
1533// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1534// with awserr.Error's Code and Message methods to get detailed information about
1535// the error.
1536//
1537// See the AWS API reference guide for AWS Global Accelerator's
1538// API operation DenyCustomRoutingTraffic for usage and error information.
1539//
1540// Returned Error Types:
1541//   * InvalidArgumentException
1542//   An argument that you specified is invalid.
1543//
1544//   * InternalServiceErrorException
1545//   There was an internal error for AWS Global Accelerator.
1546//
1547// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DenyCustomRoutingTraffic
1548func (c *GlobalAccelerator) DenyCustomRoutingTraffic(input *DenyCustomRoutingTrafficInput) (*DenyCustomRoutingTrafficOutput, error) {
1549	req, out := c.DenyCustomRoutingTrafficRequest(input)
1550	return out, req.Send()
1551}
1552
1553// DenyCustomRoutingTrafficWithContext is the same as DenyCustomRoutingTraffic with the addition of
1554// the ability to pass a context and additional request options.
1555//
1556// See DenyCustomRoutingTraffic for details on how to use this API operation.
1557//
1558// The context must be non-nil and will be used for request cancellation. If
1559// the context is nil a panic will occur. In the future the SDK may create
1560// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1561// for more information on using Contexts.
1562func (c *GlobalAccelerator) DenyCustomRoutingTrafficWithContext(ctx aws.Context, input *DenyCustomRoutingTrafficInput, opts ...request.Option) (*DenyCustomRoutingTrafficOutput, error) {
1563	req, out := c.DenyCustomRoutingTrafficRequest(input)
1564	req.SetContext(ctx)
1565	req.ApplyOptions(opts...)
1566	return out, req.Send()
1567}
1568
1569const opDeprovisionByoipCidr = "DeprovisionByoipCidr"
1570
1571// DeprovisionByoipCidrRequest generates a "aws/request.Request" representing the
1572// client's request for the DeprovisionByoipCidr operation. The "output" return
1573// value will be populated with the request's response once the request completes
1574// successfully.
1575//
1576// Use "Send" method on the returned Request to send the API call to the service.
1577// the "output" return value is not valid until after Send returns without error.
1578//
1579// See DeprovisionByoipCidr for more information on using the DeprovisionByoipCidr
1580// API call, and error handling.
1581//
1582// This method is useful when you want to inject custom logic or configuration
1583// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1584//
1585//
1586//    // Example sending a request using the DeprovisionByoipCidrRequest method.
1587//    req, resp := client.DeprovisionByoipCidrRequest(params)
1588//
1589//    err := req.Send()
1590//    if err == nil { // resp is now filled
1591//        fmt.Println(resp)
1592//    }
1593//
1594// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeprovisionByoipCidr
1595func (c *GlobalAccelerator) DeprovisionByoipCidrRequest(input *DeprovisionByoipCidrInput) (req *request.Request, output *DeprovisionByoipCidrOutput) {
1596	op := &request.Operation{
1597		Name:       opDeprovisionByoipCidr,
1598		HTTPMethod: "POST",
1599		HTTPPath:   "/",
1600	}
1601
1602	if input == nil {
1603		input = &DeprovisionByoipCidrInput{}
1604	}
1605
1606	output = &DeprovisionByoipCidrOutput{}
1607	req = c.newRequest(op, input, output)
1608	return
1609}
1610
1611// DeprovisionByoipCidr API operation for AWS Global Accelerator.
1612//
1613// Releases the specified address range that you provisioned to use with your
1614// AWS resources through bring your own IP addresses (BYOIP) and deletes the
1615// corresponding address pool.
1616//
1617// Before you can release an address range, you must stop advertising it by
1618// using WithdrawByoipCidr (https://docs.aws.amazon.com/global-accelerator/latest/api/WithdrawByoipCidr.html)
1619// and you must not have any accelerators that are using static IP addresses
1620// allocated from its address range.
1621//
1622// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
1623// in the AWS Global Accelerator Developer Guide.
1624//
1625// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1626// with awserr.Error's Code and Message methods to get detailed information about
1627// the error.
1628//
1629// See the AWS API reference guide for AWS Global Accelerator's
1630// API operation DeprovisionByoipCidr for usage and error information.
1631//
1632// Returned Error Types:
1633//   * InternalServiceErrorException
1634//   There was an internal error for AWS Global Accelerator.
1635//
1636//   * InvalidArgumentException
1637//   An argument that you specified is invalid.
1638//
1639//   * AccessDeniedException
1640//   You don't have access permission.
1641//
1642//   * ByoipCidrNotFoundException
1643//   The CIDR that you specified was not found or is incorrect.
1644//
1645//   * IncorrectCidrStateException
1646//   The CIDR that you specified is not valid for this action. For example, the
1647//   state of the CIDR might be incorrect for this action.
1648//
1649// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeprovisionByoipCidr
1650func (c *GlobalAccelerator) DeprovisionByoipCidr(input *DeprovisionByoipCidrInput) (*DeprovisionByoipCidrOutput, error) {
1651	req, out := c.DeprovisionByoipCidrRequest(input)
1652	return out, req.Send()
1653}
1654
1655// DeprovisionByoipCidrWithContext is the same as DeprovisionByoipCidr with the addition of
1656// the ability to pass a context and additional request options.
1657//
1658// See DeprovisionByoipCidr for details on how to use this API operation.
1659//
1660// The context must be non-nil and will be used for request cancellation. If
1661// the context is nil a panic will occur. In the future the SDK may create
1662// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1663// for more information on using Contexts.
1664func (c *GlobalAccelerator) DeprovisionByoipCidrWithContext(ctx aws.Context, input *DeprovisionByoipCidrInput, opts ...request.Option) (*DeprovisionByoipCidrOutput, error) {
1665	req, out := c.DeprovisionByoipCidrRequest(input)
1666	req.SetContext(ctx)
1667	req.ApplyOptions(opts...)
1668	return out, req.Send()
1669}
1670
1671const opDescribeAccelerator = "DescribeAccelerator"
1672
1673// DescribeAcceleratorRequest generates a "aws/request.Request" representing the
1674// client's request for the DescribeAccelerator operation. The "output" return
1675// value will be populated with the request's response once the request completes
1676// successfully.
1677//
1678// Use "Send" method on the returned Request to send the API call to the service.
1679// the "output" return value is not valid until after Send returns without error.
1680//
1681// See DescribeAccelerator for more information on using the DescribeAccelerator
1682// API call, and error handling.
1683//
1684// This method is useful when you want to inject custom logic or configuration
1685// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1686//
1687//
1688//    // Example sending a request using the DescribeAcceleratorRequest method.
1689//    req, resp := client.DescribeAcceleratorRequest(params)
1690//
1691//    err := req.Send()
1692//    if err == nil { // resp is now filled
1693//        fmt.Println(resp)
1694//    }
1695//
1696// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeAccelerator
1697func (c *GlobalAccelerator) DescribeAcceleratorRequest(input *DescribeAcceleratorInput) (req *request.Request, output *DescribeAcceleratorOutput) {
1698	op := &request.Operation{
1699		Name:       opDescribeAccelerator,
1700		HTTPMethod: "POST",
1701		HTTPPath:   "/",
1702	}
1703
1704	if input == nil {
1705		input = &DescribeAcceleratorInput{}
1706	}
1707
1708	output = &DescribeAcceleratorOutput{}
1709	req = c.newRequest(op, input, output)
1710	return
1711}
1712
1713// DescribeAccelerator API operation for AWS Global Accelerator.
1714//
1715// Describe an accelerator.
1716//
1717// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1718// with awserr.Error's Code and Message methods to get detailed information about
1719// the error.
1720//
1721// See the AWS API reference guide for AWS Global Accelerator's
1722// API operation DescribeAccelerator for usage and error information.
1723//
1724// Returned Error Types:
1725//   * AcceleratorNotFoundException
1726//   The accelerator that you specified doesn't exist.
1727//
1728//   * InternalServiceErrorException
1729//   There was an internal error for AWS Global Accelerator.
1730//
1731//   * InvalidArgumentException
1732//   An argument that you specified is invalid.
1733//
1734// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeAccelerator
1735func (c *GlobalAccelerator) DescribeAccelerator(input *DescribeAcceleratorInput) (*DescribeAcceleratorOutput, error) {
1736	req, out := c.DescribeAcceleratorRequest(input)
1737	return out, req.Send()
1738}
1739
1740// DescribeAcceleratorWithContext is the same as DescribeAccelerator with the addition of
1741// the ability to pass a context and additional request options.
1742//
1743// See DescribeAccelerator for details on how to use this API operation.
1744//
1745// The context must be non-nil and will be used for request cancellation. If
1746// the context is nil a panic will occur. In the future the SDK may create
1747// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1748// for more information on using Contexts.
1749func (c *GlobalAccelerator) DescribeAcceleratorWithContext(ctx aws.Context, input *DescribeAcceleratorInput, opts ...request.Option) (*DescribeAcceleratorOutput, error) {
1750	req, out := c.DescribeAcceleratorRequest(input)
1751	req.SetContext(ctx)
1752	req.ApplyOptions(opts...)
1753	return out, req.Send()
1754}
1755
1756const opDescribeAcceleratorAttributes = "DescribeAcceleratorAttributes"
1757
1758// DescribeAcceleratorAttributesRequest generates a "aws/request.Request" representing the
1759// client's request for the DescribeAcceleratorAttributes operation. The "output" return
1760// value will be populated with the request's response once the request completes
1761// successfully.
1762//
1763// Use "Send" method on the returned Request to send the API call to the service.
1764// the "output" return value is not valid until after Send returns without error.
1765//
1766// See DescribeAcceleratorAttributes for more information on using the DescribeAcceleratorAttributes
1767// API call, and error handling.
1768//
1769// This method is useful when you want to inject custom logic or configuration
1770// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1771//
1772//
1773//    // Example sending a request using the DescribeAcceleratorAttributesRequest method.
1774//    req, resp := client.DescribeAcceleratorAttributesRequest(params)
1775//
1776//    err := req.Send()
1777//    if err == nil { // resp is now filled
1778//        fmt.Println(resp)
1779//    }
1780//
1781// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeAcceleratorAttributes
1782func (c *GlobalAccelerator) DescribeAcceleratorAttributesRequest(input *DescribeAcceleratorAttributesInput) (req *request.Request, output *DescribeAcceleratorAttributesOutput) {
1783	op := &request.Operation{
1784		Name:       opDescribeAcceleratorAttributes,
1785		HTTPMethod: "POST",
1786		HTTPPath:   "/",
1787	}
1788
1789	if input == nil {
1790		input = &DescribeAcceleratorAttributesInput{}
1791	}
1792
1793	output = &DescribeAcceleratorAttributesOutput{}
1794	req = c.newRequest(op, input, output)
1795	return
1796}
1797
1798// DescribeAcceleratorAttributes API operation for AWS Global Accelerator.
1799//
1800// Describe the attributes of an accelerator.
1801//
1802// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1803// with awserr.Error's Code and Message methods to get detailed information about
1804// the error.
1805//
1806// See the AWS API reference guide for AWS Global Accelerator's
1807// API operation DescribeAcceleratorAttributes for usage and error information.
1808//
1809// Returned Error Types:
1810//   * AcceleratorNotFoundException
1811//   The accelerator that you specified doesn't exist.
1812//
1813//   * InternalServiceErrorException
1814//   There was an internal error for AWS Global Accelerator.
1815//
1816//   * InvalidArgumentException
1817//   An argument that you specified is invalid.
1818//
1819// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeAcceleratorAttributes
1820func (c *GlobalAccelerator) DescribeAcceleratorAttributes(input *DescribeAcceleratorAttributesInput) (*DescribeAcceleratorAttributesOutput, error) {
1821	req, out := c.DescribeAcceleratorAttributesRequest(input)
1822	return out, req.Send()
1823}
1824
1825// DescribeAcceleratorAttributesWithContext is the same as DescribeAcceleratorAttributes with the addition of
1826// the ability to pass a context and additional request options.
1827//
1828// See DescribeAcceleratorAttributes for details on how to use this API operation.
1829//
1830// The context must be non-nil and will be used for request cancellation. If
1831// the context is nil a panic will occur. In the future the SDK may create
1832// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1833// for more information on using Contexts.
1834func (c *GlobalAccelerator) DescribeAcceleratorAttributesWithContext(ctx aws.Context, input *DescribeAcceleratorAttributesInput, opts ...request.Option) (*DescribeAcceleratorAttributesOutput, error) {
1835	req, out := c.DescribeAcceleratorAttributesRequest(input)
1836	req.SetContext(ctx)
1837	req.ApplyOptions(opts...)
1838	return out, req.Send()
1839}
1840
1841const opDescribeCustomRoutingAccelerator = "DescribeCustomRoutingAccelerator"
1842
1843// DescribeCustomRoutingAcceleratorRequest generates a "aws/request.Request" representing the
1844// client's request for the DescribeCustomRoutingAccelerator operation. The "output" return
1845// value will be populated with the request's response once the request completes
1846// successfully.
1847//
1848// Use "Send" method on the returned Request to send the API call to the service.
1849// the "output" return value is not valid until after Send returns without error.
1850//
1851// See DescribeCustomRoutingAccelerator for more information on using the DescribeCustomRoutingAccelerator
1852// API call, and error handling.
1853//
1854// This method is useful when you want to inject custom logic or configuration
1855// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1856//
1857//
1858//    // Example sending a request using the DescribeCustomRoutingAcceleratorRequest method.
1859//    req, resp := client.DescribeCustomRoutingAcceleratorRequest(params)
1860//
1861//    err := req.Send()
1862//    if err == nil { // resp is now filled
1863//        fmt.Println(resp)
1864//    }
1865//
1866// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingAccelerator
1867func (c *GlobalAccelerator) DescribeCustomRoutingAcceleratorRequest(input *DescribeCustomRoutingAcceleratorInput) (req *request.Request, output *DescribeCustomRoutingAcceleratorOutput) {
1868	op := &request.Operation{
1869		Name:       opDescribeCustomRoutingAccelerator,
1870		HTTPMethod: "POST",
1871		HTTPPath:   "/",
1872	}
1873
1874	if input == nil {
1875		input = &DescribeCustomRoutingAcceleratorInput{}
1876	}
1877
1878	output = &DescribeCustomRoutingAcceleratorOutput{}
1879	req = c.newRequest(op, input, output)
1880	return
1881}
1882
1883// DescribeCustomRoutingAccelerator API operation for AWS Global Accelerator.
1884//
1885// Describe a custom routing accelerator.
1886//
1887// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1888// with awserr.Error's Code and Message methods to get detailed information about
1889// the error.
1890//
1891// See the AWS API reference guide for AWS Global Accelerator's
1892// API operation DescribeCustomRoutingAccelerator for usage and error information.
1893//
1894// Returned Error Types:
1895//   * AcceleratorNotFoundException
1896//   The accelerator that you specified doesn't exist.
1897//
1898//   * InternalServiceErrorException
1899//   There was an internal error for AWS Global Accelerator.
1900//
1901//   * InvalidArgumentException
1902//   An argument that you specified is invalid.
1903//
1904// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingAccelerator
1905func (c *GlobalAccelerator) DescribeCustomRoutingAccelerator(input *DescribeCustomRoutingAcceleratorInput) (*DescribeCustomRoutingAcceleratorOutput, error) {
1906	req, out := c.DescribeCustomRoutingAcceleratorRequest(input)
1907	return out, req.Send()
1908}
1909
1910// DescribeCustomRoutingAcceleratorWithContext is the same as DescribeCustomRoutingAccelerator with the addition of
1911// the ability to pass a context and additional request options.
1912//
1913// See DescribeCustomRoutingAccelerator for details on how to use this API operation.
1914//
1915// The context must be non-nil and will be used for request cancellation. If
1916// the context is nil a panic will occur. In the future the SDK may create
1917// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1918// for more information on using Contexts.
1919func (c *GlobalAccelerator) DescribeCustomRoutingAcceleratorWithContext(ctx aws.Context, input *DescribeCustomRoutingAcceleratorInput, opts ...request.Option) (*DescribeCustomRoutingAcceleratorOutput, error) {
1920	req, out := c.DescribeCustomRoutingAcceleratorRequest(input)
1921	req.SetContext(ctx)
1922	req.ApplyOptions(opts...)
1923	return out, req.Send()
1924}
1925
1926const opDescribeCustomRoutingAcceleratorAttributes = "DescribeCustomRoutingAcceleratorAttributes"
1927
1928// DescribeCustomRoutingAcceleratorAttributesRequest generates a "aws/request.Request" representing the
1929// client's request for the DescribeCustomRoutingAcceleratorAttributes operation. The "output" return
1930// value will be populated with the request's response once the request completes
1931// successfully.
1932//
1933// Use "Send" method on the returned Request to send the API call to the service.
1934// the "output" return value is not valid until after Send returns without error.
1935//
1936// See DescribeCustomRoutingAcceleratorAttributes for more information on using the DescribeCustomRoutingAcceleratorAttributes
1937// API call, and error handling.
1938//
1939// This method is useful when you want to inject custom logic or configuration
1940// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1941//
1942//
1943//    // Example sending a request using the DescribeCustomRoutingAcceleratorAttributesRequest method.
1944//    req, resp := client.DescribeCustomRoutingAcceleratorAttributesRequest(params)
1945//
1946//    err := req.Send()
1947//    if err == nil { // resp is now filled
1948//        fmt.Println(resp)
1949//    }
1950//
1951// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingAcceleratorAttributes
1952func (c *GlobalAccelerator) DescribeCustomRoutingAcceleratorAttributesRequest(input *DescribeCustomRoutingAcceleratorAttributesInput) (req *request.Request, output *DescribeCustomRoutingAcceleratorAttributesOutput) {
1953	op := &request.Operation{
1954		Name:       opDescribeCustomRoutingAcceleratorAttributes,
1955		HTTPMethod: "POST",
1956		HTTPPath:   "/",
1957	}
1958
1959	if input == nil {
1960		input = &DescribeCustomRoutingAcceleratorAttributesInput{}
1961	}
1962
1963	output = &DescribeCustomRoutingAcceleratorAttributesOutput{}
1964	req = c.newRequest(op, input, output)
1965	return
1966}
1967
1968// DescribeCustomRoutingAcceleratorAttributes API operation for AWS Global Accelerator.
1969//
1970// Describe the attributes of a custom routing accelerator.
1971//
1972// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1973// with awserr.Error's Code and Message methods to get detailed information about
1974// the error.
1975//
1976// See the AWS API reference guide for AWS Global Accelerator's
1977// API operation DescribeCustomRoutingAcceleratorAttributes for usage and error information.
1978//
1979// Returned Error Types:
1980//   * AcceleratorNotFoundException
1981//   The accelerator that you specified doesn't exist.
1982//
1983//   * InternalServiceErrorException
1984//   There was an internal error for AWS Global Accelerator.
1985//
1986//   * InvalidArgumentException
1987//   An argument that you specified is invalid.
1988//
1989// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingAcceleratorAttributes
1990func (c *GlobalAccelerator) DescribeCustomRoutingAcceleratorAttributes(input *DescribeCustomRoutingAcceleratorAttributesInput) (*DescribeCustomRoutingAcceleratorAttributesOutput, error) {
1991	req, out := c.DescribeCustomRoutingAcceleratorAttributesRequest(input)
1992	return out, req.Send()
1993}
1994
1995// DescribeCustomRoutingAcceleratorAttributesWithContext is the same as DescribeCustomRoutingAcceleratorAttributes with the addition of
1996// the ability to pass a context and additional request options.
1997//
1998// See DescribeCustomRoutingAcceleratorAttributes for details on how to use this API operation.
1999//
2000// The context must be non-nil and will be used for request cancellation. If
2001// the context is nil a panic will occur. In the future the SDK may create
2002// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2003// for more information on using Contexts.
2004func (c *GlobalAccelerator) DescribeCustomRoutingAcceleratorAttributesWithContext(ctx aws.Context, input *DescribeCustomRoutingAcceleratorAttributesInput, opts ...request.Option) (*DescribeCustomRoutingAcceleratorAttributesOutput, error) {
2005	req, out := c.DescribeCustomRoutingAcceleratorAttributesRequest(input)
2006	req.SetContext(ctx)
2007	req.ApplyOptions(opts...)
2008	return out, req.Send()
2009}
2010
2011const opDescribeCustomRoutingEndpointGroup = "DescribeCustomRoutingEndpointGroup"
2012
2013// DescribeCustomRoutingEndpointGroupRequest generates a "aws/request.Request" representing the
2014// client's request for the DescribeCustomRoutingEndpointGroup operation. The "output" return
2015// value will be populated with the request's response once the request completes
2016// successfully.
2017//
2018// Use "Send" method on the returned Request to send the API call to the service.
2019// the "output" return value is not valid until after Send returns without error.
2020//
2021// See DescribeCustomRoutingEndpointGroup for more information on using the DescribeCustomRoutingEndpointGroup
2022// API call, and error handling.
2023//
2024// This method is useful when you want to inject custom logic or configuration
2025// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2026//
2027//
2028//    // Example sending a request using the DescribeCustomRoutingEndpointGroupRequest method.
2029//    req, resp := client.DescribeCustomRoutingEndpointGroupRequest(params)
2030//
2031//    err := req.Send()
2032//    if err == nil { // resp is now filled
2033//        fmt.Println(resp)
2034//    }
2035//
2036// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingEndpointGroup
2037func (c *GlobalAccelerator) DescribeCustomRoutingEndpointGroupRequest(input *DescribeCustomRoutingEndpointGroupInput) (req *request.Request, output *DescribeCustomRoutingEndpointGroupOutput) {
2038	op := &request.Operation{
2039		Name:       opDescribeCustomRoutingEndpointGroup,
2040		HTTPMethod: "POST",
2041		HTTPPath:   "/",
2042	}
2043
2044	if input == nil {
2045		input = &DescribeCustomRoutingEndpointGroupInput{}
2046	}
2047
2048	output = &DescribeCustomRoutingEndpointGroupOutput{}
2049	req = c.newRequest(op, input, output)
2050	return
2051}
2052
2053// DescribeCustomRoutingEndpointGroup API operation for AWS Global Accelerator.
2054//
2055// Describe an endpoint group for a custom routing accelerator.
2056//
2057// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2058// with awserr.Error's Code and Message methods to get detailed information about
2059// the error.
2060//
2061// See the AWS API reference guide for AWS Global Accelerator's
2062// API operation DescribeCustomRoutingEndpointGroup for usage and error information.
2063//
2064// Returned Error Types:
2065//   * InvalidArgumentException
2066//   An argument that you specified is invalid.
2067//
2068//   * EndpointGroupNotFoundException
2069//   The endpoint group that you specified doesn't exist.
2070//
2071//   * InternalServiceErrorException
2072//   There was an internal error for AWS Global Accelerator.
2073//
2074// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingEndpointGroup
2075func (c *GlobalAccelerator) DescribeCustomRoutingEndpointGroup(input *DescribeCustomRoutingEndpointGroupInput) (*DescribeCustomRoutingEndpointGroupOutput, error) {
2076	req, out := c.DescribeCustomRoutingEndpointGroupRequest(input)
2077	return out, req.Send()
2078}
2079
2080// DescribeCustomRoutingEndpointGroupWithContext is the same as DescribeCustomRoutingEndpointGroup with the addition of
2081// the ability to pass a context and additional request options.
2082//
2083// See DescribeCustomRoutingEndpointGroup for details on how to use this API operation.
2084//
2085// The context must be non-nil and will be used for request cancellation. If
2086// the context is nil a panic will occur. In the future the SDK may create
2087// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2088// for more information on using Contexts.
2089func (c *GlobalAccelerator) DescribeCustomRoutingEndpointGroupWithContext(ctx aws.Context, input *DescribeCustomRoutingEndpointGroupInput, opts ...request.Option) (*DescribeCustomRoutingEndpointGroupOutput, error) {
2090	req, out := c.DescribeCustomRoutingEndpointGroupRequest(input)
2091	req.SetContext(ctx)
2092	req.ApplyOptions(opts...)
2093	return out, req.Send()
2094}
2095
2096const opDescribeCustomRoutingListener = "DescribeCustomRoutingListener"
2097
2098// DescribeCustomRoutingListenerRequest generates a "aws/request.Request" representing the
2099// client's request for the DescribeCustomRoutingListener operation. The "output" return
2100// value will be populated with the request's response once the request completes
2101// successfully.
2102//
2103// Use "Send" method on the returned Request to send the API call to the service.
2104// the "output" return value is not valid until after Send returns without error.
2105//
2106// See DescribeCustomRoutingListener for more information on using the DescribeCustomRoutingListener
2107// API call, and error handling.
2108//
2109// This method is useful when you want to inject custom logic or configuration
2110// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2111//
2112//
2113//    // Example sending a request using the DescribeCustomRoutingListenerRequest method.
2114//    req, resp := client.DescribeCustomRoutingListenerRequest(params)
2115//
2116//    err := req.Send()
2117//    if err == nil { // resp is now filled
2118//        fmt.Println(resp)
2119//    }
2120//
2121// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingListener
2122func (c *GlobalAccelerator) DescribeCustomRoutingListenerRequest(input *DescribeCustomRoutingListenerInput) (req *request.Request, output *DescribeCustomRoutingListenerOutput) {
2123	op := &request.Operation{
2124		Name:       opDescribeCustomRoutingListener,
2125		HTTPMethod: "POST",
2126		HTTPPath:   "/",
2127	}
2128
2129	if input == nil {
2130		input = &DescribeCustomRoutingListenerInput{}
2131	}
2132
2133	output = &DescribeCustomRoutingListenerOutput{}
2134	req = c.newRequest(op, input, output)
2135	return
2136}
2137
2138// DescribeCustomRoutingListener API operation for AWS Global Accelerator.
2139//
2140// The description of a listener for a custom routing accelerator.
2141//
2142// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2143// with awserr.Error's Code and Message methods to get detailed information about
2144// the error.
2145//
2146// See the AWS API reference guide for AWS Global Accelerator's
2147// API operation DescribeCustomRoutingListener for usage and error information.
2148//
2149// Returned Error Types:
2150//   * InvalidArgumentException
2151//   An argument that you specified is invalid.
2152//
2153//   * ListenerNotFoundException
2154//   The listener that you specified doesn't exist.
2155//
2156//   * InternalServiceErrorException
2157//   There was an internal error for AWS Global Accelerator.
2158//
2159// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeCustomRoutingListener
2160func (c *GlobalAccelerator) DescribeCustomRoutingListener(input *DescribeCustomRoutingListenerInput) (*DescribeCustomRoutingListenerOutput, error) {
2161	req, out := c.DescribeCustomRoutingListenerRequest(input)
2162	return out, req.Send()
2163}
2164
2165// DescribeCustomRoutingListenerWithContext is the same as DescribeCustomRoutingListener with the addition of
2166// the ability to pass a context and additional request options.
2167//
2168// See DescribeCustomRoutingListener for details on how to use this API operation.
2169//
2170// The context must be non-nil and will be used for request cancellation. If
2171// the context is nil a panic will occur. In the future the SDK may create
2172// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2173// for more information on using Contexts.
2174func (c *GlobalAccelerator) DescribeCustomRoutingListenerWithContext(ctx aws.Context, input *DescribeCustomRoutingListenerInput, opts ...request.Option) (*DescribeCustomRoutingListenerOutput, error) {
2175	req, out := c.DescribeCustomRoutingListenerRequest(input)
2176	req.SetContext(ctx)
2177	req.ApplyOptions(opts...)
2178	return out, req.Send()
2179}
2180
2181const opDescribeEndpointGroup = "DescribeEndpointGroup"
2182
2183// DescribeEndpointGroupRequest generates a "aws/request.Request" representing the
2184// client's request for the DescribeEndpointGroup operation. The "output" return
2185// value will be populated with the request's response once the request completes
2186// successfully.
2187//
2188// Use "Send" method on the returned Request to send the API call to the service.
2189// the "output" return value is not valid until after Send returns without error.
2190//
2191// See DescribeEndpointGroup for more information on using the DescribeEndpointGroup
2192// API call, and error handling.
2193//
2194// This method is useful when you want to inject custom logic or configuration
2195// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2196//
2197//
2198//    // Example sending a request using the DescribeEndpointGroupRequest method.
2199//    req, resp := client.DescribeEndpointGroupRequest(params)
2200//
2201//    err := req.Send()
2202//    if err == nil { // resp is now filled
2203//        fmt.Println(resp)
2204//    }
2205//
2206// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeEndpointGroup
2207func (c *GlobalAccelerator) DescribeEndpointGroupRequest(input *DescribeEndpointGroupInput) (req *request.Request, output *DescribeEndpointGroupOutput) {
2208	op := &request.Operation{
2209		Name:       opDescribeEndpointGroup,
2210		HTTPMethod: "POST",
2211		HTTPPath:   "/",
2212	}
2213
2214	if input == nil {
2215		input = &DescribeEndpointGroupInput{}
2216	}
2217
2218	output = &DescribeEndpointGroupOutput{}
2219	req = c.newRequest(op, input, output)
2220	return
2221}
2222
2223// DescribeEndpointGroup API operation for AWS Global Accelerator.
2224//
2225// Describe an endpoint group.
2226//
2227// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2228// with awserr.Error's Code and Message methods to get detailed information about
2229// the error.
2230//
2231// See the AWS API reference guide for AWS Global Accelerator's
2232// API operation DescribeEndpointGroup for usage and error information.
2233//
2234// Returned Error Types:
2235//   * InvalidArgumentException
2236//   An argument that you specified is invalid.
2237//
2238//   * EndpointGroupNotFoundException
2239//   The endpoint group that you specified doesn't exist.
2240//
2241//   * InternalServiceErrorException
2242//   There was an internal error for AWS Global Accelerator.
2243//
2244// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeEndpointGroup
2245func (c *GlobalAccelerator) DescribeEndpointGroup(input *DescribeEndpointGroupInput) (*DescribeEndpointGroupOutput, error) {
2246	req, out := c.DescribeEndpointGroupRequest(input)
2247	return out, req.Send()
2248}
2249
2250// DescribeEndpointGroupWithContext is the same as DescribeEndpointGroup with the addition of
2251// the ability to pass a context and additional request options.
2252//
2253// See DescribeEndpointGroup for details on how to use this API operation.
2254//
2255// The context must be non-nil and will be used for request cancellation. If
2256// the context is nil a panic will occur. In the future the SDK may create
2257// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2258// for more information on using Contexts.
2259func (c *GlobalAccelerator) DescribeEndpointGroupWithContext(ctx aws.Context, input *DescribeEndpointGroupInput, opts ...request.Option) (*DescribeEndpointGroupOutput, error) {
2260	req, out := c.DescribeEndpointGroupRequest(input)
2261	req.SetContext(ctx)
2262	req.ApplyOptions(opts...)
2263	return out, req.Send()
2264}
2265
2266const opDescribeListener = "DescribeListener"
2267
2268// DescribeListenerRequest generates a "aws/request.Request" representing the
2269// client's request for the DescribeListener operation. The "output" return
2270// value will be populated with the request's response once the request completes
2271// successfully.
2272//
2273// Use "Send" method on the returned Request to send the API call to the service.
2274// the "output" return value is not valid until after Send returns without error.
2275//
2276// See DescribeListener for more information on using the DescribeListener
2277// API call, and error handling.
2278//
2279// This method is useful when you want to inject custom logic or configuration
2280// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2281//
2282//
2283//    // Example sending a request using the DescribeListenerRequest method.
2284//    req, resp := client.DescribeListenerRequest(params)
2285//
2286//    err := req.Send()
2287//    if err == nil { // resp is now filled
2288//        fmt.Println(resp)
2289//    }
2290//
2291// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeListener
2292func (c *GlobalAccelerator) DescribeListenerRequest(input *DescribeListenerInput) (req *request.Request, output *DescribeListenerOutput) {
2293	op := &request.Operation{
2294		Name:       opDescribeListener,
2295		HTTPMethod: "POST",
2296		HTTPPath:   "/",
2297	}
2298
2299	if input == nil {
2300		input = &DescribeListenerInput{}
2301	}
2302
2303	output = &DescribeListenerOutput{}
2304	req = c.newRequest(op, input, output)
2305	return
2306}
2307
2308// DescribeListener API operation for AWS Global Accelerator.
2309//
2310// Describe a listener.
2311//
2312// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2313// with awserr.Error's Code and Message methods to get detailed information about
2314// the error.
2315//
2316// See the AWS API reference guide for AWS Global Accelerator's
2317// API operation DescribeListener for usage and error information.
2318//
2319// Returned Error Types:
2320//   * InvalidArgumentException
2321//   An argument that you specified is invalid.
2322//
2323//   * ListenerNotFoundException
2324//   The listener that you specified doesn't exist.
2325//
2326//   * InternalServiceErrorException
2327//   There was an internal error for AWS Global Accelerator.
2328//
2329// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeListener
2330func (c *GlobalAccelerator) DescribeListener(input *DescribeListenerInput) (*DescribeListenerOutput, error) {
2331	req, out := c.DescribeListenerRequest(input)
2332	return out, req.Send()
2333}
2334
2335// DescribeListenerWithContext is the same as DescribeListener with the addition of
2336// the ability to pass a context and additional request options.
2337//
2338// See DescribeListener for details on how to use this API operation.
2339//
2340// The context must be non-nil and will be used for request cancellation. If
2341// the context is nil a panic will occur. In the future the SDK may create
2342// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2343// for more information on using Contexts.
2344func (c *GlobalAccelerator) DescribeListenerWithContext(ctx aws.Context, input *DescribeListenerInput, opts ...request.Option) (*DescribeListenerOutput, error) {
2345	req, out := c.DescribeListenerRequest(input)
2346	req.SetContext(ctx)
2347	req.ApplyOptions(opts...)
2348	return out, req.Send()
2349}
2350
2351const opListAccelerators = "ListAccelerators"
2352
2353// ListAcceleratorsRequest generates a "aws/request.Request" representing the
2354// client's request for the ListAccelerators operation. The "output" return
2355// value will be populated with the request's response once the request completes
2356// successfully.
2357//
2358// Use "Send" method on the returned Request to send the API call to the service.
2359// the "output" return value is not valid until after Send returns without error.
2360//
2361// See ListAccelerators for more information on using the ListAccelerators
2362// API call, and error handling.
2363//
2364// This method is useful when you want to inject custom logic or configuration
2365// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2366//
2367//
2368//    // Example sending a request using the ListAcceleratorsRequest method.
2369//    req, resp := client.ListAcceleratorsRequest(params)
2370//
2371//    err := req.Send()
2372//    if err == nil { // resp is now filled
2373//        fmt.Println(resp)
2374//    }
2375//
2376// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListAccelerators
2377func (c *GlobalAccelerator) ListAcceleratorsRequest(input *ListAcceleratorsInput) (req *request.Request, output *ListAcceleratorsOutput) {
2378	op := &request.Operation{
2379		Name:       opListAccelerators,
2380		HTTPMethod: "POST",
2381		HTTPPath:   "/",
2382		Paginator: &request.Paginator{
2383			InputTokens:     []string{"NextToken"},
2384			OutputTokens:    []string{"NextToken"},
2385			LimitToken:      "MaxResults",
2386			TruncationToken: "",
2387		},
2388	}
2389
2390	if input == nil {
2391		input = &ListAcceleratorsInput{}
2392	}
2393
2394	output = &ListAcceleratorsOutput{}
2395	req = c.newRequest(op, input, output)
2396	return
2397}
2398
2399// ListAccelerators API operation for AWS Global Accelerator.
2400//
2401// List the accelerators for an AWS account.
2402//
2403// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2404// with awserr.Error's Code and Message methods to get detailed information about
2405// the error.
2406//
2407// See the AWS API reference guide for AWS Global Accelerator's
2408// API operation ListAccelerators for usage and error information.
2409//
2410// Returned Error Types:
2411//   * InvalidArgumentException
2412//   An argument that you specified is invalid.
2413//
2414//   * InvalidNextTokenException
2415//   There isn't another item to return.
2416//
2417//   * InternalServiceErrorException
2418//   There was an internal error for AWS Global Accelerator.
2419//
2420// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListAccelerators
2421func (c *GlobalAccelerator) ListAccelerators(input *ListAcceleratorsInput) (*ListAcceleratorsOutput, error) {
2422	req, out := c.ListAcceleratorsRequest(input)
2423	return out, req.Send()
2424}
2425
2426// ListAcceleratorsWithContext is the same as ListAccelerators with the addition of
2427// the ability to pass a context and additional request options.
2428//
2429// See ListAccelerators for details on how to use this API operation.
2430//
2431// The context must be non-nil and will be used for request cancellation. If
2432// the context is nil a panic will occur. In the future the SDK may create
2433// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2434// for more information on using Contexts.
2435func (c *GlobalAccelerator) ListAcceleratorsWithContext(ctx aws.Context, input *ListAcceleratorsInput, opts ...request.Option) (*ListAcceleratorsOutput, error) {
2436	req, out := c.ListAcceleratorsRequest(input)
2437	req.SetContext(ctx)
2438	req.ApplyOptions(opts...)
2439	return out, req.Send()
2440}
2441
2442// ListAcceleratorsPages iterates over the pages of a ListAccelerators operation,
2443// calling the "fn" function with the response data for each page. To stop
2444// iterating, return false from the fn function.
2445//
2446// See ListAccelerators method for more information on how to use this operation.
2447//
2448// Note: This operation can generate multiple requests to a service.
2449//
2450//    // Example iterating over at most 3 pages of a ListAccelerators operation.
2451//    pageNum := 0
2452//    err := client.ListAcceleratorsPages(params,
2453//        func(page *globalaccelerator.ListAcceleratorsOutput, lastPage bool) bool {
2454//            pageNum++
2455//            fmt.Println(page)
2456//            return pageNum <= 3
2457//        })
2458//
2459func (c *GlobalAccelerator) ListAcceleratorsPages(input *ListAcceleratorsInput, fn func(*ListAcceleratorsOutput, bool) bool) error {
2460	return c.ListAcceleratorsPagesWithContext(aws.BackgroundContext(), input, fn)
2461}
2462
2463// ListAcceleratorsPagesWithContext same as ListAcceleratorsPages except
2464// it takes a Context and allows setting request options on the pages.
2465//
2466// The context must be non-nil and will be used for request cancellation. If
2467// the context is nil a panic will occur. In the future the SDK may create
2468// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2469// for more information on using Contexts.
2470func (c *GlobalAccelerator) ListAcceleratorsPagesWithContext(ctx aws.Context, input *ListAcceleratorsInput, fn func(*ListAcceleratorsOutput, bool) bool, opts ...request.Option) error {
2471	p := request.Pagination{
2472		NewRequest: func() (*request.Request, error) {
2473			var inCpy *ListAcceleratorsInput
2474			if input != nil {
2475				tmp := *input
2476				inCpy = &tmp
2477			}
2478			req, _ := c.ListAcceleratorsRequest(inCpy)
2479			req.SetContext(ctx)
2480			req.ApplyOptions(opts...)
2481			return req, nil
2482		},
2483	}
2484
2485	for p.Next() {
2486		if !fn(p.Page().(*ListAcceleratorsOutput), !p.HasNextPage()) {
2487			break
2488		}
2489	}
2490
2491	return p.Err()
2492}
2493
2494const opListByoipCidrs = "ListByoipCidrs"
2495
2496// ListByoipCidrsRequest generates a "aws/request.Request" representing the
2497// client's request for the ListByoipCidrs operation. The "output" return
2498// value will be populated with the request's response once the request completes
2499// successfully.
2500//
2501// Use "Send" method on the returned Request to send the API call to the service.
2502// the "output" return value is not valid until after Send returns without error.
2503//
2504// See ListByoipCidrs for more information on using the ListByoipCidrs
2505// API call, and error handling.
2506//
2507// This method is useful when you want to inject custom logic or configuration
2508// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2509//
2510//
2511//    // Example sending a request using the ListByoipCidrsRequest method.
2512//    req, resp := client.ListByoipCidrsRequest(params)
2513//
2514//    err := req.Send()
2515//    if err == nil { // resp is now filled
2516//        fmt.Println(resp)
2517//    }
2518//
2519// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListByoipCidrs
2520func (c *GlobalAccelerator) ListByoipCidrsRequest(input *ListByoipCidrsInput) (req *request.Request, output *ListByoipCidrsOutput) {
2521	op := &request.Operation{
2522		Name:       opListByoipCidrs,
2523		HTTPMethod: "POST",
2524		HTTPPath:   "/",
2525		Paginator: &request.Paginator{
2526			InputTokens:     []string{"NextToken"},
2527			OutputTokens:    []string{"NextToken"},
2528			LimitToken:      "MaxResults",
2529			TruncationToken: "",
2530		},
2531	}
2532
2533	if input == nil {
2534		input = &ListByoipCidrsInput{}
2535	}
2536
2537	output = &ListByoipCidrsOutput{}
2538	req = c.newRequest(op, input, output)
2539	return
2540}
2541
2542// ListByoipCidrs API operation for AWS Global Accelerator.
2543//
2544// Lists the IP address ranges that were specified in calls to ProvisionByoipCidr
2545// (https://docs.aws.amazon.com/global-accelerator/latest/api/ProvisionByoipCidr.html),
2546// including the current state and a history of state changes.
2547//
2548// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2549// with awserr.Error's Code and Message methods to get detailed information about
2550// the error.
2551//
2552// See the AWS API reference guide for AWS Global Accelerator's
2553// API operation ListByoipCidrs for usage and error information.
2554//
2555// Returned Error Types:
2556//   * InternalServiceErrorException
2557//   There was an internal error for AWS Global Accelerator.
2558//
2559//   * InvalidArgumentException
2560//   An argument that you specified is invalid.
2561//
2562//   * AccessDeniedException
2563//   You don't have access permission.
2564//
2565//   * InvalidNextTokenException
2566//   There isn't another item to return.
2567//
2568// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListByoipCidrs
2569func (c *GlobalAccelerator) ListByoipCidrs(input *ListByoipCidrsInput) (*ListByoipCidrsOutput, error) {
2570	req, out := c.ListByoipCidrsRequest(input)
2571	return out, req.Send()
2572}
2573
2574// ListByoipCidrsWithContext is the same as ListByoipCidrs with the addition of
2575// the ability to pass a context and additional request options.
2576//
2577// See ListByoipCidrs for details on how to use this API operation.
2578//
2579// The context must be non-nil and will be used for request cancellation. If
2580// the context is nil a panic will occur. In the future the SDK may create
2581// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2582// for more information on using Contexts.
2583func (c *GlobalAccelerator) ListByoipCidrsWithContext(ctx aws.Context, input *ListByoipCidrsInput, opts ...request.Option) (*ListByoipCidrsOutput, error) {
2584	req, out := c.ListByoipCidrsRequest(input)
2585	req.SetContext(ctx)
2586	req.ApplyOptions(opts...)
2587	return out, req.Send()
2588}
2589
2590// ListByoipCidrsPages iterates over the pages of a ListByoipCidrs operation,
2591// calling the "fn" function with the response data for each page. To stop
2592// iterating, return false from the fn function.
2593//
2594// See ListByoipCidrs method for more information on how to use this operation.
2595//
2596// Note: This operation can generate multiple requests to a service.
2597//
2598//    // Example iterating over at most 3 pages of a ListByoipCidrs operation.
2599//    pageNum := 0
2600//    err := client.ListByoipCidrsPages(params,
2601//        func(page *globalaccelerator.ListByoipCidrsOutput, lastPage bool) bool {
2602//            pageNum++
2603//            fmt.Println(page)
2604//            return pageNum <= 3
2605//        })
2606//
2607func (c *GlobalAccelerator) ListByoipCidrsPages(input *ListByoipCidrsInput, fn func(*ListByoipCidrsOutput, bool) bool) error {
2608	return c.ListByoipCidrsPagesWithContext(aws.BackgroundContext(), input, fn)
2609}
2610
2611// ListByoipCidrsPagesWithContext same as ListByoipCidrsPages except
2612// it takes a Context and allows setting request options on the pages.
2613//
2614// The context must be non-nil and will be used for request cancellation. If
2615// the context is nil a panic will occur. In the future the SDK may create
2616// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2617// for more information on using Contexts.
2618func (c *GlobalAccelerator) ListByoipCidrsPagesWithContext(ctx aws.Context, input *ListByoipCidrsInput, fn func(*ListByoipCidrsOutput, bool) bool, opts ...request.Option) error {
2619	p := request.Pagination{
2620		NewRequest: func() (*request.Request, error) {
2621			var inCpy *ListByoipCidrsInput
2622			if input != nil {
2623				tmp := *input
2624				inCpy = &tmp
2625			}
2626			req, _ := c.ListByoipCidrsRequest(inCpy)
2627			req.SetContext(ctx)
2628			req.ApplyOptions(opts...)
2629			return req, nil
2630		},
2631	}
2632
2633	for p.Next() {
2634		if !fn(p.Page().(*ListByoipCidrsOutput), !p.HasNextPage()) {
2635			break
2636		}
2637	}
2638
2639	return p.Err()
2640}
2641
2642const opListCustomRoutingAccelerators = "ListCustomRoutingAccelerators"
2643
2644// ListCustomRoutingAcceleratorsRequest generates a "aws/request.Request" representing the
2645// client's request for the ListCustomRoutingAccelerators operation. The "output" return
2646// value will be populated with the request's response once the request completes
2647// successfully.
2648//
2649// Use "Send" method on the returned Request to send the API call to the service.
2650// the "output" return value is not valid until after Send returns without error.
2651//
2652// See ListCustomRoutingAccelerators for more information on using the ListCustomRoutingAccelerators
2653// API call, and error handling.
2654//
2655// This method is useful when you want to inject custom logic or configuration
2656// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2657//
2658//
2659//    // Example sending a request using the ListCustomRoutingAcceleratorsRequest method.
2660//    req, resp := client.ListCustomRoutingAcceleratorsRequest(params)
2661//
2662//    err := req.Send()
2663//    if err == nil { // resp is now filled
2664//        fmt.Println(resp)
2665//    }
2666//
2667// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingAccelerators
2668func (c *GlobalAccelerator) ListCustomRoutingAcceleratorsRequest(input *ListCustomRoutingAcceleratorsInput) (req *request.Request, output *ListCustomRoutingAcceleratorsOutput) {
2669	op := &request.Operation{
2670		Name:       opListCustomRoutingAccelerators,
2671		HTTPMethod: "POST",
2672		HTTPPath:   "/",
2673		Paginator: &request.Paginator{
2674			InputTokens:     []string{"NextToken"},
2675			OutputTokens:    []string{"NextToken"},
2676			LimitToken:      "MaxResults",
2677			TruncationToken: "",
2678		},
2679	}
2680
2681	if input == nil {
2682		input = &ListCustomRoutingAcceleratorsInput{}
2683	}
2684
2685	output = &ListCustomRoutingAcceleratorsOutput{}
2686	req = c.newRequest(op, input, output)
2687	return
2688}
2689
2690// ListCustomRoutingAccelerators API operation for AWS Global Accelerator.
2691//
2692// List the custom routing accelerators for an AWS account.
2693//
2694// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2695// with awserr.Error's Code and Message methods to get detailed information about
2696// the error.
2697//
2698// See the AWS API reference guide for AWS Global Accelerator's
2699// API operation ListCustomRoutingAccelerators for usage and error information.
2700//
2701// Returned Error Types:
2702//   * InvalidArgumentException
2703//   An argument that you specified is invalid.
2704//
2705//   * InvalidNextTokenException
2706//   There isn't another item to return.
2707//
2708//   * InternalServiceErrorException
2709//   There was an internal error for AWS Global Accelerator.
2710//
2711// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingAccelerators
2712func (c *GlobalAccelerator) ListCustomRoutingAccelerators(input *ListCustomRoutingAcceleratorsInput) (*ListCustomRoutingAcceleratorsOutput, error) {
2713	req, out := c.ListCustomRoutingAcceleratorsRequest(input)
2714	return out, req.Send()
2715}
2716
2717// ListCustomRoutingAcceleratorsWithContext is the same as ListCustomRoutingAccelerators with the addition of
2718// the ability to pass a context and additional request options.
2719//
2720// See ListCustomRoutingAccelerators for details on how to use this API operation.
2721//
2722// The context must be non-nil and will be used for request cancellation. If
2723// the context is nil a panic will occur. In the future the SDK may create
2724// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2725// for more information on using Contexts.
2726func (c *GlobalAccelerator) ListCustomRoutingAcceleratorsWithContext(ctx aws.Context, input *ListCustomRoutingAcceleratorsInput, opts ...request.Option) (*ListCustomRoutingAcceleratorsOutput, error) {
2727	req, out := c.ListCustomRoutingAcceleratorsRequest(input)
2728	req.SetContext(ctx)
2729	req.ApplyOptions(opts...)
2730	return out, req.Send()
2731}
2732
2733// ListCustomRoutingAcceleratorsPages iterates over the pages of a ListCustomRoutingAccelerators operation,
2734// calling the "fn" function with the response data for each page. To stop
2735// iterating, return false from the fn function.
2736//
2737// See ListCustomRoutingAccelerators method for more information on how to use this operation.
2738//
2739// Note: This operation can generate multiple requests to a service.
2740//
2741//    // Example iterating over at most 3 pages of a ListCustomRoutingAccelerators operation.
2742//    pageNum := 0
2743//    err := client.ListCustomRoutingAcceleratorsPages(params,
2744//        func(page *globalaccelerator.ListCustomRoutingAcceleratorsOutput, lastPage bool) bool {
2745//            pageNum++
2746//            fmt.Println(page)
2747//            return pageNum <= 3
2748//        })
2749//
2750func (c *GlobalAccelerator) ListCustomRoutingAcceleratorsPages(input *ListCustomRoutingAcceleratorsInput, fn func(*ListCustomRoutingAcceleratorsOutput, bool) bool) error {
2751	return c.ListCustomRoutingAcceleratorsPagesWithContext(aws.BackgroundContext(), input, fn)
2752}
2753
2754// ListCustomRoutingAcceleratorsPagesWithContext same as ListCustomRoutingAcceleratorsPages except
2755// it takes a Context and allows setting request options on the pages.
2756//
2757// The context must be non-nil and will be used for request cancellation. If
2758// the context is nil a panic will occur. In the future the SDK may create
2759// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2760// for more information on using Contexts.
2761func (c *GlobalAccelerator) ListCustomRoutingAcceleratorsPagesWithContext(ctx aws.Context, input *ListCustomRoutingAcceleratorsInput, fn func(*ListCustomRoutingAcceleratorsOutput, bool) bool, opts ...request.Option) error {
2762	p := request.Pagination{
2763		NewRequest: func() (*request.Request, error) {
2764			var inCpy *ListCustomRoutingAcceleratorsInput
2765			if input != nil {
2766				tmp := *input
2767				inCpy = &tmp
2768			}
2769			req, _ := c.ListCustomRoutingAcceleratorsRequest(inCpy)
2770			req.SetContext(ctx)
2771			req.ApplyOptions(opts...)
2772			return req, nil
2773		},
2774	}
2775
2776	for p.Next() {
2777		if !fn(p.Page().(*ListCustomRoutingAcceleratorsOutput), !p.HasNextPage()) {
2778			break
2779		}
2780	}
2781
2782	return p.Err()
2783}
2784
2785const opListCustomRoutingEndpointGroups = "ListCustomRoutingEndpointGroups"
2786
2787// ListCustomRoutingEndpointGroupsRequest generates a "aws/request.Request" representing the
2788// client's request for the ListCustomRoutingEndpointGroups operation. The "output" return
2789// value will be populated with the request's response once the request completes
2790// successfully.
2791//
2792// Use "Send" method on the returned Request to send the API call to the service.
2793// the "output" return value is not valid until after Send returns without error.
2794//
2795// See ListCustomRoutingEndpointGroups for more information on using the ListCustomRoutingEndpointGroups
2796// API call, and error handling.
2797//
2798// This method is useful when you want to inject custom logic or configuration
2799// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2800//
2801//
2802//    // Example sending a request using the ListCustomRoutingEndpointGroupsRequest method.
2803//    req, resp := client.ListCustomRoutingEndpointGroupsRequest(params)
2804//
2805//    err := req.Send()
2806//    if err == nil { // resp is now filled
2807//        fmt.Println(resp)
2808//    }
2809//
2810// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingEndpointGroups
2811func (c *GlobalAccelerator) ListCustomRoutingEndpointGroupsRequest(input *ListCustomRoutingEndpointGroupsInput) (req *request.Request, output *ListCustomRoutingEndpointGroupsOutput) {
2812	op := &request.Operation{
2813		Name:       opListCustomRoutingEndpointGroups,
2814		HTTPMethod: "POST",
2815		HTTPPath:   "/",
2816		Paginator: &request.Paginator{
2817			InputTokens:     []string{"NextToken"},
2818			OutputTokens:    []string{"NextToken"},
2819			LimitToken:      "MaxResults",
2820			TruncationToken: "",
2821		},
2822	}
2823
2824	if input == nil {
2825		input = &ListCustomRoutingEndpointGroupsInput{}
2826	}
2827
2828	output = &ListCustomRoutingEndpointGroupsOutput{}
2829	req = c.newRequest(op, input, output)
2830	return
2831}
2832
2833// ListCustomRoutingEndpointGroups API operation for AWS Global Accelerator.
2834//
2835// List the endpoint groups that are associated with a listener for a custom
2836// routing accelerator.
2837//
2838// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2839// with awserr.Error's Code and Message methods to get detailed information about
2840// the error.
2841//
2842// See the AWS API reference guide for AWS Global Accelerator's
2843// API operation ListCustomRoutingEndpointGroups for usage and error information.
2844//
2845// Returned Error Types:
2846//   * ListenerNotFoundException
2847//   The listener that you specified doesn't exist.
2848//
2849//   * InvalidNextTokenException
2850//   There isn't another item to return.
2851//
2852//   * InvalidArgumentException
2853//   An argument that you specified is invalid.
2854//
2855//   * InternalServiceErrorException
2856//   There was an internal error for AWS Global Accelerator.
2857//
2858// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingEndpointGroups
2859func (c *GlobalAccelerator) ListCustomRoutingEndpointGroups(input *ListCustomRoutingEndpointGroupsInput) (*ListCustomRoutingEndpointGroupsOutput, error) {
2860	req, out := c.ListCustomRoutingEndpointGroupsRequest(input)
2861	return out, req.Send()
2862}
2863
2864// ListCustomRoutingEndpointGroupsWithContext is the same as ListCustomRoutingEndpointGroups with the addition of
2865// the ability to pass a context and additional request options.
2866//
2867// See ListCustomRoutingEndpointGroups for details on how to use this API operation.
2868//
2869// The context must be non-nil and will be used for request cancellation. If
2870// the context is nil a panic will occur. In the future the SDK may create
2871// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2872// for more information on using Contexts.
2873func (c *GlobalAccelerator) ListCustomRoutingEndpointGroupsWithContext(ctx aws.Context, input *ListCustomRoutingEndpointGroupsInput, opts ...request.Option) (*ListCustomRoutingEndpointGroupsOutput, error) {
2874	req, out := c.ListCustomRoutingEndpointGroupsRequest(input)
2875	req.SetContext(ctx)
2876	req.ApplyOptions(opts...)
2877	return out, req.Send()
2878}
2879
2880// ListCustomRoutingEndpointGroupsPages iterates over the pages of a ListCustomRoutingEndpointGroups operation,
2881// calling the "fn" function with the response data for each page. To stop
2882// iterating, return false from the fn function.
2883//
2884// See ListCustomRoutingEndpointGroups method for more information on how to use this operation.
2885//
2886// Note: This operation can generate multiple requests to a service.
2887//
2888//    // Example iterating over at most 3 pages of a ListCustomRoutingEndpointGroups operation.
2889//    pageNum := 0
2890//    err := client.ListCustomRoutingEndpointGroupsPages(params,
2891//        func(page *globalaccelerator.ListCustomRoutingEndpointGroupsOutput, lastPage bool) bool {
2892//            pageNum++
2893//            fmt.Println(page)
2894//            return pageNum <= 3
2895//        })
2896//
2897func (c *GlobalAccelerator) ListCustomRoutingEndpointGroupsPages(input *ListCustomRoutingEndpointGroupsInput, fn func(*ListCustomRoutingEndpointGroupsOutput, bool) bool) error {
2898	return c.ListCustomRoutingEndpointGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
2899}
2900
2901// ListCustomRoutingEndpointGroupsPagesWithContext same as ListCustomRoutingEndpointGroupsPages except
2902// it takes a Context and allows setting request options on the pages.
2903//
2904// The context must be non-nil and will be used for request cancellation. If
2905// the context is nil a panic will occur. In the future the SDK may create
2906// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2907// for more information on using Contexts.
2908func (c *GlobalAccelerator) ListCustomRoutingEndpointGroupsPagesWithContext(ctx aws.Context, input *ListCustomRoutingEndpointGroupsInput, fn func(*ListCustomRoutingEndpointGroupsOutput, bool) bool, opts ...request.Option) error {
2909	p := request.Pagination{
2910		NewRequest: func() (*request.Request, error) {
2911			var inCpy *ListCustomRoutingEndpointGroupsInput
2912			if input != nil {
2913				tmp := *input
2914				inCpy = &tmp
2915			}
2916			req, _ := c.ListCustomRoutingEndpointGroupsRequest(inCpy)
2917			req.SetContext(ctx)
2918			req.ApplyOptions(opts...)
2919			return req, nil
2920		},
2921	}
2922
2923	for p.Next() {
2924		if !fn(p.Page().(*ListCustomRoutingEndpointGroupsOutput), !p.HasNextPage()) {
2925			break
2926		}
2927	}
2928
2929	return p.Err()
2930}
2931
2932const opListCustomRoutingListeners = "ListCustomRoutingListeners"
2933
2934// ListCustomRoutingListenersRequest generates a "aws/request.Request" representing the
2935// client's request for the ListCustomRoutingListeners operation. The "output" return
2936// value will be populated with the request's response once the request completes
2937// successfully.
2938//
2939// Use "Send" method on the returned Request to send the API call to the service.
2940// the "output" return value is not valid until after Send returns without error.
2941//
2942// See ListCustomRoutingListeners for more information on using the ListCustomRoutingListeners
2943// API call, and error handling.
2944//
2945// This method is useful when you want to inject custom logic or configuration
2946// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2947//
2948//
2949//    // Example sending a request using the ListCustomRoutingListenersRequest method.
2950//    req, resp := client.ListCustomRoutingListenersRequest(params)
2951//
2952//    err := req.Send()
2953//    if err == nil { // resp is now filled
2954//        fmt.Println(resp)
2955//    }
2956//
2957// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingListeners
2958func (c *GlobalAccelerator) ListCustomRoutingListenersRequest(input *ListCustomRoutingListenersInput) (req *request.Request, output *ListCustomRoutingListenersOutput) {
2959	op := &request.Operation{
2960		Name:       opListCustomRoutingListeners,
2961		HTTPMethod: "POST",
2962		HTTPPath:   "/",
2963		Paginator: &request.Paginator{
2964			InputTokens:     []string{"NextToken"},
2965			OutputTokens:    []string{"NextToken"},
2966			LimitToken:      "MaxResults",
2967			TruncationToken: "",
2968		},
2969	}
2970
2971	if input == nil {
2972		input = &ListCustomRoutingListenersInput{}
2973	}
2974
2975	output = &ListCustomRoutingListenersOutput{}
2976	req = c.newRequest(op, input, output)
2977	return
2978}
2979
2980// ListCustomRoutingListeners API operation for AWS Global Accelerator.
2981//
2982// List the listeners for a custom routing accelerator.
2983//
2984// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2985// with awserr.Error's Code and Message methods to get detailed information about
2986// the error.
2987//
2988// See the AWS API reference guide for AWS Global Accelerator's
2989// API operation ListCustomRoutingListeners for usage and error information.
2990//
2991// Returned Error Types:
2992//   * InvalidArgumentException
2993//   An argument that you specified is invalid.
2994//
2995//   * AcceleratorNotFoundException
2996//   The accelerator that you specified doesn't exist.
2997//
2998//   * InvalidNextTokenException
2999//   There isn't another item to return.
3000//
3001//   * InternalServiceErrorException
3002//   There was an internal error for AWS Global Accelerator.
3003//
3004// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingListeners
3005func (c *GlobalAccelerator) ListCustomRoutingListeners(input *ListCustomRoutingListenersInput) (*ListCustomRoutingListenersOutput, error) {
3006	req, out := c.ListCustomRoutingListenersRequest(input)
3007	return out, req.Send()
3008}
3009
3010// ListCustomRoutingListenersWithContext is the same as ListCustomRoutingListeners with the addition of
3011// the ability to pass a context and additional request options.
3012//
3013// See ListCustomRoutingListeners for details on how to use this API operation.
3014//
3015// The context must be non-nil and will be used for request cancellation. If
3016// the context is nil a panic will occur. In the future the SDK may create
3017// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3018// for more information on using Contexts.
3019func (c *GlobalAccelerator) ListCustomRoutingListenersWithContext(ctx aws.Context, input *ListCustomRoutingListenersInput, opts ...request.Option) (*ListCustomRoutingListenersOutput, error) {
3020	req, out := c.ListCustomRoutingListenersRequest(input)
3021	req.SetContext(ctx)
3022	req.ApplyOptions(opts...)
3023	return out, req.Send()
3024}
3025
3026// ListCustomRoutingListenersPages iterates over the pages of a ListCustomRoutingListeners operation,
3027// calling the "fn" function with the response data for each page. To stop
3028// iterating, return false from the fn function.
3029//
3030// See ListCustomRoutingListeners method for more information on how to use this operation.
3031//
3032// Note: This operation can generate multiple requests to a service.
3033//
3034//    // Example iterating over at most 3 pages of a ListCustomRoutingListeners operation.
3035//    pageNum := 0
3036//    err := client.ListCustomRoutingListenersPages(params,
3037//        func(page *globalaccelerator.ListCustomRoutingListenersOutput, lastPage bool) bool {
3038//            pageNum++
3039//            fmt.Println(page)
3040//            return pageNum <= 3
3041//        })
3042//
3043func (c *GlobalAccelerator) ListCustomRoutingListenersPages(input *ListCustomRoutingListenersInput, fn func(*ListCustomRoutingListenersOutput, bool) bool) error {
3044	return c.ListCustomRoutingListenersPagesWithContext(aws.BackgroundContext(), input, fn)
3045}
3046
3047// ListCustomRoutingListenersPagesWithContext same as ListCustomRoutingListenersPages except
3048// it takes a Context and allows setting request options on the pages.
3049//
3050// The context must be non-nil and will be used for request cancellation. If
3051// the context is nil a panic will occur. In the future the SDK may create
3052// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3053// for more information on using Contexts.
3054func (c *GlobalAccelerator) ListCustomRoutingListenersPagesWithContext(ctx aws.Context, input *ListCustomRoutingListenersInput, fn func(*ListCustomRoutingListenersOutput, bool) bool, opts ...request.Option) error {
3055	p := request.Pagination{
3056		NewRequest: func() (*request.Request, error) {
3057			var inCpy *ListCustomRoutingListenersInput
3058			if input != nil {
3059				tmp := *input
3060				inCpy = &tmp
3061			}
3062			req, _ := c.ListCustomRoutingListenersRequest(inCpy)
3063			req.SetContext(ctx)
3064			req.ApplyOptions(opts...)
3065			return req, nil
3066		},
3067	}
3068
3069	for p.Next() {
3070		if !fn(p.Page().(*ListCustomRoutingListenersOutput), !p.HasNextPage()) {
3071			break
3072		}
3073	}
3074
3075	return p.Err()
3076}
3077
3078const opListCustomRoutingPortMappings = "ListCustomRoutingPortMappings"
3079
3080// ListCustomRoutingPortMappingsRequest generates a "aws/request.Request" representing the
3081// client's request for the ListCustomRoutingPortMappings operation. The "output" return
3082// value will be populated with the request's response once the request completes
3083// successfully.
3084//
3085// Use "Send" method on the returned Request to send the API call to the service.
3086// the "output" return value is not valid until after Send returns without error.
3087//
3088// See ListCustomRoutingPortMappings for more information on using the ListCustomRoutingPortMappings
3089// API call, and error handling.
3090//
3091// This method is useful when you want to inject custom logic or configuration
3092// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3093//
3094//
3095//    // Example sending a request using the ListCustomRoutingPortMappingsRequest method.
3096//    req, resp := client.ListCustomRoutingPortMappingsRequest(params)
3097//
3098//    err := req.Send()
3099//    if err == nil { // resp is now filled
3100//        fmt.Println(resp)
3101//    }
3102//
3103// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingPortMappings
3104func (c *GlobalAccelerator) ListCustomRoutingPortMappingsRequest(input *ListCustomRoutingPortMappingsInput) (req *request.Request, output *ListCustomRoutingPortMappingsOutput) {
3105	op := &request.Operation{
3106		Name:       opListCustomRoutingPortMappings,
3107		HTTPMethod: "POST",
3108		HTTPPath:   "/",
3109		Paginator: &request.Paginator{
3110			InputTokens:     []string{"NextToken"},
3111			OutputTokens:    []string{"NextToken"},
3112			LimitToken:      "MaxResults",
3113			TruncationToken: "",
3114		},
3115	}
3116
3117	if input == nil {
3118		input = &ListCustomRoutingPortMappingsInput{}
3119	}
3120
3121	output = &ListCustomRoutingPortMappingsOutput{}
3122	req = c.newRequest(op, input, output)
3123	return
3124}
3125
3126// ListCustomRoutingPortMappings API operation for AWS Global Accelerator.
3127//
3128// Provides a complete mapping from the public accelerator IP address and port
3129// to destination EC2 instance IP addresses and ports in the virtual public
3130// cloud (VPC) subnet endpoint for a custom routing accelerator. For each subnet
3131// endpoint that you add, Global Accelerator creates a new static port mapping
3132// for the accelerator. The port mappings don't change after Global Accelerator
3133// generates them, so you can retrieve and cache the full mapping on your servers.
3134//
3135// If you remove a subnet from your accelerator, Global Accelerator removes
3136// (reclaims) the port mappings. If you add a subnet to your accelerator, Global
3137// Accelerator creates new port mappings (the existing ones don't change). If
3138// you add or remove EC2 instances in your subnet, the port mappings don't change,
3139// because the mappings are created when you add the subnet to Global Accelerator.
3140//
3141// The mappings also include a flag for each destination denoting which destination
3142// IP addresses and ports are allowed or denied traffic.
3143//
3144// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3145// with awserr.Error's Code and Message methods to get detailed information about
3146// the error.
3147//
3148// See the AWS API reference guide for AWS Global Accelerator's
3149// API operation ListCustomRoutingPortMappings for usage and error information.
3150//
3151// Returned Error Types:
3152//   * InvalidArgumentException
3153//   An argument that you specified is invalid.
3154//
3155//   * InvalidNextTokenException
3156//   There isn't another item to return.
3157//
3158//   * EndpointGroupNotFoundException
3159//   The endpoint group that you specified doesn't exist.
3160//
3161//   * AcceleratorNotFoundException
3162//   The accelerator that you specified doesn't exist.
3163//
3164//   * InternalServiceErrorException
3165//   There was an internal error for AWS Global Accelerator.
3166//
3167// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingPortMappings
3168func (c *GlobalAccelerator) ListCustomRoutingPortMappings(input *ListCustomRoutingPortMappingsInput) (*ListCustomRoutingPortMappingsOutput, error) {
3169	req, out := c.ListCustomRoutingPortMappingsRequest(input)
3170	return out, req.Send()
3171}
3172
3173// ListCustomRoutingPortMappingsWithContext is the same as ListCustomRoutingPortMappings with the addition of
3174// the ability to pass a context and additional request options.
3175//
3176// See ListCustomRoutingPortMappings for details on how to use this API operation.
3177//
3178// The context must be non-nil and will be used for request cancellation. If
3179// the context is nil a panic will occur. In the future the SDK may create
3180// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3181// for more information on using Contexts.
3182func (c *GlobalAccelerator) ListCustomRoutingPortMappingsWithContext(ctx aws.Context, input *ListCustomRoutingPortMappingsInput, opts ...request.Option) (*ListCustomRoutingPortMappingsOutput, error) {
3183	req, out := c.ListCustomRoutingPortMappingsRequest(input)
3184	req.SetContext(ctx)
3185	req.ApplyOptions(opts...)
3186	return out, req.Send()
3187}
3188
3189// ListCustomRoutingPortMappingsPages iterates over the pages of a ListCustomRoutingPortMappings operation,
3190// calling the "fn" function with the response data for each page. To stop
3191// iterating, return false from the fn function.
3192//
3193// See ListCustomRoutingPortMappings method for more information on how to use this operation.
3194//
3195// Note: This operation can generate multiple requests to a service.
3196//
3197//    // Example iterating over at most 3 pages of a ListCustomRoutingPortMappings operation.
3198//    pageNum := 0
3199//    err := client.ListCustomRoutingPortMappingsPages(params,
3200//        func(page *globalaccelerator.ListCustomRoutingPortMappingsOutput, lastPage bool) bool {
3201//            pageNum++
3202//            fmt.Println(page)
3203//            return pageNum <= 3
3204//        })
3205//
3206func (c *GlobalAccelerator) ListCustomRoutingPortMappingsPages(input *ListCustomRoutingPortMappingsInput, fn func(*ListCustomRoutingPortMappingsOutput, bool) bool) error {
3207	return c.ListCustomRoutingPortMappingsPagesWithContext(aws.BackgroundContext(), input, fn)
3208}
3209
3210// ListCustomRoutingPortMappingsPagesWithContext same as ListCustomRoutingPortMappingsPages except
3211// it takes a Context and allows setting request options on the pages.
3212//
3213// The context must be non-nil and will be used for request cancellation. If
3214// the context is nil a panic will occur. In the future the SDK may create
3215// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3216// for more information on using Contexts.
3217func (c *GlobalAccelerator) ListCustomRoutingPortMappingsPagesWithContext(ctx aws.Context, input *ListCustomRoutingPortMappingsInput, fn func(*ListCustomRoutingPortMappingsOutput, bool) bool, opts ...request.Option) error {
3218	p := request.Pagination{
3219		NewRequest: func() (*request.Request, error) {
3220			var inCpy *ListCustomRoutingPortMappingsInput
3221			if input != nil {
3222				tmp := *input
3223				inCpy = &tmp
3224			}
3225			req, _ := c.ListCustomRoutingPortMappingsRequest(inCpy)
3226			req.SetContext(ctx)
3227			req.ApplyOptions(opts...)
3228			return req, nil
3229		},
3230	}
3231
3232	for p.Next() {
3233		if !fn(p.Page().(*ListCustomRoutingPortMappingsOutput), !p.HasNextPage()) {
3234			break
3235		}
3236	}
3237
3238	return p.Err()
3239}
3240
3241const opListCustomRoutingPortMappingsByDestination = "ListCustomRoutingPortMappingsByDestination"
3242
3243// ListCustomRoutingPortMappingsByDestinationRequest generates a "aws/request.Request" representing the
3244// client's request for the ListCustomRoutingPortMappingsByDestination operation. The "output" return
3245// value will be populated with the request's response once the request completes
3246// successfully.
3247//
3248// Use "Send" method on the returned Request to send the API call to the service.
3249// the "output" return value is not valid until after Send returns without error.
3250//
3251// See ListCustomRoutingPortMappingsByDestination for more information on using the ListCustomRoutingPortMappingsByDestination
3252// API call, and error handling.
3253//
3254// This method is useful when you want to inject custom logic or configuration
3255// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3256//
3257//
3258//    // Example sending a request using the ListCustomRoutingPortMappingsByDestinationRequest method.
3259//    req, resp := client.ListCustomRoutingPortMappingsByDestinationRequest(params)
3260//
3261//    err := req.Send()
3262//    if err == nil { // resp is now filled
3263//        fmt.Println(resp)
3264//    }
3265//
3266// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingPortMappingsByDestination
3267func (c *GlobalAccelerator) ListCustomRoutingPortMappingsByDestinationRequest(input *ListCustomRoutingPortMappingsByDestinationInput) (req *request.Request, output *ListCustomRoutingPortMappingsByDestinationOutput) {
3268	op := &request.Operation{
3269		Name:       opListCustomRoutingPortMappingsByDestination,
3270		HTTPMethod: "POST",
3271		HTTPPath:   "/",
3272		Paginator: &request.Paginator{
3273			InputTokens:     []string{"NextToken"},
3274			OutputTokens:    []string{"NextToken"},
3275			LimitToken:      "MaxResults",
3276			TruncationToken: "",
3277		},
3278	}
3279
3280	if input == nil {
3281		input = &ListCustomRoutingPortMappingsByDestinationInput{}
3282	}
3283
3284	output = &ListCustomRoutingPortMappingsByDestinationOutput{}
3285	req = c.newRequest(op, input, output)
3286	return
3287}
3288
3289// ListCustomRoutingPortMappingsByDestination API operation for AWS Global Accelerator.
3290//
3291// List the port mappings for a specific EC2 instance (destination) in a VPC
3292// subnet endpoint. The response is the mappings for one destination IP address.
3293// This is useful when your subnet endpoint has mappings that span multiple
3294// custom routing accelerators in your account, or for scenarios where you only
3295// want to list the port mappings for a specific destination instance.
3296//
3297// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3298// with awserr.Error's Code and Message methods to get detailed information about
3299// the error.
3300//
3301// See the AWS API reference guide for AWS Global Accelerator's
3302// API operation ListCustomRoutingPortMappingsByDestination for usage and error information.
3303//
3304// Returned Error Types:
3305//   * InvalidArgumentException
3306//   An argument that you specified is invalid.
3307//
3308//   * InvalidNextTokenException
3309//   There isn't another item to return.
3310//
3311//   * EndpointNotFoundException
3312//   The endpoint that you specified doesn't exist.
3313//
3314//   * InternalServiceErrorException
3315//   There was an internal error for AWS Global Accelerator.
3316//
3317// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListCustomRoutingPortMappingsByDestination
3318func (c *GlobalAccelerator) ListCustomRoutingPortMappingsByDestination(input *ListCustomRoutingPortMappingsByDestinationInput) (*ListCustomRoutingPortMappingsByDestinationOutput, error) {
3319	req, out := c.ListCustomRoutingPortMappingsByDestinationRequest(input)
3320	return out, req.Send()
3321}
3322
3323// ListCustomRoutingPortMappingsByDestinationWithContext is the same as ListCustomRoutingPortMappingsByDestination with the addition of
3324// the ability to pass a context and additional request options.
3325//
3326// See ListCustomRoutingPortMappingsByDestination for details on how to use this API operation.
3327//
3328// The context must be non-nil and will be used for request cancellation. If
3329// the context is nil a panic will occur. In the future the SDK may create
3330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3331// for more information on using Contexts.
3332func (c *GlobalAccelerator) ListCustomRoutingPortMappingsByDestinationWithContext(ctx aws.Context, input *ListCustomRoutingPortMappingsByDestinationInput, opts ...request.Option) (*ListCustomRoutingPortMappingsByDestinationOutput, error) {
3333	req, out := c.ListCustomRoutingPortMappingsByDestinationRequest(input)
3334	req.SetContext(ctx)
3335	req.ApplyOptions(opts...)
3336	return out, req.Send()
3337}
3338
3339// ListCustomRoutingPortMappingsByDestinationPages iterates over the pages of a ListCustomRoutingPortMappingsByDestination operation,
3340// calling the "fn" function with the response data for each page. To stop
3341// iterating, return false from the fn function.
3342//
3343// See ListCustomRoutingPortMappingsByDestination method for more information on how to use this operation.
3344//
3345// Note: This operation can generate multiple requests to a service.
3346//
3347//    // Example iterating over at most 3 pages of a ListCustomRoutingPortMappingsByDestination operation.
3348//    pageNum := 0
3349//    err := client.ListCustomRoutingPortMappingsByDestinationPages(params,
3350//        func(page *globalaccelerator.ListCustomRoutingPortMappingsByDestinationOutput, lastPage bool) bool {
3351//            pageNum++
3352//            fmt.Println(page)
3353//            return pageNum <= 3
3354//        })
3355//
3356func (c *GlobalAccelerator) ListCustomRoutingPortMappingsByDestinationPages(input *ListCustomRoutingPortMappingsByDestinationInput, fn func(*ListCustomRoutingPortMappingsByDestinationOutput, bool) bool) error {
3357	return c.ListCustomRoutingPortMappingsByDestinationPagesWithContext(aws.BackgroundContext(), input, fn)
3358}
3359
3360// ListCustomRoutingPortMappingsByDestinationPagesWithContext same as ListCustomRoutingPortMappingsByDestinationPages except
3361// it takes a Context and allows setting request options on the pages.
3362//
3363// The context must be non-nil and will be used for request cancellation. If
3364// the context is nil a panic will occur. In the future the SDK may create
3365// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3366// for more information on using Contexts.
3367func (c *GlobalAccelerator) ListCustomRoutingPortMappingsByDestinationPagesWithContext(ctx aws.Context, input *ListCustomRoutingPortMappingsByDestinationInput, fn func(*ListCustomRoutingPortMappingsByDestinationOutput, bool) bool, opts ...request.Option) error {
3368	p := request.Pagination{
3369		NewRequest: func() (*request.Request, error) {
3370			var inCpy *ListCustomRoutingPortMappingsByDestinationInput
3371			if input != nil {
3372				tmp := *input
3373				inCpy = &tmp
3374			}
3375			req, _ := c.ListCustomRoutingPortMappingsByDestinationRequest(inCpy)
3376			req.SetContext(ctx)
3377			req.ApplyOptions(opts...)
3378			return req, nil
3379		},
3380	}
3381
3382	for p.Next() {
3383		if !fn(p.Page().(*ListCustomRoutingPortMappingsByDestinationOutput), !p.HasNextPage()) {
3384			break
3385		}
3386	}
3387
3388	return p.Err()
3389}
3390
3391const opListEndpointGroups = "ListEndpointGroups"
3392
3393// ListEndpointGroupsRequest generates a "aws/request.Request" representing the
3394// client's request for the ListEndpointGroups operation. The "output" return
3395// value will be populated with the request's response once the request completes
3396// successfully.
3397//
3398// Use "Send" method on the returned Request to send the API call to the service.
3399// the "output" return value is not valid until after Send returns without error.
3400//
3401// See ListEndpointGroups for more information on using the ListEndpointGroups
3402// API call, and error handling.
3403//
3404// This method is useful when you want to inject custom logic or configuration
3405// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3406//
3407//
3408//    // Example sending a request using the ListEndpointGroupsRequest method.
3409//    req, resp := client.ListEndpointGroupsRequest(params)
3410//
3411//    err := req.Send()
3412//    if err == nil { // resp is now filled
3413//        fmt.Println(resp)
3414//    }
3415//
3416// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListEndpointGroups
3417func (c *GlobalAccelerator) ListEndpointGroupsRequest(input *ListEndpointGroupsInput) (req *request.Request, output *ListEndpointGroupsOutput) {
3418	op := &request.Operation{
3419		Name:       opListEndpointGroups,
3420		HTTPMethod: "POST",
3421		HTTPPath:   "/",
3422		Paginator: &request.Paginator{
3423			InputTokens:     []string{"NextToken"},
3424			OutputTokens:    []string{"NextToken"},
3425			LimitToken:      "MaxResults",
3426			TruncationToken: "",
3427		},
3428	}
3429
3430	if input == nil {
3431		input = &ListEndpointGroupsInput{}
3432	}
3433
3434	output = &ListEndpointGroupsOutput{}
3435	req = c.newRequest(op, input, output)
3436	return
3437}
3438
3439// ListEndpointGroups API operation for AWS Global Accelerator.
3440//
3441// List the endpoint groups that are associated with a listener.
3442//
3443// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3444// with awserr.Error's Code and Message methods to get detailed information about
3445// the error.
3446//
3447// See the AWS API reference guide for AWS Global Accelerator's
3448// API operation ListEndpointGroups for usage and error information.
3449//
3450// Returned Error Types:
3451//   * ListenerNotFoundException
3452//   The listener that you specified doesn't exist.
3453//
3454//   * InvalidNextTokenException
3455//   There isn't another item to return.
3456//
3457//   * InvalidArgumentException
3458//   An argument that you specified is invalid.
3459//
3460//   * InternalServiceErrorException
3461//   There was an internal error for AWS Global Accelerator.
3462//
3463// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListEndpointGroups
3464func (c *GlobalAccelerator) ListEndpointGroups(input *ListEndpointGroupsInput) (*ListEndpointGroupsOutput, error) {
3465	req, out := c.ListEndpointGroupsRequest(input)
3466	return out, req.Send()
3467}
3468
3469// ListEndpointGroupsWithContext is the same as ListEndpointGroups with the addition of
3470// the ability to pass a context and additional request options.
3471//
3472// See ListEndpointGroups for details on how to use this API operation.
3473//
3474// The context must be non-nil and will be used for request cancellation. If
3475// the context is nil a panic will occur. In the future the SDK may create
3476// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3477// for more information on using Contexts.
3478func (c *GlobalAccelerator) ListEndpointGroupsWithContext(ctx aws.Context, input *ListEndpointGroupsInput, opts ...request.Option) (*ListEndpointGroupsOutput, error) {
3479	req, out := c.ListEndpointGroupsRequest(input)
3480	req.SetContext(ctx)
3481	req.ApplyOptions(opts...)
3482	return out, req.Send()
3483}
3484
3485// ListEndpointGroupsPages iterates over the pages of a ListEndpointGroups operation,
3486// calling the "fn" function with the response data for each page. To stop
3487// iterating, return false from the fn function.
3488//
3489// See ListEndpointGroups method for more information on how to use this operation.
3490//
3491// Note: This operation can generate multiple requests to a service.
3492//
3493//    // Example iterating over at most 3 pages of a ListEndpointGroups operation.
3494//    pageNum := 0
3495//    err := client.ListEndpointGroupsPages(params,
3496//        func(page *globalaccelerator.ListEndpointGroupsOutput, lastPage bool) bool {
3497//            pageNum++
3498//            fmt.Println(page)
3499//            return pageNum <= 3
3500//        })
3501//
3502func (c *GlobalAccelerator) ListEndpointGroupsPages(input *ListEndpointGroupsInput, fn func(*ListEndpointGroupsOutput, bool) bool) error {
3503	return c.ListEndpointGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
3504}
3505
3506// ListEndpointGroupsPagesWithContext same as ListEndpointGroupsPages except
3507// it takes a Context and allows setting request options on the pages.
3508//
3509// The context must be non-nil and will be used for request cancellation. If
3510// the context is nil a panic will occur. In the future the SDK may create
3511// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3512// for more information on using Contexts.
3513func (c *GlobalAccelerator) ListEndpointGroupsPagesWithContext(ctx aws.Context, input *ListEndpointGroupsInput, fn func(*ListEndpointGroupsOutput, bool) bool, opts ...request.Option) error {
3514	p := request.Pagination{
3515		NewRequest: func() (*request.Request, error) {
3516			var inCpy *ListEndpointGroupsInput
3517			if input != nil {
3518				tmp := *input
3519				inCpy = &tmp
3520			}
3521			req, _ := c.ListEndpointGroupsRequest(inCpy)
3522			req.SetContext(ctx)
3523			req.ApplyOptions(opts...)
3524			return req, nil
3525		},
3526	}
3527
3528	for p.Next() {
3529		if !fn(p.Page().(*ListEndpointGroupsOutput), !p.HasNextPage()) {
3530			break
3531		}
3532	}
3533
3534	return p.Err()
3535}
3536
3537const opListListeners = "ListListeners"
3538
3539// ListListenersRequest generates a "aws/request.Request" representing the
3540// client's request for the ListListeners operation. The "output" return
3541// value will be populated with the request's response once the request completes
3542// successfully.
3543//
3544// Use "Send" method on the returned Request to send the API call to the service.
3545// the "output" return value is not valid until after Send returns without error.
3546//
3547// See ListListeners for more information on using the ListListeners
3548// API call, and error handling.
3549//
3550// This method is useful when you want to inject custom logic or configuration
3551// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3552//
3553//
3554//    // Example sending a request using the ListListenersRequest method.
3555//    req, resp := client.ListListenersRequest(params)
3556//
3557//    err := req.Send()
3558//    if err == nil { // resp is now filled
3559//        fmt.Println(resp)
3560//    }
3561//
3562// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListListeners
3563func (c *GlobalAccelerator) ListListenersRequest(input *ListListenersInput) (req *request.Request, output *ListListenersOutput) {
3564	op := &request.Operation{
3565		Name:       opListListeners,
3566		HTTPMethod: "POST",
3567		HTTPPath:   "/",
3568		Paginator: &request.Paginator{
3569			InputTokens:     []string{"NextToken"},
3570			OutputTokens:    []string{"NextToken"},
3571			LimitToken:      "MaxResults",
3572			TruncationToken: "",
3573		},
3574	}
3575
3576	if input == nil {
3577		input = &ListListenersInput{}
3578	}
3579
3580	output = &ListListenersOutput{}
3581	req = c.newRequest(op, input, output)
3582	return
3583}
3584
3585// ListListeners API operation for AWS Global Accelerator.
3586//
3587// List the listeners for an accelerator.
3588//
3589// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3590// with awserr.Error's Code and Message methods to get detailed information about
3591// the error.
3592//
3593// See the AWS API reference guide for AWS Global Accelerator's
3594// API operation ListListeners for usage and error information.
3595//
3596// Returned Error Types:
3597//   * InvalidArgumentException
3598//   An argument that you specified is invalid.
3599//
3600//   * AcceleratorNotFoundException
3601//   The accelerator that you specified doesn't exist.
3602//
3603//   * InvalidNextTokenException
3604//   There isn't another item to return.
3605//
3606//   * InternalServiceErrorException
3607//   There was an internal error for AWS Global Accelerator.
3608//
3609// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListListeners
3610func (c *GlobalAccelerator) ListListeners(input *ListListenersInput) (*ListListenersOutput, error) {
3611	req, out := c.ListListenersRequest(input)
3612	return out, req.Send()
3613}
3614
3615// ListListenersWithContext is the same as ListListeners with the addition of
3616// the ability to pass a context and additional request options.
3617//
3618// See ListListeners for details on how to use this API operation.
3619//
3620// The context must be non-nil and will be used for request cancellation. If
3621// the context is nil a panic will occur. In the future the SDK may create
3622// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3623// for more information on using Contexts.
3624func (c *GlobalAccelerator) ListListenersWithContext(ctx aws.Context, input *ListListenersInput, opts ...request.Option) (*ListListenersOutput, error) {
3625	req, out := c.ListListenersRequest(input)
3626	req.SetContext(ctx)
3627	req.ApplyOptions(opts...)
3628	return out, req.Send()
3629}
3630
3631// ListListenersPages iterates over the pages of a ListListeners operation,
3632// calling the "fn" function with the response data for each page. To stop
3633// iterating, return false from the fn function.
3634//
3635// See ListListeners method for more information on how to use this operation.
3636//
3637// Note: This operation can generate multiple requests to a service.
3638//
3639//    // Example iterating over at most 3 pages of a ListListeners operation.
3640//    pageNum := 0
3641//    err := client.ListListenersPages(params,
3642//        func(page *globalaccelerator.ListListenersOutput, lastPage bool) bool {
3643//            pageNum++
3644//            fmt.Println(page)
3645//            return pageNum <= 3
3646//        })
3647//
3648func (c *GlobalAccelerator) ListListenersPages(input *ListListenersInput, fn func(*ListListenersOutput, bool) bool) error {
3649	return c.ListListenersPagesWithContext(aws.BackgroundContext(), input, fn)
3650}
3651
3652// ListListenersPagesWithContext same as ListListenersPages except
3653// it takes a Context and allows setting request options on the pages.
3654//
3655// The context must be non-nil and will be used for request cancellation. If
3656// the context is nil a panic will occur. In the future the SDK may create
3657// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3658// for more information on using Contexts.
3659func (c *GlobalAccelerator) ListListenersPagesWithContext(ctx aws.Context, input *ListListenersInput, fn func(*ListListenersOutput, bool) bool, opts ...request.Option) error {
3660	p := request.Pagination{
3661		NewRequest: func() (*request.Request, error) {
3662			var inCpy *ListListenersInput
3663			if input != nil {
3664				tmp := *input
3665				inCpy = &tmp
3666			}
3667			req, _ := c.ListListenersRequest(inCpy)
3668			req.SetContext(ctx)
3669			req.ApplyOptions(opts...)
3670			return req, nil
3671		},
3672	}
3673
3674	for p.Next() {
3675		if !fn(p.Page().(*ListListenersOutput), !p.HasNextPage()) {
3676			break
3677		}
3678	}
3679
3680	return p.Err()
3681}
3682
3683const opListTagsForResource = "ListTagsForResource"
3684
3685// ListTagsForResourceRequest generates a "aws/request.Request" representing the
3686// client's request for the ListTagsForResource operation. The "output" return
3687// value will be populated with the request's response once the request completes
3688// successfully.
3689//
3690// Use "Send" method on the returned Request to send the API call to the service.
3691// the "output" return value is not valid until after Send returns without error.
3692//
3693// See ListTagsForResource for more information on using the ListTagsForResource
3694// API call, and error handling.
3695//
3696// This method is useful when you want to inject custom logic or configuration
3697// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3698//
3699//
3700//    // Example sending a request using the ListTagsForResourceRequest method.
3701//    req, resp := client.ListTagsForResourceRequest(params)
3702//
3703//    err := req.Send()
3704//    if err == nil { // resp is now filled
3705//        fmt.Println(resp)
3706//    }
3707//
3708// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListTagsForResource
3709func (c *GlobalAccelerator) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
3710	op := &request.Operation{
3711		Name:       opListTagsForResource,
3712		HTTPMethod: "POST",
3713		HTTPPath:   "/",
3714	}
3715
3716	if input == nil {
3717		input = &ListTagsForResourceInput{}
3718	}
3719
3720	output = &ListTagsForResourceOutput{}
3721	req = c.newRequest(op, input, output)
3722	return
3723}
3724
3725// ListTagsForResource API operation for AWS Global Accelerator.
3726//
3727// List all tags for an accelerator.
3728//
3729// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
3730// in the AWS Global Accelerator Developer Guide.
3731//
3732// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3733// with awserr.Error's Code and Message methods to get detailed information about
3734// the error.
3735//
3736// See the AWS API reference guide for AWS Global Accelerator's
3737// API operation ListTagsForResource for usage and error information.
3738//
3739// Returned Error Types:
3740//   * AcceleratorNotFoundException
3741//   The accelerator that you specified doesn't exist.
3742//
3743//   * InternalServiceErrorException
3744//   There was an internal error for AWS Global Accelerator.
3745//
3746//   * InvalidArgumentException
3747//   An argument that you specified is invalid.
3748//
3749// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListTagsForResource
3750func (c *GlobalAccelerator) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
3751	req, out := c.ListTagsForResourceRequest(input)
3752	return out, req.Send()
3753}
3754
3755// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
3756// the ability to pass a context and additional request options.
3757//
3758// See ListTagsForResource for details on how to use this API operation.
3759//
3760// The context must be non-nil and will be used for request cancellation. If
3761// the context is nil a panic will occur. In the future the SDK may create
3762// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3763// for more information on using Contexts.
3764func (c *GlobalAccelerator) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
3765	req, out := c.ListTagsForResourceRequest(input)
3766	req.SetContext(ctx)
3767	req.ApplyOptions(opts...)
3768	return out, req.Send()
3769}
3770
3771const opProvisionByoipCidr = "ProvisionByoipCidr"
3772
3773// ProvisionByoipCidrRequest generates a "aws/request.Request" representing the
3774// client's request for the ProvisionByoipCidr operation. The "output" return
3775// value will be populated with the request's response once the request completes
3776// successfully.
3777//
3778// Use "Send" method on the returned Request to send the API call to the service.
3779// the "output" return value is not valid until after Send returns without error.
3780//
3781// See ProvisionByoipCidr for more information on using the ProvisionByoipCidr
3782// API call, and error handling.
3783//
3784// This method is useful when you want to inject custom logic or configuration
3785// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3786//
3787//
3788//    // Example sending a request using the ProvisionByoipCidrRequest method.
3789//    req, resp := client.ProvisionByoipCidrRequest(params)
3790//
3791//    err := req.Send()
3792//    if err == nil { // resp is now filled
3793//        fmt.Println(resp)
3794//    }
3795//
3796// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ProvisionByoipCidr
3797func (c *GlobalAccelerator) ProvisionByoipCidrRequest(input *ProvisionByoipCidrInput) (req *request.Request, output *ProvisionByoipCidrOutput) {
3798	op := &request.Operation{
3799		Name:       opProvisionByoipCidr,
3800		HTTPMethod: "POST",
3801		HTTPPath:   "/",
3802	}
3803
3804	if input == nil {
3805		input = &ProvisionByoipCidrInput{}
3806	}
3807
3808	output = &ProvisionByoipCidrOutput{}
3809	req = c.newRequest(op, input, output)
3810	return
3811}
3812
3813// ProvisionByoipCidr API operation for AWS Global Accelerator.
3814//
3815// Provisions an IP address range to use with your AWS resources through bring
3816// your own IP addresses (BYOIP) and creates a corresponding address pool. After
3817// the address range is provisioned, it is ready to be advertised using AdvertiseByoipCidr
3818// (https://docs.aws.amazon.com/global-accelerator/latest/api/AdvertiseByoipCidr.html).
3819//
3820// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
3821// in the AWS Global Accelerator Developer Guide.
3822//
3823// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3824// with awserr.Error's Code and Message methods to get detailed information about
3825// the error.
3826//
3827// See the AWS API reference guide for AWS Global Accelerator's
3828// API operation ProvisionByoipCidr for usage and error information.
3829//
3830// Returned Error Types:
3831//   * InternalServiceErrorException
3832//   There was an internal error for AWS Global Accelerator.
3833//
3834//   * InvalidArgumentException
3835//   An argument that you specified is invalid.
3836//
3837//   * LimitExceededException
3838//   Processing your request would cause you to exceed an AWS Global Accelerator
3839//   limit.
3840//
3841//   * AccessDeniedException
3842//   You don't have access permission.
3843//
3844//   * IncorrectCidrStateException
3845//   The CIDR that you specified is not valid for this action. For example, the
3846//   state of the CIDR might be incorrect for this action.
3847//
3848// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ProvisionByoipCidr
3849func (c *GlobalAccelerator) ProvisionByoipCidr(input *ProvisionByoipCidrInput) (*ProvisionByoipCidrOutput, error) {
3850	req, out := c.ProvisionByoipCidrRequest(input)
3851	return out, req.Send()
3852}
3853
3854// ProvisionByoipCidrWithContext is the same as ProvisionByoipCidr with the addition of
3855// the ability to pass a context and additional request options.
3856//
3857// See ProvisionByoipCidr for details on how to use this API operation.
3858//
3859// The context must be non-nil and will be used for request cancellation. If
3860// the context is nil a panic will occur. In the future the SDK may create
3861// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3862// for more information on using Contexts.
3863func (c *GlobalAccelerator) ProvisionByoipCidrWithContext(ctx aws.Context, input *ProvisionByoipCidrInput, opts ...request.Option) (*ProvisionByoipCidrOutput, error) {
3864	req, out := c.ProvisionByoipCidrRequest(input)
3865	req.SetContext(ctx)
3866	req.ApplyOptions(opts...)
3867	return out, req.Send()
3868}
3869
3870const opRemoveCustomRoutingEndpoints = "RemoveCustomRoutingEndpoints"
3871
3872// RemoveCustomRoutingEndpointsRequest generates a "aws/request.Request" representing the
3873// client's request for the RemoveCustomRoutingEndpoints operation. The "output" return
3874// value will be populated with the request's response once the request completes
3875// successfully.
3876//
3877// Use "Send" method on the returned Request to send the API call to the service.
3878// the "output" return value is not valid until after Send returns without error.
3879//
3880// See RemoveCustomRoutingEndpoints for more information on using the RemoveCustomRoutingEndpoints
3881// API call, and error handling.
3882//
3883// This method is useful when you want to inject custom logic or configuration
3884// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3885//
3886//
3887//    // Example sending a request using the RemoveCustomRoutingEndpointsRequest method.
3888//    req, resp := client.RemoveCustomRoutingEndpointsRequest(params)
3889//
3890//    err := req.Send()
3891//    if err == nil { // resp is now filled
3892//        fmt.Println(resp)
3893//    }
3894//
3895// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/RemoveCustomRoutingEndpoints
3896func (c *GlobalAccelerator) RemoveCustomRoutingEndpointsRequest(input *RemoveCustomRoutingEndpointsInput) (req *request.Request, output *RemoveCustomRoutingEndpointsOutput) {
3897	op := &request.Operation{
3898		Name:       opRemoveCustomRoutingEndpoints,
3899		HTTPMethod: "POST",
3900		HTTPPath:   "/",
3901	}
3902
3903	if input == nil {
3904		input = &RemoveCustomRoutingEndpointsInput{}
3905	}
3906
3907	output = &RemoveCustomRoutingEndpointsOutput{}
3908	req = c.newRequest(op, input, output)
3909	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3910	return
3911}
3912
3913// RemoveCustomRoutingEndpoints API operation for AWS Global Accelerator.
3914//
3915// Remove endpoints from a custom routing accelerator.
3916//
3917// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3918// with awserr.Error's Code and Message methods to get detailed information about
3919// the error.
3920//
3921// See the AWS API reference guide for AWS Global Accelerator's
3922// API operation RemoveCustomRoutingEndpoints for usage and error information.
3923//
3924// Returned Error Types:
3925//   * EndpointGroupNotFoundException
3926//   The endpoint group that you specified doesn't exist.
3927//
3928//   * EndpointNotFoundException
3929//   The endpoint that you specified doesn't exist.
3930//
3931//   * InternalServiceErrorException
3932//   There was an internal error for AWS Global Accelerator.
3933//
3934//   * InvalidArgumentException
3935//   An argument that you specified is invalid.
3936//
3937//   * AccessDeniedException
3938//   You don't have access permission.
3939//
3940//   * ConflictException
3941//   You can't use both of those options.
3942//
3943// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/RemoveCustomRoutingEndpoints
3944func (c *GlobalAccelerator) RemoveCustomRoutingEndpoints(input *RemoveCustomRoutingEndpointsInput) (*RemoveCustomRoutingEndpointsOutput, error) {
3945	req, out := c.RemoveCustomRoutingEndpointsRequest(input)
3946	return out, req.Send()
3947}
3948
3949// RemoveCustomRoutingEndpointsWithContext is the same as RemoveCustomRoutingEndpoints with the addition of
3950// the ability to pass a context and additional request options.
3951//
3952// See RemoveCustomRoutingEndpoints for details on how to use this API operation.
3953//
3954// The context must be non-nil and will be used for request cancellation. If
3955// the context is nil a panic will occur. In the future the SDK may create
3956// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3957// for more information on using Contexts.
3958func (c *GlobalAccelerator) RemoveCustomRoutingEndpointsWithContext(ctx aws.Context, input *RemoveCustomRoutingEndpointsInput, opts ...request.Option) (*RemoveCustomRoutingEndpointsOutput, error) {
3959	req, out := c.RemoveCustomRoutingEndpointsRequest(input)
3960	req.SetContext(ctx)
3961	req.ApplyOptions(opts...)
3962	return out, req.Send()
3963}
3964
3965const opTagResource = "TagResource"
3966
3967// TagResourceRequest generates a "aws/request.Request" representing the
3968// client's request for the TagResource operation. The "output" return
3969// value will be populated with the request's response once the request completes
3970// successfully.
3971//
3972// Use "Send" method on the returned Request to send the API call to the service.
3973// the "output" return value is not valid until after Send returns without error.
3974//
3975// See TagResource for more information on using the TagResource
3976// API call, and error handling.
3977//
3978// This method is useful when you want to inject custom logic or configuration
3979// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3980//
3981//
3982//    // Example sending a request using the TagResourceRequest method.
3983//    req, resp := client.TagResourceRequest(params)
3984//
3985//    err := req.Send()
3986//    if err == nil { // resp is now filled
3987//        fmt.Println(resp)
3988//    }
3989//
3990// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/TagResource
3991func (c *GlobalAccelerator) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
3992	op := &request.Operation{
3993		Name:       opTagResource,
3994		HTTPMethod: "POST",
3995		HTTPPath:   "/",
3996	}
3997
3998	if input == nil {
3999		input = &TagResourceInput{}
4000	}
4001
4002	output = &TagResourceOutput{}
4003	req = c.newRequest(op, input, output)
4004	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4005	return
4006}
4007
4008// TagResource API operation for AWS Global Accelerator.
4009//
4010// Add tags to an accelerator resource.
4011//
4012// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
4013// in the AWS Global Accelerator Developer Guide.
4014//
4015// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4016// with awserr.Error's Code and Message methods to get detailed information about
4017// the error.
4018//
4019// See the AWS API reference guide for AWS Global Accelerator's
4020// API operation TagResource for usage and error information.
4021//
4022// Returned Error Types:
4023//   * AcceleratorNotFoundException
4024//   The accelerator that you specified doesn't exist.
4025//
4026//   * InternalServiceErrorException
4027//   There was an internal error for AWS Global Accelerator.
4028//
4029//   * InvalidArgumentException
4030//   An argument that you specified is invalid.
4031//
4032// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/TagResource
4033func (c *GlobalAccelerator) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
4034	req, out := c.TagResourceRequest(input)
4035	return out, req.Send()
4036}
4037
4038// TagResourceWithContext is the same as TagResource with the addition of
4039// the ability to pass a context and additional request options.
4040//
4041// See TagResource for details on how to use this API operation.
4042//
4043// The context must be non-nil and will be used for request cancellation. If
4044// the context is nil a panic will occur. In the future the SDK may create
4045// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4046// for more information on using Contexts.
4047func (c *GlobalAccelerator) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
4048	req, out := c.TagResourceRequest(input)
4049	req.SetContext(ctx)
4050	req.ApplyOptions(opts...)
4051	return out, req.Send()
4052}
4053
4054const opUntagResource = "UntagResource"
4055
4056// UntagResourceRequest generates a "aws/request.Request" representing the
4057// client's request for the UntagResource operation. The "output" return
4058// value will be populated with the request's response once the request completes
4059// successfully.
4060//
4061// Use "Send" method on the returned Request to send the API call to the service.
4062// the "output" return value is not valid until after Send returns without error.
4063//
4064// See UntagResource for more information on using the UntagResource
4065// API call, and error handling.
4066//
4067// This method is useful when you want to inject custom logic or configuration
4068// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4069//
4070//
4071//    // Example sending a request using the UntagResourceRequest method.
4072//    req, resp := client.UntagResourceRequest(params)
4073//
4074//    err := req.Send()
4075//    if err == nil { // resp is now filled
4076//        fmt.Println(resp)
4077//    }
4078//
4079// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UntagResource
4080func (c *GlobalAccelerator) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
4081	op := &request.Operation{
4082		Name:       opUntagResource,
4083		HTTPMethod: "POST",
4084		HTTPPath:   "/",
4085	}
4086
4087	if input == nil {
4088		input = &UntagResourceInput{}
4089	}
4090
4091	output = &UntagResourceOutput{}
4092	req = c.newRequest(op, input, output)
4093	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4094	return
4095}
4096
4097// UntagResource API operation for AWS Global Accelerator.
4098//
4099// Remove tags from a Global Accelerator resource. When you specify a tag key,
4100// the action removes both that key and its associated value. The operation
4101// succeeds even if you attempt to remove tags from an accelerator that was
4102// already removed.
4103//
4104// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
4105// in the AWS Global Accelerator Developer Guide.
4106//
4107// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4108// with awserr.Error's Code and Message methods to get detailed information about
4109// the error.
4110//
4111// See the AWS API reference guide for AWS Global Accelerator's
4112// API operation UntagResource for usage and error information.
4113//
4114// Returned Error Types:
4115//   * AcceleratorNotFoundException
4116//   The accelerator that you specified doesn't exist.
4117//
4118//   * InternalServiceErrorException
4119//   There was an internal error for AWS Global Accelerator.
4120//
4121//   * InvalidArgumentException
4122//   An argument that you specified is invalid.
4123//
4124// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UntagResource
4125func (c *GlobalAccelerator) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
4126	req, out := c.UntagResourceRequest(input)
4127	return out, req.Send()
4128}
4129
4130// UntagResourceWithContext is the same as UntagResource with the addition of
4131// the ability to pass a context and additional request options.
4132//
4133// See UntagResource for details on how to use this API operation.
4134//
4135// The context must be non-nil and will be used for request cancellation. If
4136// the context is nil a panic will occur. In the future the SDK may create
4137// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4138// for more information on using Contexts.
4139func (c *GlobalAccelerator) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
4140	req, out := c.UntagResourceRequest(input)
4141	req.SetContext(ctx)
4142	req.ApplyOptions(opts...)
4143	return out, req.Send()
4144}
4145
4146const opUpdateAccelerator = "UpdateAccelerator"
4147
4148// UpdateAcceleratorRequest generates a "aws/request.Request" representing the
4149// client's request for the UpdateAccelerator operation. The "output" return
4150// value will be populated with the request's response once the request completes
4151// successfully.
4152//
4153// Use "Send" method on the returned Request to send the API call to the service.
4154// the "output" return value is not valid until after Send returns without error.
4155//
4156// See UpdateAccelerator for more information on using the UpdateAccelerator
4157// API call, and error handling.
4158//
4159// This method is useful when you want to inject custom logic or configuration
4160// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4161//
4162//
4163//    // Example sending a request using the UpdateAcceleratorRequest method.
4164//    req, resp := client.UpdateAcceleratorRequest(params)
4165//
4166//    err := req.Send()
4167//    if err == nil { // resp is now filled
4168//        fmt.Println(resp)
4169//    }
4170//
4171// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateAccelerator
4172func (c *GlobalAccelerator) UpdateAcceleratorRequest(input *UpdateAcceleratorInput) (req *request.Request, output *UpdateAcceleratorOutput) {
4173	op := &request.Operation{
4174		Name:       opUpdateAccelerator,
4175		HTTPMethod: "POST",
4176		HTTPPath:   "/",
4177	}
4178
4179	if input == nil {
4180		input = &UpdateAcceleratorInput{}
4181	}
4182
4183	output = &UpdateAcceleratorOutput{}
4184	req = c.newRequest(op, input, output)
4185	return
4186}
4187
4188// UpdateAccelerator API operation for AWS Global Accelerator.
4189//
4190// Update an accelerator.
4191//
4192// Global Accelerator is a global service that supports endpoints in multiple
4193// AWS Regions but you must specify the US West (Oregon) Region to create or
4194// update accelerators.
4195//
4196// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4197// with awserr.Error's Code and Message methods to get detailed information about
4198// the error.
4199//
4200// See the AWS API reference guide for AWS Global Accelerator's
4201// API operation UpdateAccelerator for usage and error information.
4202//
4203// Returned Error Types:
4204//   * AcceleratorNotFoundException
4205//   The accelerator that you specified doesn't exist.
4206//
4207//   * InternalServiceErrorException
4208//   There was an internal error for AWS Global Accelerator.
4209//
4210//   * InvalidArgumentException
4211//   An argument that you specified is invalid.
4212//
4213// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateAccelerator
4214func (c *GlobalAccelerator) UpdateAccelerator(input *UpdateAcceleratorInput) (*UpdateAcceleratorOutput, error) {
4215	req, out := c.UpdateAcceleratorRequest(input)
4216	return out, req.Send()
4217}
4218
4219// UpdateAcceleratorWithContext is the same as UpdateAccelerator with the addition of
4220// the ability to pass a context and additional request options.
4221//
4222// See UpdateAccelerator for details on how to use this API operation.
4223//
4224// The context must be non-nil and will be used for request cancellation. If
4225// the context is nil a panic will occur. In the future the SDK may create
4226// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4227// for more information on using Contexts.
4228func (c *GlobalAccelerator) UpdateAcceleratorWithContext(ctx aws.Context, input *UpdateAcceleratorInput, opts ...request.Option) (*UpdateAcceleratorOutput, error) {
4229	req, out := c.UpdateAcceleratorRequest(input)
4230	req.SetContext(ctx)
4231	req.ApplyOptions(opts...)
4232	return out, req.Send()
4233}
4234
4235const opUpdateAcceleratorAttributes = "UpdateAcceleratorAttributes"
4236
4237// UpdateAcceleratorAttributesRequest generates a "aws/request.Request" representing the
4238// client's request for the UpdateAcceleratorAttributes operation. The "output" return
4239// value will be populated with the request's response once the request completes
4240// successfully.
4241//
4242// Use "Send" method on the returned Request to send the API call to the service.
4243// the "output" return value is not valid until after Send returns without error.
4244//
4245// See UpdateAcceleratorAttributes for more information on using the UpdateAcceleratorAttributes
4246// API call, and error handling.
4247//
4248// This method is useful when you want to inject custom logic or configuration
4249// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4250//
4251//
4252//    // Example sending a request using the UpdateAcceleratorAttributesRequest method.
4253//    req, resp := client.UpdateAcceleratorAttributesRequest(params)
4254//
4255//    err := req.Send()
4256//    if err == nil { // resp is now filled
4257//        fmt.Println(resp)
4258//    }
4259//
4260// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateAcceleratorAttributes
4261func (c *GlobalAccelerator) UpdateAcceleratorAttributesRequest(input *UpdateAcceleratorAttributesInput) (req *request.Request, output *UpdateAcceleratorAttributesOutput) {
4262	op := &request.Operation{
4263		Name:       opUpdateAcceleratorAttributes,
4264		HTTPMethod: "POST",
4265		HTTPPath:   "/",
4266	}
4267
4268	if input == nil {
4269		input = &UpdateAcceleratorAttributesInput{}
4270	}
4271
4272	output = &UpdateAcceleratorAttributesOutput{}
4273	req = c.newRequest(op, input, output)
4274	return
4275}
4276
4277// UpdateAcceleratorAttributes API operation for AWS Global Accelerator.
4278//
4279// Update the attributes for an accelerator.
4280//
4281// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4282// with awserr.Error's Code and Message methods to get detailed information about
4283// the error.
4284//
4285// See the AWS API reference guide for AWS Global Accelerator's
4286// API operation UpdateAcceleratorAttributes for usage and error information.
4287//
4288// Returned Error Types:
4289//   * AcceleratorNotFoundException
4290//   The accelerator that you specified doesn't exist.
4291//
4292//   * InternalServiceErrorException
4293//   There was an internal error for AWS Global Accelerator.
4294//
4295//   * InvalidArgumentException
4296//   An argument that you specified is invalid.
4297//
4298//   * AccessDeniedException
4299//   You don't have access permission.
4300//
4301// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateAcceleratorAttributes
4302func (c *GlobalAccelerator) UpdateAcceleratorAttributes(input *UpdateAcceleratorAttributesInput) (*UpdateAcceleratorAttributesOutput, error) {
4303	req, out := c.UpdateAcceleratorAttributesRequest(input)
4304	return out, req.Send()
4305}
4306
4307// UpdateAcceleratorAttributesWithContext is the same as UpdateAcceleratorAttributes with the addition of
4308// the ability to pass a context and additional request options.
4309//
4310// See UpdateAcceleratorAttributes for details on how to use this API operation.
4311//
4312// The context must be non-nil and will be used for request cancellation. If
4313// the context is nil a panic will occur. In the future the SDK may create
4314// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4315// for more information on using Contexts.
4316func (c *GlobalAccelerator) UpdateAcceleratorAttributesWithContext(ctx aws.Context, input *UpdateAcceleratorAttributesInput, opts ...request.Option) (*UpdateAcceleratorAttributesOutput, error) {
4317	req, out := c.UpdateAcceleratorAttributesRequest(input)
4318	req.SetContext(ctx)
4319	req.ApplyOptions(opts...)
4320	return out, req.Send()
4321}
4322
4323const opUpdateCustomRoutingAccelerator = "UpdateCustomRoutingAccelerator"
4324
4325// UpdateCustomRoutingAcceleratorRequest generates a "aws/request.Request" representing the
4326// client's request for the UpdateCustomRoutingAccelerator operation. The "output" return
4327// value will be populated with the request's response once the request completes
4328// successfully.
4329//
4330// Use "Send" method on the returned Request to send the API call to the service.
4331// the "output" return value is not valid until after Send returns without error.
4332//
4333// See UpdateCustomRoutingAccelerator for more information on using the UpdateCustomRoutingAccelerator
4334// API call, and error handling.
4335//
4336// This method is useful when you want to inject custom logic or configuration
4337// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4338//
4339//
4340//    // Example sending a request using the UpdateCustomRoutingAcceleratorRequest method.
4341//    req, resp := client.UpdateCustomRoutingAcceleratorRequest(params)
4342//
4343//    err := req.Send()
4344//    if err == nil { // resp is now filled
4345//        fmt.Println(resp)
4346//    }
4347//
4348// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateCustomRoutingAccelerator
4349func (c *GlobalAccelerator) UpdateCustomRoutingAcceleratorRequest(input *UpdateCustomRoutingAcceleratorInput) (req *request.Request, output *UpdateCustomRoutingAcceleratorOutput) {
4350	op := &request.Operation{
4351		Name:       opUpdateCustomRoutingAccelerator,
4352		HTTPMethod: "POST",
4353		HTTPPath:   "/",
4354	}
4355
4356	if input == nil {
4357		input = &UpdateCustomRoutingAcceleratorInput{}
4358	}
4359
4360	output = &UpdateCustomRoutingAcceleratorOutput{}
4361	req = c.newRequest(op, input, output)
4362	return
4363}
4364
4365// UpdateCustomRoutingAccelerator API operation for AWS Global Accelerator.
4366//
4367// Update a custom routing accelerator.
4368//
4369// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4370// with awserr.Error's Code and Message methods to get detailed information about
4371// the error.
4372//
4373// See the AWS API reference guide for AWS Global Accelerator's
4374// API operation UpdateCustomRoutingAccelerator for usage and error information.
4375//
4376// Returned Error Types:
4377//   * AcceleratorNotFoundException
4378//   The accelerator that you specified doesn't exist.
4379//
4380//   * InternalServiceErrorException
4381//   There was an internal error for AWS Global Accelerator.
4382//
4383//   * InvalidArgumentException
4384//   An argument that you specified is invalid.
4385//
4386// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateCustomRoutingAccelerator
4387func (c *GlobalAccelerator) UpdateCustomRoutingAccelerator(input *UpdateCustomRoutingAcceleratorInput) (*UpdateCustomRoutingAcceleratorOutput, error) {
4388	req, out := c.UpdateCustomRoutingAcceleratorRequest(input)
4389	return out, req.Send()
4390}
4391
4392// UpdateCustomRoutingAcceleratorWithContext is the same as UpdateCustomRoutingAccelerator with the addition of
4393// the ability to pass a context and additional request options.
4394//
4395// See UpdateCustomRoutingAccelerator for details on how to use this API operation.
4396//
4397// The context must be non-nil and will be used for request cancellation. If
4398// the context is nil a panic will occur. In the future the SDK may create
4399// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4400// for more information on using Contexts.
4401func (c *GlobalAccelerator) UpdateCustomRoutingAcceleratorWithContext(ctx aws.Context, input *UpdateCustomRoutingAcceleratorInput, opts ...request.Option) (*UpdateCustomRoutingAcceleratorOutput, error) {
4402	req, out := c.UpdateCustomRoutingAcceleratorRequest(input)
4403	req.SetContext(ctx)
4404	req.ApplyOptions(opts...)
4405	return out, req.Send()
4406}
4407
4408const opUpdateCustomRoutingAcceleratorAttributes = "UpdateCustomRoutingAcceleratorAttributes"
4409
4410// UpdateCustomRoutingAcceleratorAttributesRequest generates a "aws/request.Request" representing the
4411// client's request for the UpdateCustomRoutingAcceleratorAttributes operation. The "output" return
4412// value will be populated with the request's response once the request completes
4413// successfully.
4414//
4415// Use "Send" method on the returned Request to send the API call to the service.
4416// the "output" return value is not valid until after Send returns without error.
4417//
4418// See UpdateCustomRoutingAcceleratorAttributes for more information on using the UpdateCustomRoutingAcceleratorAttributes
4419// API call, and error handling.
4420//
4421// This method is useful when you want to inject custom logic or configuration
4422// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4423//
4424//
4425//    // Example sending a request using the UpdateCustomRoutingAcceleratorAttributesRequest method.
4426//    req, resp := client.UpdateCustomRoutingAcceleratorAttributesRequest(params)
4427//
4428//    err := req.Send()
4429//    if err == nil { // resp is now filled
4430//        fmt.Println(resp)
4431//    }
4432//
4433// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateCustomRoutingAcceleratorAttributes
4434func (c *GlobalAccelerator) UpdateCustomRoutingAcceleratorAttributesRequest(input *UpdateCustomRoutingAcceleratorAttributesInput) (req *request.Request, output *UpdateCustomRoutingAcceleratorAttributesOutput) {
4435	op := &request.Operation{
4436		Name:       opUpdateCustomRoutingAcceleratorAttributes,
4437		HTTPMethod: "POST",
4438		HTTPPath:   "/",
4439	}
4440
4441	if input == nil {
4442		input = &UpdateCustomRoutingAcceleratorAttributesInput{}
4443	}
4444
4445	output = &UpdateCustomRoutingAcceleratorAttributesOutput{}
4446	req = c.newRequest(op, input, output)
4447	return
4448}
4449
4450// UpdateCustomRoutingAcceleratorAttributes API operation for AWS Global Accelerator.
4451//
4452// Update the attributes for a custom routing accelerator.
4453//
4454// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4455// with awserr.Error's Code and Message methods to get detailed information about
4456// the error.
4457//
4458// See the AWS API reference guide for AWS Global Accelerator's
4459// API operation UpdateCustomRoutingAcceleratorAttributes for usage and error information.
4460//
4461// Returned Error Types:
4462//   * AcceleratorNotFoundException
4463//   The accelerator that you specified doesn't exist.
4464//
4465//   * InternalServiceErrorException
4466//   There was an internal error for AWS Global Accelerator.
4467//
4468//   * InvalidArgumentException
4469//   An argument that you specified is invalid.
4470//
4471//   * AccessDeniedException
4472//   You don't have access permission.
4473//
4474// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateCustomRoutingAcceleratorAttributes
4475func (c *GlobalAccelerator) UpdateCustomRoutingAcceleratorAttributes(input *UpdateCustomRoutingAcceleratorAttributesInput) (*UpdateCustomRoutingAcceleratorAttributesOutput, error) {
4476	req, out := c.UpdateCustomRoutingAcceleratorAttributesRequest(input)
4477	return out, req.Send()
4478}
4479
4480// UpdateCustomRoutingAcceleratorAttributesWithContext is the same as UpdateCustomRoutingAcceleratorAttributes with the addition of
4481// the ability to pass a context and additional request options.
4482//
4483// See UpdateCustomRoutingAcceleratorAttributes for details on how to use this API operation.
4484//
4485// The context must be non-nil and will be used for request cancellation. If
4486// the context is nil a panic will occur. In the future the SDK may create
4487// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4488// for more information on using Contexts.
4489func (c *GlobalAccelerator) UpdateCustomRoutingAcceleratorAttributesWithContext(ctx aws.Context, input *UpdateCustomRoutingAcceleratorAttributesInput, opts ...request.Option) (*UpdateCustomRoutingAcceleratorAttributesOutput, error) {
4490	req, out := c.UpdateCustomRoutingAcceleratorAttributesRequest(input)
4491	req.SetContext(ctx)
4492	req.ApplyOptions(opts...)
4493	return out, req.Send()
4494}
4495
4496const opUpdateCustomRoutingListener = "UpdateCustomRoutingListener"
4497
4498// UpdateCustomRoutingListenerRequest generates a "aws/request.Request" representing the
4499// client's request for the UpdateCustomRoutingListener operation. The "output" return
4500// value will be populated with the request's response once the request completes
4501// successfully.
4502//
4503// Use "Send" method on the returned Request to send the API call to the service.
4504// the "output" return value is not valid until after Send returns without error.
4505//
4506// See UpdateCustomRoutingListener for more information on using the UpdateCustomRoutingListener
4507// API call, and error handling.
4508//
4509// This method is useful when you want to inject custom logic or configuration
4510// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4511//
4512//
4513//    // Example sending a request using the UpdateCustomRoutingListenerRequest method.
4514//    req, resp := client.UpdateCustomRoutingListenerRequest(params)
4515//
4516//    err := req.Send()
4517//    if err == nil { // resp is now filled
4518//        fmt.Println(resp)
4519//    }
4520//
4521// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateCustomRoutingListener
4522func (c *GlobalAccelerator) UpdateCustomRoutingListenerRequest(input *UpdateCustomRoutingListenerInput) (req *request.Request, output *UpdateCustomRoutingListenerOutput) {
4523	op := &request.Operation{
4524		Name:       opUpdateCustomRoutingListener,
4525		HTTPMethod: "POST",
4526		HTTPPath:   "/",
4527	}
4528
4529	if input == nil {
4530		input = &UpdateCustomRoutingListenerInput{}
4531	}
4532
4533	output = &UpdateCustomRoutingListenerOutput{}
4534	req = c.newRequest(op, input, output)
4535	return
4536}
4537
4538// UpdateCustomRoutingListener API operation for AWS Global Accelerator.
4539//
4540// Update a listener for a custom routing accelerator.
4541//
4542// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4543// with awserr.Error's Code and Message methods to get detailed information about
4544// the error.
4545//
4546// See the AWS API reference guide for AWS Global Accelerator's
4547// API operation UpdateCustomRoutingListener for usage and error information.
4548//
4549// Returned Error Types:
4550//   * InvalidArgumentException
4551//   An argument that you specified is invalid.
4552//
4553//   * InvalidPortRangeException
4554//   The port numbers that you specified are not valid numbers or are not unique
4555//   for this accelerator.
4556//
4557//   * ListenerNotFoundException
4558//   The listener that you specified doesn't exist.
4559//
4560//   * InternalServiceErrorException
4561//   There was an internal error for AWS Global Accelerator.
4562//
4563//   * LimitExceededException
4564//   Processing your request would cause you to exceed an AWS Global Accelerator
4565//   limit.
4566//
4567// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateCustomRoutingListener
4568func (c *GlobalAccelerator) UpdateCustomRoutingListener(input *UpdateCustomRoutingListenerInput) (*UpdateCustomRoutingListenerOutput, error) {
4569	req, out := c.UpdateCustomRoutingListenerRequest(input)
4570	return out, req.Send()
4571}
4572
4573// UpdateCustomRoutingListenerWithContext is the same as UpdateCustomRoutingListener with the addition of
4574// the ability to pass a context and additional request options.
4575//
4576// See UpdateCustomRoutingListener for details on how to use this API operation.
4577//
4578// The context must be non-nil and will be used for request cancellation. If
4579// the context is nil a panic will occur. In the future the SDK may create
4580// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4581// for more information on using Contexts.
4582func (c *GlobalAccelerator) UpdateCustomRoutingListenerWithContext(ctx aws.Context, input *UpdateCustomRoutingListenerInput, opts ...request.Option) (*UpdateCustomRoutingListenerOutput, error) {
4583	req, out := c.UpdateCustomRoutingListenerRequest(input)
4584	req.SetContext(ctx)
4585	req.ApplyOptions(opts...)
4586	return out, req.Send()
4587}
4588
4589const opUpdateEndpointGroup = "UpdateEndpointGroup"
4590
4591// UpdateEndpointGroupRequest generates a "aws/request.Request" representing the
4592// client's request for the UpdateEndpointGroup operation. The "output" return
4593// value will be populated with the request's response once the request completes
4594// successfully.
4595//
4596// Use "Send" method on the returned Request to send the API call to the service.
4597// the "output" return value is not valid until after Send returns without error.
4598//
4599// See UpdateEndpointGroup for more information on using the UpdateEndpointGroup
4600// API call, and error handling.
4601//
4602// This method is useful when you want to inject custom logic or configuration
4603// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4604//
4605//
4606//    // Example sending a request using the UpdateEndpointGroupRequest method.
4607//    req, resp := client.UpdateEndpointGroupRequest(params)
4608//
4609//    err := req.Send()
4610//    if err == nil { // resp is now filled
4611//        fmt.Println(resp)
4612//    }
4613//
4614// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateEndpointGroup
4615func (c *GlobalAccelerator) UpdateEndpointGroupRequest(input *UpdateEndpointGroupInput) (req *request.Request, output *UpdateEndpointGroupOutput) {
4616	op := &request.Operation{
4617		Name:       opUpdateEndpointGroup,
4618		HTTPMethod: "POST",
4619		HTTPPath:   "/",
4620	}
4621
4622	if input == nil {
4623		input = &UpdateEndpointGroupInput{}
4624	}
4625
4626	output = &UpdateEndpointGroupOutput{}
4627	req = c.newRequest(op, input, output)
4628	return
4629}
4630
4631// UpdateEndpointGroup API operation for AWS Global Accelerator.
4632//
4633// Update an endpoint group. A resource must be valid and active when you add
4634// it as an endpoint.
4635//
4636// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4637// with awserr.Error's Code and Message methods to get detailed information about
4638// the error.
4639//
4640// See the AWS API reference guide for AWS Global Accelerator's
4641// API operation UpdateEndpointGroup for usage and error information.
4642//
4643// Returned Error Types:
4644//   * InvalidArgumentException
4645//   An argument that you specified is invalid.
4646//
4647//   * EndpointGroupNotFoundException
4648//   The endpoint group that you specified doesn't exist.
4649//
4650//   * InternalServiceErrorException
4651//   There was an internal error for AWS Global Accelerator.
4652//
4653//   * LimitExceededException
4654//   Processing your request would cause you to exceed an AWS Global Accelerator
4655//   limit.
4656//
4657//   * AccessDeniedException
4658//   You don't have access permission.
4659//
4660// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateEndpointGroup
4661func (c *GlobalAccelerator) UpdateEndpointGroup(input *UpdateEndpointGroupInput) (*UpdateEndpointGroupOutput, error) {
4662	req, out := c.UpdateEndpointGroupRequest(input)
4663	return out, req.Send()
4664}
4665
4666// UpdateEndpointGroupWithContext is the same as UpdateEndpointGroup with the addition of
4667// the ability to pass a context and additional request options.
4668//
4669// See UpdateEndpointGroup for details on how to use this API operation.
4670//
4671// The context must be non-nil and will be used for request cancellation. If
4672// the context is nil a panic will occur. In the future the SDK may create
4673// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4674// for more information on using Contexts.
4675func (c *GlobalAccelerator) UpdateEndpointGroupWithContext(ctx aws.Context, input *UpdateEndpointGroupInput, opts ...request.Option) (*UpdateEndpointGroupOutput, error) {
4676	req, out := c.UpdateEndpointGroupRequest(input)
4677	req.SetContext(ctx)
4678	req.ApplyOptions(opts...)
4679	return out, req.Send()
4680}
4681
4682const opUpdateListener = "UpdateListener"
4683
4684// UpdateListenerRequest generates a "aws/request.Request" representing the
4685// client's request for the UpdateListener operation. The "output" return
4686// value will be populated with the request's response once the request completes
4687// successfully.
4688//
4689// Use "Send" method on the returned Request to send the API call to the service.
4690// the "output" return value is not valid until after Send returns without error.
4691//
4692// See UpdateListener for more information on using the UpdateListener
4693// API call, and error handling.
4694//
4695// This method is useful when you want to inject custom logic or configuration
4696// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4697//
4698//
4699//    // Example sending a request using the UpdateListenerRequest method.
4700//    req, resp := client.UpdateListenerRequest(params)
4701//
4702//    err := req.Send()
4703//    if err == nil { // resp is now filled
4704//        fmt.Println(resp)
4705//    }
4706//
4707// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateListener
4708func (c *GlobalAccelerator) UpdateListenerRequest(input *UpdateListenerInput) (req *request.Request, output *UpdateListenerOutput) {
4709	op := &request.Operation{
4710		Name:       opUpdateListener,
4711		HTTPMethod: "POST",
4712		HTTPPath:   "/",
4713	}
4714
4715	if input == nil {
4716		input = &UpdateListenerInput{}
4717	}
4718
4719	output = &UpdateListenerOutput{}
4720	req = c.newRequest(op, input, output)
4721	return
4722}
4723
4724// UpdateListener API operation for AWS Global Accelerator.
4725//
4726// Update a listener.
4727//
4728// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4729// with awserr.Error's Code and Message methods to get detailed information about
4730// the error.
4731//
4732// See the AWS API reference guide for AWS Global Accelerator's
4733// API operation UpdateListener for usage and error information.
4734//
4735// Returned Error Types:
4736//   * InvalidArgumentException
4737//   An argument that you specified is invalid.
4738//
4739//   * InvalidPortRangeException
4740//   The port numbers that you specified are not valid numbers or are not unique
4741//   for this accelerator.
4742//
4743//   * ListenerNotFoundException
4744//   The listener that you specified doesn't exist.
4745//
4746//   * InternalServiceErrorException
4747//   There was an internal error for AWS Global Accelerator.
4748//
4749//   * LimitExceededException
4750//   Processing your request would cause you to exceed an AWS Global Accelerator
4751//   limit.
4752//
4753// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateListener
4754func (c *GlobalAccelerator) UpdateListener(input *UpdateListenerInput) (*UpdateListenerOutput, error) {
4755	req, out := c.UpdateListenerRequest(input)
4756	return out, req.Send()
4757}
4758
4759// UpdateListenerWithContext is the same as UpdateListener with the addition of
4760// the ability to pass a context and additional request options.
4761//
4762// See UpdateListener for details on how to use this API operation.
4763//
4764// The context must be non-nil and will be used for request cancellation. If
4765// the context is nil a panic will occur. In the future the SDK may create
4766// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4767// for more information on using Contexts.
4768func (c *GlobalAccelerator) UpdateListenerWithContext(ctx aws.Context, input *UpdateListenerInput, opts ...request.Option) (*UpdateListenerOutput, error) {
4769	req, out := c.UpdateListenerRequest(input)
4770	req.SetContext(ctx)
4771	req.ApplyOptions(opts...)
4772	return out, req.Send()
4773}
4774
4775const opWithdrawByoipCidr = "WithdrawByoipCidr"
4776
4777// WithdrawByoipCidrRequest generates a "aws/request.Request" representing the
4778// client's request for the WithdrawByoipCidr operation. The "output" return
4779// value will be populated with the request's response once the request completes
4780// successfully.
4781//
4782// Use "Send" method on the returned Request to send the API call to the service.
4783// the "output" return value is not valid until after Send returns without error.
4784//
4785// See WithdrawByoipCidr for more information on using the WithdrawByoipCidr
4786// API call, and error handling.
4787//
4788// This method is useful when you want to inject custom logic or configuration
4789// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4790//
4791//
4792//    // Example sending a request using the WithdrawByoipCidrRequest method.
4793//    req, resp := client.WithdrawByoipCidrRequest(params)
4794//
4795//    err := req.Send()
4796//    if err == nil { // resp is now filled
4797//        fmt.Println(resp)
4798//    }
4799//
4800// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/WithdrawByoipCidr
4801func (c *GlobalAccelerator) WithdrawByoipCidrRequest(input *WithdrawByoipCidrInput) (req *request.Request, output *WithdrawByoipCidrOutput) {
4802	op := &request.Operation{
4803		Name:       opWithdrawByoipCidr,
4804		HTTPMethod: "POST",
4805		HTTPPath:   "/",
4806	}
4807
4808	if input == nil {
4809		input = &WithdrawByoipCidrInput{}
4810	}
4811
4812	output = &WithdrawByoipCidrOutput{}
4813	req = c.newRequest(op, input, output)
4814	return
4815}
4816
4817// WithdrawByoipCidr API operation for AWS Global Accelerator.
4818//
4819// Stops advertising an address range that is provisioned as an address pool.
4820// You can perform this operation at most once every 10 seconds, even if you
4821// specify different address ranges each time.
4822//
4823// It can take a few minutes before traffic to the specified addresses stops
4824// routing to AWS because of propagation delays.
4825//
4826// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
4827// in the AWS Global Accelerator Developer Guide.
4828//
4829// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4830// with awserr.Error's Code and Message methods to get detailed information about
4831// the error.
4832//
4833// See the AWS API reference guide for AWS Global Accelerator's
4834// API operation WithdrawByoipCidr for usage and error information.
4835//
4836// Returned Error Types:
4837//   * InternalServiceErrorException
4838//   There was an internal error for AWS Global Accelerator.
4839//
4840//   * InvalidArgumentException
4841//   An argument that you specified is invalid.
4842//
4843//   * AccessDeniedException
4844//   You don't have access permission.
4845//
4846//   * ByoipCidrNotFoundException
4847//   The CIDR that you specified was not found or is incorrect.
4848//
4849//   * IncorrectCidrStateException
4850//   The CIDR that you specified is not valid for this action. For example, the
4851//   state of the CIDR might be incorrect for this action.
4852//
4853// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/WithdrawByoipCidr
4854func (c *GlobalAccelerator) WithdrawByoipCidr(input *WithdrawByoipCidrInput) (*WithdrawByoipCidrOutput, error) {
4855	req, out := c.WithdrawByoipCidrRequest(input)
4856	return out, req.Send()
4857}
4858
4859// WithdrawByoipCidrWithContext is the same as WithdrawByoipCidr with the addition of
4860// the ability to pass a context and additional request options.
4861//
4862// See WithdrawByoipCidr for details on how to use this API operation.
4863//
4864// The context must be non-nil and will be used for request cancellation. If
4865// the context is nil a panic will occur. In the future the SDK may create
4866// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4867// for more information on using Contexts.
4868func (c *GlobalAccelerator) WithdrawByoipCidrWithContext(ctx aws.Context, input *WithdrawByoipCidrInput, opts ...request.Option) (*WithdrawByoipCidrOutput, error) {
4869	req, out := c.WithdrawByoipCidrRequest(input)
4870	req.SetContext(ctx)
4871	req.ApplyOptions(opts...)
4872	return out, req.Send()
4873}
4874
4875// An accelerator is a complex type that includes one or more listeners that
4876// process inbound connections and then direct traffic to one or more endpoint
4877// groups, each of which includes endpoints, such as load balancers.
4878type Accelerator struct {
4879	_ struct{} `type:"structure"`
4880
4881	// The Amazon Resource Name (ARN) of the accelerator.
4882	AcceleratorArn *string `type:"string"`
4883
4884	// The date and time that the accelerator was created.
4885	CreatedTime *time.Time `type:"timestamp"`
4886
4887	// The Domain Name System (DNS) name that Global Accelerator creates that points
4888	// to your accelerator's static IP addresses.
4889	//
4890	// The naming convention for the DNS name is the following: A lowercase letter
4891	// a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com.
4892	// For example: a1234567890abcdef.awsglobalaccelerator.com.
4893	//
4894	// For more information about the default DNS name, see Support for DNS Addressing
4895	// in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing)
4896	// in the AWS Global Accelerator Developer Guide.
4897	DnsName *string `type:"string"`
4898
4899	// Indicates whether the accelerator is enabled. The value is true or false.
4900	// The default value is true.
4901	//
4902	// If the value is set to true, the accelerator cannot be deleted. If set to
4903	// false, accelerator can be deleted.
4904	Enabled *bool `type:"boolean"`
4905
4906	// The value for the address type must be IPv4.
4907	IpAddressType *string `type:"string" enum:"IpAddressType"`
4908
4909	// The static IP addresses that Global Accelerator associates with the accelerator.
4910	IpSets []*IpSet `type:"list"`
4911
4912	// The date and time that the accelerator was last modified.
4913	LastModifiedTime *time.Time `type:"timestamp"`
4914
4915	// The name of the accelerator. The name must contain only alphanumeric characters
4916	// or hyphens (-), and must not begin or end with a hyphen.
4917	Name *string `type:"string"`
4918
4919	// Describes the deployment status of the accelerator.
4920	Status *string `type:"string" enum:"AcceleratorStatus"`
4921}
4922
4923// String returns the string representation
4924func (s Accelerator) String() string {
4925	return awsutil.Prettify(s)
4926}
4927
4928// GoString returns the string representation
4929func (s Accelerator) GoString() string {
4930	return s.String()
4931}
4932
4933// SetAcceleratorArn sets the AcceleratorArn field's value.
4934func (s *Accelerator) SetAcceleratorArn(v string) *Accelerator {
4935	s.AcceleratorArn = &v
4936	return s
4937}
4938
4939// SetCreatedTime sets the CreatedTime field's value.
4940func (s *Accelerator) SetCreatedTime(v time.Time) *Accelerator {
4941	s.CreatedTime = &v
4942	return s
4943}
4944
4945// SetDnsName sets the DnsName field's value.
4946func (s *Accelerator) SetDnsName(v string) *Accelerator {
4947	s.DnsName = &v
4948	return s
4949}
4950
4951// SetEnabled sets the Enabled field's value.
4952func (s *Accelerator) SetEnabled(v bool) *Accelerator {
4953	s.Enabled = &v
4954	return s
4955}
4956
4957// SetIpAddressType sets the IpAddressType field's value.
4958func (s *Accelerator) SetIpAddressType(v string) *Accelerator {
4959	s.IpAddressType = &v
4960	return s
4961}
4962
4963// SetIpSets sets the IpSets field's value.
4964func (s *Accelerator) SetIpSets(v []*IpSet) *Accelerator {
4965	s.IpSets = v
4966	return s
4967}
4968
4969// SetLastModifiedTime sets the LastModifiedTime field's value.
4970func (s *Accelerator) SetLastModifiedTime(v time.Time) *Accelerator {
4971	s.LastModifiedTime = &v
4972	return s
4973}
4974
4975// SetName sets the Name field's value.
4976func (s *Accelerator) SetName(v string) *Accelerator {
4977	s.Name = &v
4978	return s
4979}
4980
4981// SetStatus sets the Status field's value.
4982func (s *Accelerator) SetStatus(v string) *Accelerator {
4983	s.Status = &v
4984	return s
4985}
4986
4987// Attributes of an accelerator.
4988type AcceleratorAttributes struct {
4989	_ struct{} `type:"structure"`
4990
4991	// Indicates whether flow logs are enabled. The default value is false. If the
4992	// value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.
4993	//
4994	// For more information, see Flow Logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html)
4995	// in the AWS Global Accelerator Developer Guide.
4996	FlowLogsEnabled *bool `type:"boolean"`
4997
4998	// The name of the Amazon S3 bucket for the flow logs. Attribute is required
4999	// if FlowLogsEnabled is true. The bucket must exist and have a bucket policy
5000	// that grants AWS Global Accelerator permission to write to the bucket.
5001	FlowLogsS3Bucket *string `type:"string"`
5002
5003	// The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute
5004	// is required if FlowLogsEnabled is true.
5005	//
5006	// If you don’t specify a prefix, the flow logs are stored in the root of
5007	// the bucket. If you specify slash (/) for the S3 bucket prefix, the log file
5008	// bucket folder structure will include a double slash (//), like the following:
5009	//
5010	// s3-bucket_name//AWSLogs/aws_account_id
5011	FlowLogsS3Prefix *string `type:"string"`
5012}
5013
5014// String returns the string representation
5015func (s AcceleratorAttributes) String() string {
5016	return awsutil.Prettify(s)
5017}
5018
5019// GoString returns the string representation
5020func (s AcceleratorAttributes) GoString() string {
5021	return s.String()
5022}
5023
5024// SetFlowLogsEnabled sets the FlowLogsEnabled field's value.
5025func (s *AcceleratorAttributes) SetFlowLogsEnabled(v bool) *AcceleratorAttributes {
5026	s.FlowLogsEnabled = &v
5027	return s
5028}
5029
5030// SetFlowLogsS3Bucket sets the FlowLogsS3Bucket field's value.
5031func (s *AcceleratorAttributes) SetFlowLogsS3Bucket(v string) *AcceleratorAttributes {
5032	s.FlowLogsS3Bucket = &v
5033	return s
5034}
5035
5036// SetFlowLogsS3Prefix sets the FlowLogsS3Prefix field's value.
5037func (s *AcceleratorAttributes) SetFlowLogsS3Prefix(v string) *AcceleratorAttributes {
5038	s.FlowLogsS3Prefix = &v
5039	return s
5040}
5041
5042// The accelerator that you specified could not be disabled.
5043type AcceleratorNotDisabledException struct {
5044	_            struct{}                  `type:"structure"`
5045	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5046
5047	Message_ *string `locationName:"Message" type:"string"`
5048}
5049
5050// String returns the string representation
5051func (s AcceleratorNotDisabledException) String() string {
5052	return awsutil.Prettify(s)
5053}
5054
5055// GoString returns the string representation
5056func (s AcceleratorNotDisabledException) GoString() string {
5057	return s.String()
5058}
5059
5060func newErrorAcceleratorNotDisabledException(v protocol.ResponseMetadata) error {
5061	return &AcceleratorNotDisabledException{
5062		RespMetadata: v,
5063	}
5064}
5065
5066// Code returns the exception type name.
5067func (s *AcceleratorNotDisabledException) Code() string {
5068	return "AcceleratorNotDisabledException"
5069}
5070
5071// Message returns the exception's message.
5072func (s *AcceleratorNotDisabledException) Message() string {
5073	if s.Message_ != nil {
5074		return *s.Message_
5075	}
5076	return ""
5077}
5078
5079// OrigErr always returns nil, satisfies awserr.Error interface.
5080func (s *AcceleratorNotDisabledException) OrigErr() error {
5081	return nil
5082}
5083
5084func (s *AcceleratorNotDisabledException) Error() string {
5085	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5086}
5087
5088// Status code returns the HTTP status code for the request's response error.
5089func (s *AcceleratorNotDisabledException) StatusCode() int {
5090	return s.RespMetadata.StatusCode
5091}
5092
5093// RequestID returns the service's response RequestID for request.
5094func (s *AcceleratorNotDisabledException) RequestID() string {
5095	return s.RespMetadata.RequestID
5096}
5097
5098// The accelerator that you specified doesn't exist.
5099type AcceleratorNotFoundException struct {
5100	_            struct{}                  `type:"structure"`
5101	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5102
5103	Message_ *string `locationName:"Message" type:"string"`
5104}
5105
5106// String returns the string representation
5107func (s AcceleratorNotFoundException) String() string {
5108	return awsutil.Prettify(s)
5109}
5110
5111// GoString returns the string representation
5112func (s AcceleratorNotFoundException) GoString() string {
5113	return s.String()
5114}
5115
5116func newErrorAcceleratorNotFoundException(v protocol.ResponseMetadata) error {
5117	return &AcceleratorNotFoundException{
5118		RespMetadata: v,
5119	}
5120}
5121
5122// Code returns the exception type name.
5123func (s *AcceleratorNotFoundException) Code() string {
5124	return "AcceleratorNotFoundException"
5125}
5126
5127// Message returns the exception's message.
5128func (s *AcceleratorNotFoundException) Message() string {
5129	if s.Message_ != nil {
5130		return *s.Message_
5131	}
5132	return ""
5133}
5134
5135// OrigErr always returns nil, satisfies awserr.Error interface.
5136func (s *AcceleratorNotFoundException) OrigErr() error {
5137	return nil
5138}
5139
5140func (s *AcceleratorNotFoundException) Error() string {
5141	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5142}
5143
5144// Status code returns the HTTP status code for the request's response error.
5145func (s *AcceleratorNotFoundException) StatusCode() int {
5146	return s.RespMetadata.StatusCode
5147}
5148
5149// RequestID returns the service's response RequestID for request.
5150func (s *AcceleratorNotFoundException) RequestID() string {
5151	return s.RespMetadata.RequestID
5152}
5153
5154// You don't have access permission.
5155type AccessDeniedException struct {
5156	_            struct{}                  `type:"structure"`
5157	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5158
5159	Message_ *string `locationName:"Message" type:"string"`
5160}
5161
5162// String returns the string representation
5163func (s AccessDeniedException) String() string {
5164	return awsutil.Prettify(s)
5165}
5166
5167// GoString returns the string representation
5168func (s AccessDeniedException) GoString() string {
5169	return s.String()
5170}
5171
5172func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
5173	return &AccessDeniedException{
5174		RespMetadata: v,
5175	}
5176}
5177
5178// Code returns the exception type name.
5179func (s *AccessDeniedException) Code() string {
5180	return "AccessDeniedException"
5181}
5182
5183// Message returns the exception's message.
5184func (s *AccessDeniedException) Message() string {
5185	if s.Message_ != nil {
5186		return *s.Message_
5187	}
5188	return ""
5189}
5190
5191// OrigErr always returns nil, satisfies awserr.Error interface.
5192func (s *AccessDeniedException) OrigErr() error {
5193	return nil
5194}
5195
5196func (s *AccessDeniedException) Error() string {
5197	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5198}
5199
5200// Status code returns the HTTP status code for the request's response error.
5201func (s *AccessDeniedException) StatusCode() int {
5202	return s.RespMetadata.StatusCode
5203}
5204
5205// RequestID returns the service's response RequestID for request.
5206func (s *AccessDeniedException) RequestID() string {
5207	return s.RespMetadata.RequestID
5208}
5209
5210type AddCustomRoutingEndpointsInput struct {
5211	_ struct{} `type:"structure"`
5212
5213	// The list of endpoint objects to add to a custom routing accelerator.
5214	//
5215	// EndpointConfigurations is a required field
5216	EndpointConfigurations []*CustomRoutingEndpointConfiguration `min:"1" type:"list" required:"true"`
5217
5218	// The Amazon Resource Name (ARN) of the endpoint group for the custom routing
5219	// endpoint.
5220	//
5221	// EndpointGroupArn is a required field
5222	EndpointGroupArn *string `type:"string" required:"true"`
5223}
5224
5225// String returns the string representation
5226func (s AddCustomRoutingEndpointsInput) String() string {
5227	return awsutil.Prettify(s)
5228}
5229
5230// GoString returns the string representation
5231func (s AddCustomRoutingEndpointsInput) GoString() string {
5232	return s.String()
5233}
5234
5235// Validate inspects the fields of the type to determine if they are valid.
5236func (s *AddCustomRoutingEndpointsInput) Validate() error {
5237	invalidParams := request.ErrInvalidParams{Context: "AddCustomRoutingEndpointsInput"}
5238	if s.EndpointConfigurations == nil {
5239		invalidParams.Add(request.NewErrParamRequired("EndpointConfigurations"))
5240	}
5241	if s.EndpointConfigurations != nil && len(s.EndpointConfigurations) < 1 {
5242		invalidParams.Add(request.NewErrParamMinLen("EndpointConfigurations", 1))
5243	}
5244	if s.EndpointGroupArn == nil {
5245		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
5246	}
5247
5248	if invalidParams.Len() > 0 {
5249		return invalidParams
5250	}
5251	return nil
5252}
5253
5254// SetEndpointConfigurations sets the EndpointConfigurations field's value.
5255func (s *AddCustomRoutingEndpointsInput) SetEndpointConfigurations(v []*CustomRoutingEndpointConfiguration) *AddCustomRoutingEndpointsInput {
5256	s.EndpointConfigurations = v
5257	return s
5258}
5259
5260// SetEndpointGroupArn sets the EndpointGroupArn field's value.
5261func (s *AddCustomRoutingEndpointsInput) SetEndpointGroupArn(v string) *AddCustomRoutingEndpointsInput {
5262	s.EndpointGroupArn = &v
5263	return s
5264}
5265
5266type AddCustomRoutingEndpointsOutput struct {
5267	_ struct{} `type:"structure"`
5268
5269	// The endpoint objects added to the custom routing accelerator.
5270	EndpointDescriptions []*CustomRoutingEndpointDescription `type:"list"`
5271
5272	// The Amazon Resource Name (ARN) of the endpoint group for the custom routing
5273	// endpoint.
5274	EndpointGroupArn *string `type:"string"`
5275}
5276
5277// String returns the string representation
5278func (s AddCustomRoutingEndpointsOutput) String() string {
5279	return awsutil.Prettify(s)
5280}
5281
5282// GoString returns the string representation
5283func (s AddCustomRoutingEndpointsOutput) GoString() string {
5284	return s.String()
5285}
5286
5287// SetEndpointDescriptions sets the EndpointDescriptions field's value.
5288func (s *AddCustomRoutingEndpointsOutput) SetEndpointDescriptions(v []*CustomRoutingEndpointDescription) *AddCustomRoutingEndpointsOutput {
5289	s.EndpointDescriptions = v
5290	return s
5291}
5292
5293// SetEndpointGroupArn sets the EndpointGroupArn field's value.
5294func (s *AddCustomRoutingEndpointsOutput) SetEndpointGroupArn(v string) *AddCustomRoutingEndpointsOutput {
5295	s.EndpointGroupArn = &v
5296	return s
5297}
5298
5299type AdvertiseByoipCidrInput struct {
5300	_ struct{} `type:"structure"`
5301
5302	// The address range, in CIDR notation. This must be the exact range that you
5303	// provisioned. You can't advertise only a portion of the provisioned range.
5304	//
5305	// Cidr is a required field
5306	Cidr *string `type:"string" required:"true"`
5307}
5308
5309// String returns the string representation
5310func (s AdvertiseByoipCidrInput) String() string {
5311	return awsutil.Prettify(s)
5312}
5313
5314// GoString returns the string representation
5315func (s AdvertiseByoipCidrInput) GoString() string {
5316	return s.String()
5317}
5318
5319// Validate inspects the fields of the type to determine if they are valid.
5320func (s *AdvertiseByoipCidrInput) Validate() error {
5321	invalidParams := request.ErrInvalidParams{Context: "AdvertiseByoipCidrInput"}
5322	if s.Cidr == nil {
5323		invalidParams.Add(request.NewErrParamRequired("Cidr"))
5324	}
5325
5326	if invalidParams.Len() > 0 {
5327		return invalidParams
5328	}
5329	return nil
5330}
5331
5332// SetCidr sets the Cidr field's value.
5333func (s *AdvertiseByoipCidrInput) SetCidr(v string) *AdvertiseByoipCidrInput {
5334	s.Cidr = &v
5335	return s
5336}
5337
5338type AdvertiseByoipCidrOutput struct {
5339	_ struct{} `type:"structure"`
5340
5341	// Information about the address range.
5342	ByoipCidr *ByoipCidr `type:"structure"`
5343}
5344
5345// String returns the string representation
5346func (s AdvertiseByoipCidrOutput) String() string {
5347	return awsutil.Prettify(s)
5348}
5349
5350// GoString returns the string representation
5351func (s AdvertiseByoipCidrOutput) GoString() string {
5352	return s.String()
5353}
5354
5355// SetByoipCidr sets the ByoipCidr field's value.
5356func (s *AdvertiseByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *AdvertiseByoipCidrOutput {
5357	s.ByoipCidr = v
5358	return s
5359}
5360
5361type AllowCustomRoutingTrafficInput struct {
5362	_ struct{} `type:"structure"`
5363
5364	// Indicates whether all destination IP addresses and ports for a specified
5365	// VPC subnet endpoint can receive traffic from a custom routing accelerator.
5366	// The value is TRUE or FALSE.
5367	//
5368	// When set to TRUE, all destinations in the custom routing VPC subnet can receive
5369	// traffic. Note that you cannot specify destination IP addresses and ports
5370	// when the value is set to TRUE.
5371	//
5372	// When set to FALSE (or not specified), you must specify a list of destination
5373	// IP addresses that are allowed to receive traffic. A list of ports is optional.
5374	// If you don't specify a list of ports, the ports that can accept traffic is
5375	// the same as the ports configured for the endpoint group.
5376	//
5377	// The default value is FALSE.
5378	AllowAllTrafficToEndpoint *bool `type:"boolean"`
5379
5380	// A list of specific Amazon EC2 instance IP addresses (destination addresses)
5381	// in a subnet that you want to allow to receive traffic. The IP addresses must
5382	// be a subset of the IP addresses that you specified for the endpoint group.
5383	//
5384	// DestinationAddresses is required if AllowAllTrafficToEndpoint is FALSE or
5385	// is not specified.
5386	DestinationAddresses []*string `type:"list"`
5387
5388	// A list of specific Amazon EC2 instance ports (destination ports) that you
5389	// want to allow to receive traffic.
5390	DestinationPorts []*int64 `type:"list"`
5391
5392	// The Amazon Resource Name (ARN) of the endpoint group.
5393	//
5394	// EndpointGroupArn is a required field
5395	EndpointGroupArn *string `type:"string" required:"true"`
5396
5397	// An ID for the endpoint. For custom routing accelerators, this is the virtual
5398	// private cloud (VPC) subnet ID.
5399	//
5400	// EndpointId is a required field
5401	EndpointId *string `type:"string" required:"true"`
5402}
5403
5404// String returns the string representation
5405func (s AllowCustomRoutingTrafficInput) String() string {
5406	return awsutil.Prettify(s)
5407}
5408
5409// GoString returns the string representation
5410func (s AllowCustomRoutingTrafficInput) GoString() string {
5411	return s.String()
5412}
5413
5414// Validate inspects the fields of the type to determine if they are valid.
5415func (s *AllowCustomRoutingTrafficInput) Validate() error {
5416	invalidParams := request.ErrInvalidParams{Context: "AllowCustomRoutingTrafficInput"}
5417	if s.EndpointGroupArn == nil {
5418		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
5419	}
5420	if s.EndpointId == nil {
5421		invalidParams.Add(request.NewErrParamRequired("EndpointId"))
5422	}
5423
5424	if invalidParams.Len() > 0 {
5425		return invalidParams
5426	}
5427	return nil
5428}
5429
5430// SetAllowAllTrafficToEndpoint sets the AllowAllTrafficToEndpoint field's value.
5431func (s *AllowCustomRoutingTrafficInput) SetAllowAllTrafficToEndpoint(v bool) *AllowCustomRoutingTrafficInput {
5432	s.AllowAllTrafficToEndpoint = &v
5433	return s
5434}
5435
5436// SetDestinationAddresses sets the DestinationAddresses field's value.
5437func (s *AllowCustomRoutingTrafficInput) SetDestinationAddresses(v []*string) *AllowCustomRoutingTrafficInput {
5438	s.DestinationAddresses = v
5439	return s
5440}
5441
5442// SetDestinationPorts sets the DestinationPorts field's value.
5443func (s *AllowCustomRoutingTrafficInput) SetDestinationPorts(v []*int64) *AllowCustomRoutingTrafficInput {
5444	s.DestinationPorts = v
5445	return s
5446}
5447
5448// SetEndpointGroupArn sets the EndpointGroupArn field's value.
5449func (s *AllowCustomRoutingTrafficInput) SetEndpointGroupArn(v string) *AllowCustomRoutingTrafficInput {
5450	s.EndpointGroupArn = &v
5451	return s
5452}
5453
5454// SetEndpointId sets the EndpointId field's value.
5455func (s *AllowCustomRoutingTrafficInput) SetEndpointId(v string) *AllowCustomRoutingTrafficInput {
5456	s.EndpointId = &v
5457	return s
5458}
5459
5460type AllowCustomRoutingTrafficOutput struct {
5461	_ struct{} `type:"structure"`
5462}
5463
5464// String returns the string representation
5465func (s AllowCustomRoutingTrafficOutput) String() string {
5466	return awsutil.Prettify(s)
5467}
5468
5469// GoString returns the string representation
5470func (s AllowCustomRoutingTrafficOutput) GoString() string {
5471	return s.String()
5472}
5473
5474// The listener that you specified has an endpoint group associated with it.
5475// You must remove all dependent resources from a listener before you can delete
5476// it.
5477type AssociatedEndpointGroupFoundException struct {
5478	_            struct{}                  `type:"structure"`
5479	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5480
5481	Message_ *string `locationName:"Message" type:"string"`
5482}
5483
5484// String returns the string representation
5485func (s AssociatedEndpointGroupFoundException) String() string {
5486	return awsutil.Prettify(s)
5487}
5488
5489// GoString returns the string representation
5490func (s AssociatedEndpointGroupFoundException) GoString() string {
5491	return s.String()
5492}
5493
5494func newErrorAssociatedEndpointGroupFoundException(v protocol.ResponseMetadata) error {
5495	return &AssociatedEndpointGroupFoundException{
5496		RespMetadata: v,
5497	}
5498}
5499
5500// Code returns the exception type name.
5501func (s *AssociatedEndpointGroupFoundException) Code() string {
5502	return "AssociatedEndpointGroupFoundException"
5503}
5504
5505// Message returns the exception's message.
5506func (s *AssociatedEndpointGroupFoundException) Message() string {
5507	if s.Message_ != nil {
5508		return *s.Message_
5509	}
5510	return ""
5511}
5512
5513// OrigErr always returns nil, satisfies awserr.Error interface.
5514func (s *AssociatedEndpointGroupFoundException) OrigErr() error {
5515	return nil
5516}
5517
5518func (s *AssociatedEndpointGroupFoundException) Error() string {
5519	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5520}
5521
5522// Status code returns the HTTP status code for the request's response error.
5523func (s *AssociatedEndpointGroupFoundException) StatusCode() int {
5524	return s.RespMetadata.StatusCode
5525}
5526
5527// RequestID returns the service's response RequestID for request.
5528func (s *AssociatedEndpointGroupFoundException) RequestID() string {
5529	return s.RespMetadata.RequestID
5530}
5531
5532// The accelerator that you specified has a listener associated with it. You
5533// must remove all dependent resources from an accelerator before you can delete
5534// it.
5535type AssociatedListenerFoundException struct {
5536	_            struct{}                  `type:"structure"`
5537	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5538
5539	Message_ *string `locationName:"Message" type:"string"`
5540}
5541
5542// String returns the string representation
5543func (s AssociatedListenerFoundException) String() string {
5544	return awsutil.Prettify(s)
5545}
5546
5547// GoString returns the string representation
5548func (s AssociatedListenerFoundException) GoString() string {
5549	return s.String()
5550}
5551
5552func newErrorAssociatedListenerFoundException(v protocol.ResponseMetadata) error {
5553	return &AssociatedListenerFoundException{
5554		RespMetadata: v,
5555	}
5556}
5557
5558// Code returns the exception type name.
5559func (s *AssociatedListenerFoundException) Code() string {
5560	return "AssociatedListenerFoundException"
5561}
5562
5563// Message returns the exception's message.
5564func (s *AssociatedListenerFoundException) Message() string {
5565	if s.Message_ != nil {
5566		return *s.Message_
5567	}
5568	return ""
5569}
5570
5571// OrigErr always returns nil, satisfies awserr.Error interface.
5572func (s *AssociatedListenerFoundException) OrigErr() error {
5573	return nil
5574}
5575
5576func (s *AssociatedListenerFoundException) Error() string {
5577	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5578}
5579
5580// Status code returns the HTTP status code for the request's response error.
5581func (s *AssociatedListenerFoundException) StatusCode() int {
5582	return s.RespMetadata.StatusCode
5583}
5584
5585// RequestID returns the service's response RequestID for request.
5586func (s *AssociatedListenerFoundException) RequestID() string {
5587	return s.RespMetadata.RequestID
5588}
5589
5590// Information about an IP address range that is provisioned for use with your
5591// AWS resources through bring your own IP address (BYOIP).
5592//
5593// The following describes each BYOIP State that your IP address range can be
5594// in.
5595//
5596//    * PENDING_PROVISIONING — You’ve submitted a request to provision an
5597//    IP address range but it is not yet provisioned with AWS Global Accelerator.
5598//
5599//    * READY — The address range is provisioned with AWS Global Accelerator
5600//    and can be advertised.
5601//
5602//    * PENDING_ADVERTISING — You’ve submitted a request for AWS Global
5603//    Accelerator to advertise an address range but it is not yet being advertised.
5604//
5605//    * ADVERTISING — The address range is being advertised by AWS Global
5606//    Accelerator.
5607//
5608//    * PENDING_WITHDRAWING — You’ve submitted a request to withdraw an
5609//    address range from being advertised but it is still being advertised by
5610//    AWS Global Accelerator.
5611//
5612//    * PENDING_DEPROVISIONING — You’ve submitted a request to deprovision
5613//    an address range from AWS Global Accelerator but it is still provisioned.
5614//
5615//    * DEPROVISIONED — The address range is deprovisioned from AWS Global
5616//    Accelerator.
5617//
5618//    * FAILED_PROVISION — The request to provision the address range from
5619//    AWS Global Accelerator was not successful. Please make sure that you provide
5620//    all of the correct information, and try again. If the request fails a
5621//    second time, contact AWS support.
5622//
5623//    * FAILED_ADVERTISING — The request for AWS Global Accelerator to advertise
5624//    the address range was not successful. Please make sure that you provide
5625//    all of the correct information, and try again. If the request fails a
5626//    second time, contact AWS support.
5627//
5628//    * FAILED_WITHDRAW — The request to withdraw the address range from advertising
5629//    by AWS Global Accelerator was not successful. Please make sure that you
5630//    provide all of the correct information, and try again. If the request
5631//    fails a second time, contact AWS support.
5632//
5633//    * FAILED_DEPROVISION — The request to deprovision the address range
5634//    from AWS Global Accelerator was not successful. Please make sure that
5635//    you provide all of the correct information, and try again. If the request
5636//    fails a second time, contact AWS support.
5637type ByoipCidr struct {
5638	_ struct{} `type:"structure"`
5639
5640	// The address range, in CIDR notation.
5641	Cidr *string `type:"string"`
5642
5643	// A history of status changes for an IP address range that you bring to AWS
5644	// Global Accelerator through bring your own IP address (BYOIP).
5645	Events []*ByoipCidrEvent `type:"list"`
5646
5647	// The state of the address pool.
5648	State *string `type:"string" enum:"ByoipCidrState"`
5649}
5650
5651// String returns the string representation
5652func (s ByoipCidr) String() string {
5653	return awsutil.Prettify(s)
5654}
5655
5656// GoString returns the string representation
5657func (s ByoipCidr) GoString() string {
5658	return s.String()
5659}
5660
5661// SetCidr sets the Cidr field's value.
5662func (s *ByoipCidr) SetCidr(v string) *ByoipCidr {
5663	s.Cidr = &v
5664	return s
5665}
5666
5667// SetEvents sets the Events field's value.
5668func (s *ByoipCidr) SetEvents(v []*ByoipCidrEvent) *ByoipCidr {
5669	s.Events = v
5670	return s
5671}
5672
5673// SetState sets the State field's value.
5674func (s *ByoipCidr) SetState(v string) *ByoipCidr {
5675	s.State = &v
5676	return s
5677}
5678
5679// A complex type that contains a Message and a Timestamp value for changes
5680// that you make in the status an IP address range that you bring to AWS Global
5681// Accelerator through bring your own IP address (BYOIP).
5682type ByoipCidrEvent struct {
5683	_ struct{} `type:"structure"`
5684
5685	// A string that contains an Event message describing changes that you make
5686	// in the status of an IP address range that you bring to AWS Global Accelerator
5687	// through bring your own IP address (BYOIP).
5688	Message *string `type:"string"`
5689
5690	// A timestamp when you make a status change for an IP address range that you
5691	// bring to AWS Global Accelerator through bring your own IP address (BYOIP).
5692	Timestamp *time.Time `type:"timestamp"`
5693}
5694
5695// String returns the string representation
5696func (s ByoipCidrEvent) String() string {
5697	return awsutil.Prettify(s)
5698}
5699
5700// GoString returns the string representation
5701func (s ByoipCidrEvent) GoString() string {
5702	return s.String()
5703}
5704
5705// SetMessage sets the Message field's value.
5706func (s *ByoipCidrEvent) SetMessage(v string) *ByoipCidrEvent {
5707	s.Message = &v
5708	return s
5709}
5710
5711// SetTimestamp sets the Timestamp field's value.
5712func (s *ByoipCidrEvent) SetTimestamp(v time.Time) *ByoipCidrEvent {
5713	s.Timestamp = &v
5714	return s
5715}
5716
5717// The CIDR that you specified was not found or is incorrect.
5718type ByoipCidrNotFoundException struct {
5719	_            struct{}                  `type:"structure"`
5720	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5721
5722	Message_ *string `locationName:"Message" type:"string"`
5723}
5724
5725// String returns the string representation
5726func (s ByoipCidrNotFoundException) String() string {
5727	return awsutil.Prettify(s)
5728}
5729
5730// GoString returns the string representation
5731func (s ByoipCidrNotFoundException) GoString() string {
5732	return s.String()
5733}
5734
5735func newErrorByoipCidrNotFoundException(v protocol.ResponseMetadata) error {
5736	return &ByoipCidrNotFoundException{
5737		RespMetadata: v,
5738	}
5739}
5740
5741// Code returns the exception type name.
5742func (s *ByoipCidrNotFoundException) Code() string {
5743	return "ByoipCidrNotFoundException"
5744}
5745
5746// Message returns the exception's message.
5747func (s *ByoipCidrNotFoundException) Message() string {
5748	if s.Message_ != nil {
5749		return *s.Message_
5750	}
5751	return ""
5752}
5753
5754// OrigErr always returns nil, satisfies awserr.Error interface.
5755func (s *ByoipCidrNotFoundException) OrigErr() error {
5756	return nil
5757}
5758
5759func (s *ByoipCidrNotFoundException) Error() string {
5760	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5761}
5762
5763// Status code returns the HTTP status code for the request's response error.
5764func (s *ByoipCidrNotFoundException) StatusCode() int {
5765	return s.RespMetadata.StatusCode
5766}
5767
5768// RequestID returns the service's response RequestID for request.
5769func (s *ByoipCidrNotFoundException) RequestID() string {
5770	return s.RespMetadata.RequestID
5771}
5772
5773// Provides authorization for Amazon to bring a specific IP address range to
5774// a specific AWS account using bring your own IP addresses (BYOIP).
5775//
5776// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
5777// in the AWS Global Accelerator Developer Guide.
5778type CidrAuthorizationContext struct {
5779	_ struct{} `type:"structure"`
5780
5781	// The plain-text authorization message for the prefix and account.
5782	//
5783	// Message is a required field
5784	Message *string `type:"string" required:"true"`
5785
5786	// The signed authorization message for the prefix and account.
5787	//
5788	// Signature is a required field
5789	Signature *string `type:"string" required:"true"`
5790}
5791
5792// String returns the string representation
5793func (s CidrAuthorizationContext) String() string {
5794	return awsutil.Prettify(s)
5795}
5796
5797// GoString returns the string representation
5798func (s CidrAuthorizationContext) GoString() string {
5799	return s.String()
5800}
5801
5802// Validate inspects the fields of the type to determine if they are valid.
5803func (s *CidrAuthorizationContext) Validate() error {
5804	invalidParams := request.ErrInvalidParams{Context: "CidrAuthorizationContext"}
5805	if s.Message == nil {
5806		invalidParams.Add(request.NewErrParamRequired("Message"))
5807	}
5808	if s.Signature == nil {
5809		invalidParams.Add(request.NewErrParamRequired("Signature"))
5810	}
5811
5812	if invalidParams.Len() > 0 {
5813		return invalidParams
5814	}
5815	return nil
5816}
5817
5818// SetMessage sets the Message field's value.
5819func (s *CidrAuthorizationContext) SetMessage(v string) *CidrAuthorizationContext {
5820	s.Message = &v
5821	return s
5822}
5823
5824// SetSignature sets the Signature field's value.
5825func (s *CidrAuthorizationContext) SetSignature(v string) *CidrAuthorizationContext {
5826	s.Signature = &v
5827	return s
5828}
5829
5830// You can't use both of those options.
5831type ConflictException struct {
5832	_            struct{}                  `type:"structure"`
5833	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5834
5835	Message_ *string `locationName:"Message" type:"string"`
5836}
5837
5838// String returns the string representation
5839func (s ConflictException) String() string {
5840	return awsutil.Prettify(s)
5841}
5842
5843// GoString returns the string representation
5844func (s ConflictException) GoString() string {
5845	return s.String()
5846}
5847
5848func newErrorConflictException(v protocol.ResponseMetadata) error {
5849	return &ConflictException{
5850		RespMetadata: v,
5851	}
5852}
5853
5854// Code returns the exception type name.
5855func (s *ConflictException) Code() string {
5856	return "ConflictException"
5857}
5858
5859// Message returns the exception's message.
5860func (s *ConflictException) Message() string {
5861	if s.Message_ != nil {
5862		return *s.Message_
5863	}
5864	return ""
5865}
5866
5867// OrigErr always returns nil, satisfies awserr.Error interface.
5868func (s *ConflictException) OrigErr() error {
5869	return nil
5870}
5871
5872func (s *ConflictException) Error() string {
5873	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5874}
5875
5876// Status code returns the HTTP status code for the request's response error.
5877func (s *ConflictException) StatusCode() int {
5878	return s.RespMetadata.StatusCode
5879}
5880
5881// RequestID returns the service's response RequestID for request.
5882func (s *ConflictException) RequestID() string {
5883	return s.RespMetadata.RequestID
5884}
5885
5886type CreateAcceleratorInput struct {
5887	_ struct{} `type:"structure"`
5888
5889	// Indicates whether an accelerator is enabled. The value is true or false.
5890	// The default value is true.
5891	//
5892	// If the value is set to true, an accelerator cannot be deleted. If set to
5893	// false, the accelerator can be deleted.
5894	Enabled *bool `type:"boolean"`
5895
5896	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
5897	// is, the uniqueness—of an accelerator.
5898	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
5899
5900	// The value for the address type must be IPv4.
5901	IpAddressType *string `type:"string" enum:"IpAddressType"`
5902
5903	// Optionally, if you've added your own IP address pool to Global Accelerator
5904	// (BYOIP), you can choose IP addresses from your own pool to use for the accelerator's
5905	// static IP addresses when you create an accelerator. You can specify one or
5906	// two addresses, separated by a comma. Do not include the /32 suffix.
5907	//
5908	// Only one IP address from each of your IP address ranges can be used for each
5909	// accelerator. If you specify only one IP address from your IP address range,
5910	// Global Accelerator assigns a second static IP address for the accelerator
5911	// from the AWS IP address pool.
5912	//
5913	// Note that you can't update IP addresses for an existing accelerator. To change
5914	// them, you must create a new accelerator with the new addresses.
5915	//
5916	// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
5917	// in the AWS Global Accelerator Developer Guide.
5918	IpAddresses []*string `type:"list"`
5919
5920	// The name of an accelerator. The name can have a maximum of 32 characters,
5921	// must contain only alphanumeric characters or hyphens (-), and must not begin
5922	// or end with a hyphen.
5923	//
5924	// Name is a required field
5925	Name *string `type:"string" required:"true"`
5926
5927	// Create tags for an accelerator.
5928	//
5929	// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
5930	// in the AWS Global Accelerator Developer Guide.
5931	Tags []*Tag `type:"list"`
5932}
5933
5934// String returns the string representation
5935func (s CreateAcceleratorInput) String() string {
5936	return awsutil.Prettify(s)
5937}
5938
5939// GoString returns the string representation
5940func (s CreateAcceleratorInput) GoString() string {
5941	return s.String()
5942}
5943
5944// Validate inspects the fields of the type to determine if they are valid.
5945func (s *CreateAcceleratorInput) Validate() error {
5946	invalidParams := request.ErrInvalidParams{Context: "CreateAcceleratorInput"}
5947	if s.Name == nil {
5948		invalidParams.Add(request.NewErrParamRequired("Name"))
5949	}
5950	if s.Tags != nil {
5951		for i, v := range s.Tags {
5952			if v == nil {
5953				continue
5954			}
5955			if err := v.Validate(); err != nil {
5956				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5957			}
5958		}
5959	}
5960
5961	if invalidParams.Len() > 0 {
5962		return invalidParams
5963	}
5964	return nil
5965}
5966
5967// SetEnabled sets the Enabled field's value.
5968func (s *CreateAcceleratorInput) SetEnabled(v bool) *CreateAcceleratorInput {
5969	s.Enabled = &v
5970	return s
5971}
5972
5973// SetIdempotencyToken sets the IdempotencyToken field's value.
5974func (s *CreateAcceleratorInput) SetIdempotencyToken(v string) *CreateAcceleratorInput {
5975	s.IdempotencyToken = &v
5976	return s
5977}
5978
5979// SetIpAddressType sets the IpAddressType field's value.
5980func (s *CreateAcceleratorInput) SetIpAddressType(v string) *CreateAcceleratorInput {
5981	s.IpAddressType = &v
5982	return s
5983}
5984
5985// SetIpAddresses sets the IpAddresses field's value.
5986func (s *CreateAcceleratorInput) SetIpAddresses(v []*string) *CreateAcceleratorInput {
5987	s.IpAddresses = v
5988	return s
5989}
5990
5991// SetName sets the Name field's value.
5992func (s *CreateAcceleratorInput) SetName(v string) *CreateAcceleratorInput {
5993	s.Name = &v
5994	return s
5995}
5996
5997// SetTags sets the Tags field's value.
5998func (s *CreateAcceleratorInput) SetTags(v []*Tag) *CreateAcceleratorInput {
5999	s.Tags = v
6000	return s
6001}
6002
6003type CreateAcceleratorOutput struct {
6004	_ struct{} `type:"structure"`
6005
6006	// The accelerator that is created by specifying a listener and the supported
6007	// IP address types.
6008	Accelerator *Accelerator `type:"structure"`
6009}
6010
6011// String returns the string representation
6012func (s CreateAcceleratorOutput) String() string {
6013	return awsutil.Prettify(s)
6014}
6015
6016// GoString returns the string representation
6017func (s CreateAcceleratorOutput) GoString() string {
6018	return s.String()
6019}
6020
6021// SetAccelerator sets the Accelerator field's value.
6022func (s *CreateAcceleratorOutput) SetAccelerator(v *Accelerator) *CreateAcceleratorOutput {
6023	s.Accelerator = v
6024	return s
6025}
6026
6027type CreateCustomRoutingAcceleratorInput struct {
6028	_ struct{} `type:"structure"`
6029
6030	// Indicates whether an accelerator is enabled. The value is true or false.
6031	// The default value is true.
6032	//
6033	// If the value is set to true, an accelerator cannot be deleted. If set to
6034	// false, the accelerator can be deleted.
6035	Enabled *bool `type:"boolean"`
6036
6037	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
6038	// is, the uniqueness—of the request.
6039	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
6040
6041	// The value for the address type must be IPv4.
6042	IpAddressType *string `type:"string" enum:"IpAddressType"`
6043
6044	// The name of a custom routing accelerator. The name can have a maximum of
6045	// 64 characters, must contain only alphanumeric characters or hyphens (-),
6046	// and must not begin or end with a hyphen.
6047	//
6048	// Name is a required field
6049	Name *string `type:"string" required:"true"`
6050
6051	// Create tags for an accelerator.
6052	//
6053	// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
6054	// in the AWS Global Accelerator Developer Guide.
6055	Tags []*Tag `type:"list"`
6056}
6057
6058// String returns the string representation
6059func (s CreateCustomRoutingAcceleratorInput) String() string {
6060	return awsutil.Prettify(s)
6061}
6062
6063// GoString returns the string representation
6064func (s CreateCustomRoutingAcceleratorInput) GoString() string {
6065	return s.String()
6066}
6067
6068// Validate inspects the fields of the type to determine if they are valid.
6069func (s *CreateCustomRoutingAcceleratorInput) Validate() error {
6070	invalidParams := request.ErrInvalidParams{Context: "CreateCustomRoutingAcceleratorInput"}
6071	if s.Name == nil {
6072		invalidParams.Add(request.NewErrParamRequired("Name"))
6073	}
6074	if s.Tags != nil {
6075		for i, v := range s.Tags {
6076			if v == nil {
6077				continue
6078			}
6079			if err := v.Validate(); err != nil {
6080				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6081			}
6082		}
6083	}
6084
6085	if invalidParams.Len() > 0 {
6086		return invalidParams
6087	}
6088	return nil
6089}
6090
6091// SetEnabled sets the Enabled field's value.
6092func (s *CreateCustomRoutingAcceleratorInput) SetEnabled(v bool) *CreateCustomRoutingAcceleratorInput {
6093	s.Enabled = &v
6094	return s
6095}
6096
6097// SetIdempotencyToken sets the IdempotencyToken field's value.
6098func (s *CreateCustomRoutingAcceleratorInput) SetIdempotencyToken(v string) *CreateCustomRoutingAcceleratorInput {
6099	s.IdempotencyToken = &v
6100	return s
6101}
6102
6103// SetIpAddressType sets the IpAddressType field's value.
6104func (s *CreateCustomRoutingAcceleratorInput) SetIpAddressType(v string) *CreateCustomRoutingAcceleratorInput {
6105	s.IpAddressType = &v
6106	return s
6107}
6108
6109// SetName sets the Name field's value.
6110func (s *CreateCustomRoutingAcceleratorInput) SetName(v string) *CreateCustomRoutingAcceleratorInput {
6111	s.Name = &v
6112	return s
6113}
6114
6115// SetTags sets the Tags field's value.
6116func (s *CreateCustomRoutingAcceleratorInput) SetTags(v []*Tag) *CreateCustomRoutingAcceleratorInput {
6117	s.Tags = v
6118	return s
6119}
6120
6121type CreateCustomRoutingAcceleratorOutput struct {
6122	_ struct{} `type:"structure"`
6123
6124	// The accelerator that is created.
6125	Accelerator *CustomRoutingAccelerator `type:"structure"`
6126}
6127
6128// String returns the string representation
6129func (s CreateCustomRoutingAcceleratorOutput) String() string {
6130	return awsutil.Prettify(s)
6131}
6132
6133// GoString returns the string representation
6134func (s CreateCustomRoutingAcceleratorOutput) GoString() string {
6135	return s.String()
6136}
6137
6138// SetAccelerator sets the Accelerator field's value.
6139func (s *CreateCustomRoutingAcceleratorOutput) SetAccelerator(v *CustomRoutingAccelerator) *CreateCustomRoutingAcceleratorOutput {
6140	s.Accelerator = v
6141	return s
6142}
6143
6144type CreateCustomRoutingEndpointGroupInput struct {
6145	_ struct{} `type:"structure"`
6146
6147	// Sets the port range and protocol for all endpoints (virtual private cloud
6148	// subnets) in a custom routing endpoint group to accept client traffic on.
6149	//
6150	// DestinationConfigurations is a required field
6151	DestinationConfigurations []*CustomRoutingDestinationConfiguration `min:"1" type:"list" required:"true"`
6152
6153	// The AWS Region where the endpoint group is located. A listener can have only
6154	// one endpoint group in a specific Region.
6155	//
6156	// EndpointGroupRegion is a required field
6157	EndpointGroupRegion *string `type:"string" required:"true"`
6158
6159	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
6160	// is, the uniqueness—of the request.
6161	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
6162
6163	// The Amazon Resource Name (ARN) of the listener for a custom routing endpoint.
6164	//
6165	// ListenerArn is a required field
6166	ListenerArn *string `type:"string" required:"true"`
6167}
6168
6169// String returns the string representation
6170func (s CreateCustomRoutingEndpointGroupInput) String() string {
6171	return awsutil.Prettify(s)
6172}
6173
6174// GoString returns the string representation
6175func (s CreateCustomRoutingEndpointGroupInput) GoString() string {
6176	return s.String()
6177}
6178
6179// Validate inspects the fields of the type to determine if they are valid.
6180func (s *CreateCustomRoutingEndpointGroupInput) Validate() error {
6181	invalidParams := request.ErrInvalidParams{Context: "CreateCustomRoutingEndpointGroupInput"}
6182	if s.DestinationConfigurations == nil {
6183		invalidParams.Add(request.NewErrParamRequired("DestinationConfigurations"))
6184	}
6185	if s.DestinationConfigurations != nil && len(s.DestinationConfigurations) < 1 {
6186		invalidParams.Add(request.NewErrParamMinLen("DestinationConfigurations", 1))
6187	}
6188	if s.EndpointGroupRegion == nil {
6189		invalidParams.Add(request.NewErrParamRequired("EndpointGroupRegion"))
6190	}
6191	if s.ListenerArn == nil {
6192		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
6193	}
6194	if s.DestinationConfigurations != nil {
6195		for i, v := range s.DestinationConfigurations {
6196			if v == nil {
6197				continue
6198			}
6199			if err := v.Validate(); err != nil {
6200				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DestinationConfigurations", i), err.(request.ErrInvalidParams))
6201			}
6202		}
6203	}
6204
6205	if invalidParams.Len() > 0 {
6206		return invalidParams
6207	}
6208	return nil
6209}
6210
6211// SetDestinationConfigurations sets the DestinationConfigurations field's value.
6212func (s *CreateCustomRoutingEndpointGroupInput) SetDestinationConfigurations(v []*CustomRoutingDestinationConfiguration) *CreateCustomRoutingEndpointGroupInput {
6213	s.DestinationConfigurations = v
6214	return s
6215}
6216
6217// SetEndpointGroupRegion sets the EndpointGroupRegion field's value.
6218func (s *CreateCustomRoutingEndpointGroupInput) SetEndpointGroupRegion(v string) *CreateCustomRoutingEndpointGroupInput {
6219	s.EndpointGroupRegion = &v
6220	return s
6221}
6222
6223// SetIdempotencyToken sets the IdempotencyToken field's value.
6224func (s *CreateCustomRoutingEndpointGroupInput) SetIdempotencyToken(v string) *CreateCustomRoutingEndpointGroupInput {
6225	s.IdempotencyToken = &v
6226	return s
6227}
6228
6229// SetListenerArn sets the ListenerArn field's value.
6230func (s *CreateCustomRoutingEndpointGroupInput) SetListenerArn(v string) *CreateCustomRoutingEndpointGroupInput {
6231	s.ListenerArn = &v
6232	return s
6233}
6234
6235type CreateCustomRoutingEndpointGroupOutput struct {
6236	_ struct{} `type:"structure"`
6237
6238	// The information about the endpoint group created for a custom routing accelerator.
6239	EndpointGroup *CustomRoutingEndpointGroup `type:"structure"`
6240}
6241
6242// String returns the string representation
6243func (s CreateCustomRoutingEndpointGroupOutput) String() string {
6244	return awsutil.Prettify(s)
6245}
6246
6247// GoString returns the string representation
6248func (s CreateCustomRoutingEndpointGroupOutput) GoString() string {
6249	return s.String()
6250}
6251
6252// SetEndpointGroup sets the EndpointGroup field's value.
6253func (s *CreateCustomRoutingEndpointGroupOutput) SetEndpointGroup(v *CustomRoutingEndpointGroup) *CreateCustomRoutingEndpointGroupOutput {
6254	s.EndpointGroup = v
6255	return s
6256}
6257
6258type CreateCustomRoutingListenerInput struct {
6259	_ struct{} `type:"structure"`
6260
6261	// The Amazon Resource Name (ARN) of the accelerator for a custom routing listener.
6262	//
6263	// AcceleratorArn is a required field
6264	AcceleratorArn *string `type:"string" required:"true"`
6265
6266	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
6267	// is, the uniqueness—of the request.
6268	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
6269
6270	// The port range to support for connections from clients to your accelerator.
6271	//
6272	// Separately, you set port ranges for endpoints. For more information, see
6273	// About endpoints for custom routing accelerators (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html).
6274	//
6275	// PortRanges is a required field
6276	PortRanges []*PortRange `min:"1" type:"list" required:"true"`
6277}
6278
6279// String returns the string representation
6280func (s CreateCustomRoutingListenerInput) String() string {
6281	return awsutil.Prettify(s)
6282}
6283
6284// GoString returns the string representation
6285func (s CreateCustomRoutingListenerInput) GoString() string {
6286	return s.String()
6287}
6288
6289// Validate inspects the fields of the type to determine if they are valid.
6290func (s *CreateCustomRoutingListenerInput) Validate() error {
6291	invalidParams := request.ErrInvalidParams{Context: "CreateCustomRoutingListenerInput"}
6292	if s.AcceleratorArn == nil {
6293		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
6294	}
6295	if s.PortRanges == nil {
6296		invalidParams.Add(request.NewErrParamRequired("PortRanges"))
6297	}
6298	if s.PortRanges != nil && len(s.PortRanges) < 1 {
6299		invalidParams.Add(request.NewErrParamMinLen("PortRanges", 1))
6300	}
6301	if s.PortRanges != nil {
6302		for i, v := range s.PortRanges {
6303			if v == nil {
6304				continue
6305			}
6306			if err := v.Validate(); err != nil {
6307				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortRanges", i), err.(request.ErrInvalidParams))
6308			}
6309		}
6310	}
6311
6312	if invalidParams.Len() > 0 {
6313		return invalidParams
6314	}
6315	return nil
6316}
6317
6318// SetAcceleratorArn sets the AcceleratorArn field's value.
6319func (s *CreateCustomRoutingListenerInput) SetAcceleratorArn(v string) *CreateCustomRoutingListenerInput {
6320	s.AcceleratorArn = &v
6321	return s
6322}
6323
6324// SetIdempotencyToken sets the IdempotencyToken field's value.
6325func (s *CreateCustomRoutingListenerInput) SetIdempotencyToken(v string) *CreateCustomRoutingListenerInput {
6326	s.IdempotencyToken = &v
6327	return s
6328}
6329
6330// SetPortRanges sets the PortRanges field's value.
6331func (s *CreateCustomRoutingListenerInput) SetPortRanges(v []*PortRange) *CreateCustomRoutingListenerInput {
6332	s.PortRanges = v
6333	return s
6334}
6335
6336type CreateCustomRoutingListenerOutput struct {
6337	_ struct{} `type:"structure"`
6338
6339	// The listener that you've created for a custom routing accelerator.
6340	Listener *CustomRoutingListener `type:"structure"`
6341}
6342
6343// String returns the string representation
6344func (s CreateCustomRoutingListenerOutput) String() string {
6345	return awsutil.Prettify(s)
6346}
6347
6348// GoString returns the string representation
6349func (s CreateCustomRoutingListenerOutput) GoString() string {
6350	return s.String()
6351}
6352
6353// SetListener sets the Listener field's value.
6354func (s *CreateCustomRoutingListenerOutput) SetListener(v *CustomRoutingListener) *CreateCustomRoutingListenerOutput {
6355	s.Listener = v
6356	return s
6357}
6358
6359type CreateEndpointGroupInput struct {
6360	_ struct{} `type:"structure"`
6361
6362	// The list of endpoint objects.
6363	EndpointConfigurations []*EndpointConfiguration `type:"list"`
6364
6365	// The AWS Region where the endpoint group is located. A listener can have only
6366	// one endpoint group in a specific Region.
6367	//
6368	// EndpointGroupRegion is a required field
6369	EndpointGroupRegion *string `type:"string" required:"true"`
6370
6371	// The time—10 seconds or 30 seconds—between each health check for an endpoint.
6372	// The default value is 30.
6373	HealthCheckIntervalSeconds *int64 `min:"10" type:"integer"`
6374
6375	// If the protocol is HTTP/S, then this specifies the path that is the destination
6376	// for health check targets. The default value is slash (/).
6377	HealthCheckPath *string `type:"string"`
6378
6379	// The port that AWS Global Accelerator uses to check the health of endpoints
6380	// that are part of this endpoint group. The default port is the listener port
6381	// that this endpoint group is associated with. If listener port is a list of
6382	// ports, Global Accelerator uses the first port in the list.
6383	HealthCheckPort *int64 `min:"1" type:"integer"`
6384
6385	// The protocol that AWS Global Accelerator uses to check the health of endpoints
6386	// that are part of this endpoint group. The default value is TCP.
6387	HealthCheckProtocol *string `type:"string" enum:"HealthCheckProtocol"`
6388
6389	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
6390	// is, the uniqueness—of the request.
6391	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
6392
6393	// The Amazon Resource Name (ARN) of the listener.
6394	//
6395	// ListenerArn is a required field
6396	ListenerArn *string `type:"string" required:"true"`
6397
6398	// Override specific listener ports used to route traffic to endpoints that
6399	// are part of this endpoint group. For example, you can create a port override
6400	// in which the listener receives user traffic on ports 80 and 443, but your
6401	// accelerator routes that traffic to ports 1080 and 1443, respectively, on
6402	// the endpoints.
6403	//
6404	// For more information, see Port overrides (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html)
6405	// in the AWS Global Accelerator Developer Guide.
6406	PortOverrides []*PortOverride `type:"list"`
6407
6408	// The number of consecutive health checks required to set the state of a healthy
6409	// endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default
6410	// value is 3.
6411	ThresholdCount *int64 `min:"1" type:"integer"`
6412
6413	// The percentage of traffic to send to an AWS Region. Additional traffic is
6414	// distributed to other endpoint groups for this listener.
6415	//
6416	// Use this action to increase (dial up) or decrease (dial down) traffic to
6417	// a specific Region. The percentage is applied to the traffic that would otherwise
6418	// have been routed to the Region based on optimal routing.
6419	//
6420	// The default value is 100.
6421	TrafficDialPercentage *float64 `type:"float"`
6422}
6423
6424// String returns the string representation
6425func (s CreateEndpointGroupInput) String() string {
6426	return awsutil.Prettify(s)
6427}
6428
6429// GoString returns the string representation
6430func (s CreateEndpointGroupInput) GoString() string {
6431	return s.String()
6432}
6433
6434// Validate inspects the fields of the type to determine if they are valid.
6435func (s *CreateEndpointGroupInput) Validate() error {
6436	invalidParams := request.ErrInvalidParams{Context: "CreateEndpointGroupInput"}
6437	if s.EndpointGroupRegion == nil {
6438		invalidParams.Add(request.NewErrParamRequired("EndpointGroupRegion"))
6439	}
6440	if s.HealthCheckIntervalSeconds != nil && *s.HealthCheckIntervalSeconds < 10 {
6441		invalidParams.Add(request.NewErrParamMinValue("HealthCheckIntervalSeconds", 10))
6442	}
6443	if s.HealthCheckPort != nil && *s.HealthCheckPort < 1 {
6444		invalidParams.Add(request.NewErrParamMinValue("HealthCheckPort", 1))
6445	}
6446	if s.ListenerArn == nil {
6447		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
6448	}
6449	if s.ThresholdCount != nil && *s.ThresholdCount < 1 {
6450		invalidParams.Add(request.NewErrParamMinValue("ThresholdCount", 1))
6451	}
6452	if s.PortOverrides != nil {
6453		for i, v := range s.PortOverrides {
6454			if v == nil {
6455				continue
6456			}
6457			if err := v.Validate(); err != nil {
6458				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortOverrides", i), err.(request.ErrInvalidParams))
6459			}
6460		}
6461	}
6462
6463	if invalidParams.Len() > 0 {
6464		return invalidParams
6465	}
6466	return nil
6467}
6468
6469// SetEndpointConfigurations sets the EndpointConfigurations field's value.
6470func (s *CreateEndpointGroupInput) SetEndpointConfigurations(v []*EndpointConfiguration) *CreateEndpointGroupInput {
6471	s.EndpointConfigurations = v
6472	return s
6473}
6474
6475// SetEndpointGroupRegion sets the EndpointGroupRegion field's value.
6476func (s *CreateEndpointGroupInput) SetEndpointGroupRegion(v string) *CreateEndpointGroupInput {
6477	s.EndpointGroupRegion = &v
6478	return s
6479}
6480
6481// SetHealthCheckIntervalSeconds sets the HealthCheckIntervalSeconds field's value.
6482func (s *CreateEndpointGroupInput) SetHealthCheckIntervalSeconds(v int64) *CreateEndpointGroupInput {
6483	s.HealthCheckIntervalSeconds = &v
6484	return s
6485}
6486
6487// SetHealthCheckPath sets the HealthCheckPath field's value.
6488func (s *CreateEndpointGroupInput) SetHealthCheckPath(v string) *CreateEndpointGroupInput {
6489	s.HealthCheckPath = &v
6490	return s
6491}
6492
6493// SetHealthCheckPort sets the HealthCheckPort field's value.
6494func (s *CreateEndpointGroupInput) SetHealthCheckPort(v int64) *CreateEndpointGroupInput {
6495	s.HealthCheckPort = &v
6496	return s
6497}
6498
6499// SetHealthCheckProtocol sets the HealthCheckProtocol field's value.
6500func (s *CreateEndpointGroupInput) SetHealthCheckProtocol(v string) *CreateEndpointGroupInput {
6501	s.HealthCheckProtocol = &v
6502	return s
6503}
6504
6505// SetIdempotencyToken sets the IdempotencyToken field's value.
6506func (s *CreateEndpointGroupInput) SetIdempotencyToken(v string) *CreateEndpointGroupInput {
6507	s.IdempotencyToken = &v
6508	return s
6509}
6510
6511// SetListenerArn sets the ListenerArn field's value.
6512func (s *CreateEndpointGroupInput) SetListenerArn(v string) *CreateEndpointGroupInput {
6513	s.ListenerArn = &v
6514	return s
6515}
6516
6517// SetPortOverrides sets the PortOverrides field's value.
6518func (s *CreateEndpointGroupInput) SetPortOverrides(v []*PortOverride) *CreateEndpointGroupInput {
6519	s.PortOverrides = v
6520	return s
6521}
6522
6523// SetThresholdCount sets the ThresholdCount field's value.
6524func (s *CreateEndpointGroupInput) SetThresholdCount(v int64) *CreateEndpointGroupInput {
6525	s.ThresholdCount = &v
6526	return s
6527}
6528
6529// SetTrafficDialPercentage sets the TrafficDialPercentage field's value.
6530func (s *CreateEndpointGroupInput) SetTrafficDialPercentage(v float64) *CreateEndpointGroupInput {
6531	s.TrafficDialPercentage = &v
6532	return s
6533}
6534
6535type CreateEndpointGroupOutput struct {
6536	_ struct{} `type:"structure"`
6537
6538	// The information about the endpoint group that was created.
6539	EndpointGroup *EndpointGroup `type:"structure"`
6540}
6541
6542// String returns the string representation
6543func (s CreateEndpointGroupOutput) String() string {
6544	return awsutil.Prettify(s)
6545}
6546
6547// GoString returns the string representation
6548func (s CreateEndpointGroupOutput) GoString() string {
6549	return s.String()
6550}
6551
6552// SetEndpointGroup sets the EndpointGroup field's value.
6553func (s *CreateEndpointGroupOutput) SetEndpointGroup(v *EndpointGroup) *CreateEndpointGroupOutput {
6554	s.EndpointGroup = v
6555	return s
6556}
6557
6558type CreateListenerInput struct {
6559	_ struct{} `type:"structure"`
6560
6561	// The Amazon Resource Name (ARN) of your accelerator.
6562	//
6563	// AcceleratorArn is a required field
6564	AcceleratorArn *string `type:"string" required:"true"`
6565
6566	// Client affinity lets you direct all requests from a user to the same endpoint,
6567	// if you have stateful applications, regardless of the port and protocol of
6568	// the client request. Client affinity gives you control over whether to always
6569	// route each client to the same specific endpoint.
6570	//
6571	// AWS Global Accelerator uses a consistent-flow hashing algorithm to choose
6572	// the optimal endpoint for a connection. If client affinity is NONE, Global
6573	// Accelerator uses the "five-tuple" (5-tuple) properties—source IP address,
6574	// source port, destination IP address, destination port, and protocol—to
6575	// select the hash value, and then chooses the best endpoint. However, with
6576	// this setting, if someone uses different ports to connect to Global Accelerator,
6577	// their connections might not be always routed to the same endpoint because
6578	// the hash value changes.
6579	//
6580	// If you want a given client to always be routed to the same endpoint, set
6581	// client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting,
6582	// Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client)
6583	// IP address and destination IP address—to select the hash value.
6584	//
6585	// The default value is NONE.
6586	ClientAffinity *string `type:"string" enum:"ClientAffinity"`
6587
6588	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
6589	// is, the uniqueness—of the request.
6590	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
6591
6592	// The list of port ranges to support for connections from clients to your accelerator.
6593	//
6594	// PortRanges is a required field
6595	PortRanges []*PortRange `min:"1" type:"list" required:"true"`
6596
6597	// The protocol for connections from clients to your accelerator.
6598	//
6599	// Protocol is a required field
6600	Protocol *string `type:"string" required:"true" enum:"Protocol"`
6601}
6602
6603// String returns the string representation
6604func (s CreateListenerInput) String() string {
6605	return awsutil.Prettify(s)
6606}
6607
6608// GoString returns the string representation
6609func (s CreateListenerInput) GoString() string {
6610	return s.String()
6611}
6612
6613// Validate inspects the fields of the type to determine if they are valid.
6614func (s *CreateListenerInput) Validate() error {
6615	invalidParams := request.ErrInvalidParams{Context: "CreateListenerInput"}
6616	if s.AcceleratorArn == nil {
6617		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
6618	}
6619	if s.PortRanges == nil {
6620		invalidParams.Add(request.NewErrParamRequired("PortRanges"))
6621	}
6622	if s.PortRanges != nil && len(s.PortRanges) < 1 {
6623		invalidParams.Add(request.NewErrParamMinLen("PortRanges", 1))
6624	}
6625	if s.Protocol == nil {
6626		invalidParams.Add(request.NewErrParamRequired("Protocol"))
6627	}
6628	if s.PortRanges != nil {
6629		for i, v := range s.PortRanges {
6630			if v == nil {
6631				continue
6632			}
6633			if err := v.Validate(); err != nil {
6634				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortRanges", i), err.(request.ErrInvalidParams))
6635			}
6636		}
6637	}
6638
6639	if invalidParams.Len() > 0 {
6640		return invalidParams
6641	}
6642	return nil
6643}
6644
6645// SetAcceleratorArn sets the AcceleratorArn field's value.
6646func (s *CreateListenerInput) SetAcceleratorArn(v string) *CreateListenerInput {
6647	s.AcceleratorArn = &v
6648	return s
6649}
6650
6651// SetClientAffinity sets the ClientAffinity field's value.
6652func (s *CreateListenerInput) SetClientAffinity(v string) *CreateListenerInput {
6653	s.ClientAffinity = &v
6654	return s
6655}
6656
6657// SetIdempotencyToken sets the IdempotencyToken field's value.
6658func (s *CreateListenerInput) SetIdempotencyToken(v string) *CreateListenerInput {
6659	s.IdempotencyToken = &v
6660	return s
6661}
6662
6663// SetPortRanges sets the PortRanges field's value.
6664func (s *CreateListenerInput) SetPortRanges(v []*PortRange) *CreateListenerInput {
6665	s.PortRanges = v
6666	return s
6667}
6668
6669// SetProtocol sets the Protocol field's value.
6670func (s *CreateListenerInput) SetProtocol(v string) *CreateListenerInput {
6671	s.Protocol = &v
6672	return s
6673}
6674
6675type CreateListenerOutput struct {
6676	_ struct{} `type:"structure"`
6677
6678	// The listener that you've created.
6679	Listener *Listener `type:"structure"`
6680}
6681
6682// String returns the string representation
6683func (s CreateListenerOutput) String() string {
6684	return awsutil.Prettify(s)
6685}
6686
6687// GoString returns the string representation
6688func (s CreateListenerOutput) GoString() string {
6689	return s.String()
6690}
6691
6692// SetListener sets the Listener field's value.
6693func (s *CreateListenerOutput) SetListener(v *Listener) *CreateListenerOutput {
6694	s.Listener = v
6695	return s
6696}
6697
6698// Attributes of a custom routing accelerator.
6699type CustomRoutingAccelerator struct {
6700	_ struct{} `type:"structure"`
6701
6702	// The Amazon Resource Name (ARN) of the custom routing accelerator.
6703	AcceleratorArn *string `type:"string"`
6704
6705	// The date and time that the accelerator was created.
6706	CreatedTime *time.Time `type:"timestamp"`
6707
6708	// The Domain Name System (DNS) name that Global Accelerator creates that points
6709	// to your accelerator's static IP addresses.
6710	//
6711	// The naming convention for the DNS name is the following: A lowercase letter
6712	// a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com.
6713	// For example: a1234567890abcdef.awsglobalaccelerator.com.
6714	//
6715	// For more information about the default DNS name, see Support for DNS Addressing
6716	// in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing)
6717	// in the AWS Global Accelerator Developer Guide.
6718	DnsName *string `type:"string"`
6719
6720	// Indicates whether the accelerator is enabled. The value is true or false.
6721	// The default value is true.
6722	//
6723	// If the value is set to true, the accelerator cannot be deleted. If set to
6724	// false, accelerator can be deleted.
6725	Enabled *bool `type:"boolean"`
6726
6727	// The value for the address type must be IPv4.
6728	IpAddressType *string `type:"string" enum:"IpAddressType"`
6729
6730	// The static IP addresses that Global Accelerator associates with the accelerator.
6731	IpSets []*IpSet `type:"list"`
6732
6733	// The date and time that the accelerator was last modified.
6734	LastModifiedTime *time.Time `type:"timestamp"`
6735
6736	// The name of the accelerator. The name must contain only alphanumeric characters
6737	// or hyphens (-), and must not begin or end with a hyphen.
6738	Name *string `type:"string"`
6739
6740	// Describes the deployment status of the accelerator.
6741	Status *string `type:"string" enum:"CustomRoutingAcceleratorStatus"`
6742}
6743
6744// String returns the string representation
6745func (s CustomRoutingAccelerator) String() string {
6746	return awsutil.Prettify(s)
6747}
6748
6749// GoString returns the string representation
6750func (s CustomRoutingAccelerator) GoString() string {
6751	return s.String()
6752}
6753
6754// SetAcceleratorArn sets the AcceleratorArn field's value.
6755func (s *CustomRoutingAccelerator) SetAcceleratorArn(v string) *CustomRoutingAccelerator {
6756	s.AcceleratorArn = &v
6757	return s
6758}
6759
6760// SetCreatedTime sets the CreatedTime field's value.
6761func (s *CustomRoutingAccelerator) SetCreatedTime(v time.Time) *CustomRoutingAccelerator {
6762	s.CreatedTime = &v
6763	return s
6764}
6765
6766// SetDnsName sets the DnsName field's value.
6767func (s *CustomRoutingAccelerator) SetDnsName(v string) *CustomRoutingAccelerator {
6768	s.DnsName = &v
6769	return s
6770}
6771
6772// SetEnabled sets the Enabled field's value.
6773func (s *CustomRoutingAccelerator) SetEnabled(v bool) *CustomRoutingAccelerator {
6774	s.Enabled = &v
6775	return s
6776}
6777
6778// SetIpAddressType sets the IpAddressType field's value.
6779func (s *CustomRoutingAccelerator) SetIpAddressType(v string) *CustomRoutingAccelerator {
6780	s.IpAddressType = &v
6781	return s
6782}
6783
6784// SetIpSets sets the IpSets field's value.
6785func (s *CustomRoutingAccelerator) SetIpSets(v []*IpSet) *CustomRoutingAccelerator {
6786	s.IpSets = v
6787	return s
6788}
6789
6790// SetLastModifiedTime sets the LastModifiedTime field's value.
6791func (s *CustomRoutingAccelerator) SetLastModifiedTime(v time.Time) *CustomRoutingAccelerator {
6792	s.LastModifiedTime = &v
6793	return s
6794}
6795
6796// SetName sets the Name field's value.
6797func (s *CustomRoutingAccelerator) SetName(v string) *CustomRoutingAccelerator {
6798	s.Name = &v
6799	return s
6800}
6801
6802// SetStatus sets the Status field's value.
6803func (s *CustomRoutingAccelerator) SetStatus(v string) *CustomRoutingAccelerator {
6804	s.Status = &v
6805	return s
6806}
6807
6808// Attributes of a custom routing accelerator.
6809type CustomRoutingAcceleratorAttributes struct {
6810	_ struct{} `type:"structure"`
6811
6812	// Indicates whether flow logs are enabled. The default value is false. If the
6813	// value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.
6814	//
6815	// For more information, see Flow Logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html)
6816	// in the AWS Global Accelerator Developer Guide.
6817	FlowLogsEnabled *bool `type:"boolean"`
6818
6819	// The name of the Amazon S3 bucket for the flow logs. Attribute is required
6820	// if FlowLogsEnabled is true. The bucket must exist and have a bucket policy
6821	// that grants AWS Global Accelerator permission to write to the bucket.
6822	FlowLogsS3Bucket *string `type:"string"`
6823
6824	// The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute
6825	// is required if FlowLogsEnabled is true.
6826	//
6827	// If you don’t specify a prefix, the flow logs are stored in the root of
6828	// the bucket. If you specify slash (/) for the S3 bucket prefix, the log file
6829	// bucket folder structure will include a double slash (//), like the following:
6830	//
6831	// DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id
6832	FlowLogsS3Prefix *string `type:"string"`
6833}
6834
6835// String returns the string representation
6836func (s CustomRoutingAcceleratorAttributes) String() string {
6837	return awsutil.Prettify(s)
6838}
6839
6840// GoString returns the string representation
6841func (s CustomRoutingAcceleratorAttributes) GoString() string {
6842	return s.String()
6843}
6844
6845// SetFlowLogsEnabled sets the FlowLogsEnabled field's value.
6846func (s *CustomRoutingAcceleratorAttributes) SetFlowLogsEnabled(v bool) *CustomRoutingAcceleratorAttributes {
6847	s.FlowLogsEnabled = &v
6848	return s
6849}
6850
6851// SetFlowLogsS3Bucket sets the FlowLogsS3Bucket field's value.
6852func (s *CustomRoutingAcceleratorAttributes) SetFlowLogsS3Bucket(v string) *CustomRoutingAcceleratorAttributes {
6853	s.FlowLogsS3Bucket = &v
6854	return s
6855}
6856
6857// SetFlowLogsS3Prefix sets the FlowLogsS3Prefix field's value.
6858func (s *CustomRoutingAcceleratorAttributes) SetFlowLogsS3Prefix(v string) *CustomRoutingAcceleratorAttributes {
6859	s.FlowLogsS3Prefix = &v
6860	return s
6861}
6862
6863// For a custom routing accelerator, sets the port range and protocol for all
6864// endpoints (virtual private cloud subnets) in an endpoint group to accept
6865// client traffic on.
6866type CustomRoutingDestinationConfiguration struct {
6867	_ struct{} `type:"structure"`
6868
6869	// The first port, inclusive, in the range of ports for the endpoint group that
6870	// is associated with a custom routing accelerator.
6871	//
6872	// FromPort is a required field
6873	FromPort *int64 `min:"1" type:"integer" required:"true"`
6874
6875	// The protocol for the endpoint group that is associated with a custom routing
6876	// accelerator. The protocol can be either TCP or UDP.
6877	//
6878	// Protocols is a required field
6879	Protocols []*string `min:"1" type:"list" required:"true"`
6880
6881	// The last port, inclusive, in the range of ports for the endpoint group that
6882	// is associated with a custom routing accelerator.
6883	//
6884	// ToPort is a required field
6885	ToPort *int64 `min:"1" type:"integer" required:"true"`
6886}
6887
6888// String returns the string representation
6889func (s CustomRoutingDestinationConfiguration) String() string {
6890	return awsutil.Prettify(s)
6891}
6892
6893// GoString returns the string representation
6894func (s CustomRoutingDestinationConfiguration) GoString() string {
6895	return s.String()
6896}
6897
6898// Validate inspects the fields of the type to determine if they are valid.
6899func (s *CustomRoutingDestinationConfiguration) Validate() error {
6900	invalidParams := request.ErrInvalidParams{Context: "CustomRoutingDestinationConfiguration"}
6901	if s.FromPort == nil {
6902		invalidParams.Add(request.NewErrParamRequired("FromPort"))
6903	}
6904	if s.FromPort != nil && *s.FromPort < 1 {
6905		invalidParams.Add(request.NewErrParamMinValue("FromPort", 1))
6906	}
6907	if s.Protocols == nil {
6908		invalidParams.Add(request.NewErrParamRequired("Protocols"))
6909	}
6910	if s.Protocols != nil && len(s.Protocols) < 1 {
6911		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
6912	}
6913	if s.ToPort == nil {
6914		invalidParams.Add(request.NewErrParamRequired("ToPort"))
6915	}
6916	if s.ToPort != nil && *s.ToPort < 1 {
6917		invalidParams.Add(request.NewErrParamMinValue("ToPort", 1))
6918	}
6919
6920	if invalidParams.Len() > 0 {
6921		return invalidParams
6922	}
6923	return nil
6924}
6925
6926// SetFromPort sets the FromPort field's value.
6927func (s *CustomRoutingDestinationConfiguration) SetFromPort(v int64) *CustomRoutingDestinationConfiguration {
6928	s.FromPort = &v
6929	return s
6930}
6931
6932// SetProtocols sets the Protocols field's value.
6933func (s *CustomRoutingDestinationConfiguration) SetProtocols(v []*string) *CustomRoutingDestinationConfiguration {
6934	s.Protocols = v
6935	return s
6936}
6937
6938// SetToPort sets the ToPort field's value.
6939func (s *CustomRoutingDestinationConfiguration) SetToPort(v int64) *CustomRoutingDestinationConfiguration {
6940	s.ToPort = &v
6941	return s
6942}
6943
6944// For a custom routing accelerator, describes the port range and protocol for
6945// all endpoints (virtual private cloud subnets) in an endpoint group to accept
6946// client traffic on.
6947type CustomRoutingDestinationDescription struct {
6948	_ struct{} `type:"structure"`
6949
6950	// The first port, inclusive, in the range of ports for the endpoint group that
6951	// is associated with a custom routing accelerator.
6952	FromPort *int64 `min:"1" type:"integer"`
6953
6954	// The protocol for the endpoint group that is associated with a custom routing
6955	// accelerator. The protocol can be either TCP or UDP.
6956	Protocols []*string `type:"list"`
6957
6958	// The last port, inclusive, in the range of ports for the endpoint group that
6959	// is associated with a custom routing accelerator.
6960	ToPort *int64 `min:"1" type:"integer"`
6961}
6962
6963// String returns the string representation
6964func (s CustomRoutingDestinationDescription) String() string {
6965	return awsutil.Prettify(s)
6966}
6967
6968// GoString returns the string representation
6969func (s CustomRoutingDestinationDescription) GoString() string {
6970	return s.String()
6971}
6972
6973// SetFromPort sets the FromPort field's value.
6974func (s *CustomRoutingDestinationDescription) SetFromPort(v int64) *CustomRoutingDestinationDescription {
6975	s.FromPort = &v
6976	return s
6977}
6978
6979// SetProtocols sets the Protocols field's value.
6980func (s *CustomRoutingDestinationDescription) SetProtocols(v []*string) *CustomRoutingDestinationDescription {
6981	s.Protocols = v
6982	return s
6983}
6984
6985// SetToPort sets the ToPort field's value.
6986func (s *CustomRoutingDestinationDescription) SetToPort(v int64) *CustomRoutingDestinationDescription {
6987	s.ToPort = &v
6988	return s
6989}
6990
6991// The list of endpoint objects. For custom routing, this is a list of virtual
6992// private cloud (VPC) subnet IDs.
6993type CustomRoutingEndpointConfiguration struct {
6994	_ struct{} `type:"structure"`
6995
6996	// An ID for the endpoint. For custom routing accelerators, this is the virtual
6997	// private cloud (VPC) subnet ID.
6998	EndpointId *string `type:"string"`
6999}
7000
7001// String returns the string representation
7002func (s CustomRoutingEndpointConfiguration) String() string {
7003	return awsutil.Prettify(s)
7004}
7005
7006// GoString returns the string representation
7007func (s CustomRoutingEndpointConfiguration) GoString() string {
7008	return s.String()
7009}
7010
7011// SetEndpointId sets the EndpointId field's value.
7012func (s *CustomRoutingEndpointConfiguration) SetEndpointId(v string) *CustomRoutingEndpointConfiguration {
7013	s.EndpointId = &v
7014	return s
7015}
7016
7017// A complex type for an endpoint for a custom routing accelerator. Each endpoint
7018// group can include one or more endpoints, which are virtual private cloud
7019// (VPC) subnets.
7020type CustomRoutingEndpointDescription struct {
7021	_ struct{} `type:"structure"`
7022
7023	// An ID for the endpoint. For custom routing accelerators, this is the virtual
7024	// private cloud (VPC) subnet ID.
7025	EndpointId *string `type:"string"`
7026}
7027
7028// String returns the string representation
7029func (s CustomRoutingEndpointDescription) String() string {
7030	return awsutil.Prettify(s)
7031}
7032
7033// GoString returns the string representation
7034func (s CustomRoutingEndpointDescription) GoString() string {
7035	return s.String()
7036}
7037
7038// SetEndpointId sets the EndpointId field's value.
7039func (s *CustomRoutingEndpointDescription) SetEndpointId(v string) *CustomRoutingEndpointDescription {
7040	s.EndpointId = &v
7041	return s
7042}
7043
7044// A complex type for the endpoint group for a custom routing accelerator. An
7045// AWS Region can have only one endpoint group for a specific listener.
7046type CustomRoutingEndpointGroup struct {
7047	_ struct{} `type:"structure"`
7048
7049	// For a custom routing accelerator, describes the port range and protocol for
7050	// all endpoints (virtual private cloud subnets) in an endpoint group to accept
7051	// client traffic on.
7052	DestinationDescriptions []*CustomRoutingDestinationDescription `type:"list"`
7053
7054	// For a custom routing accelerator, describes the endpoints (virtual private
7055	// cloud subnets) in an endpoint group to accept client traffic on.
7056	EndpointDescriptions []*CustomRoutingEndpointDescription `type:"list"`
7057
7058	// The Amazon Resource Name (ARN) of the endpoint group.
7059	EndpointGroupArn *string `type:"string"`
7060
7061	// The AWS Region where the endpoint group is located.
7062	EndpointGroupRegion *string `type:"string"`
7063}
7064
7065// String returns the string representation
7066func (s CustomRoutingEndpointGroup) String() string {
7067	return awsutil.Prettify(s)
7068}
7069
7070// GoString returns the string representation
7071func (s CustomRoutingEndpointGroup) GoString() string {
7072	return s.String()
7073}
7074
7075// SetDestinationDescriptions sets the DestinationDescriptions field's value.
7076func (s *CustomRoutingEndpointGroup) SetDestinationDescriptions(v []*CustomRoutingDestinationDescription) *CustomRoutingEndpointGroup {
7077	s.DestinationDescriptions = v
7078	return s
7079}
7080
7081// SetEndpointDescriptions sets the EndpointDescriptions field's value.
7082func (s *CustomRoutingEndpointGroup) SetEndpointDescriptions(v []*CustomRoutingEndpointDescription) *CustomRoutingEndpointGroup {
7083	s.EndpointDescriptions = v
7084	return s
7085}
7086
7087// SetEndpointGroupArn sets the EndpointGroupArn field's value.
7088func (s *CustomRoutingEndpointGroup) SetEndpointGroupArn(v string) *CustomRoutingEndpointGroup {
7089	s.EndpointGroupArn = &v
7090	return s
7091}
7092
7093// SetEndpointGroupRegion sets the EndpointGroupRegion field's value.
7094func (s *CustomRoutingEndpointGroup) SetEndpointGroupRegion(v string) *CustomRoutingEndpointGroup {
7095	s.EndpointGroupRegion = &v
7096	return s
7097}
7098
7099// A complex type for a listener for a custom routing accelerator.
7100type CustomRoutingListener struct {
7101	_ struct{} `type:"structure"`
7102
7103	// The Amazon Resource Name (ARN) of the listener.
7104	ListenerArn *string `type:"string"`
7105
7106	// The port range to support for connections from clients to your accelerator.
7107	//
7108	// Separately, you set port ranges for endpoints. For more information, see
7109	// About endpoints for custom routing accelerators (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html).
7110	PortRanges []*PortRange `min:"1" type:"list"`
7111}
7112
7113// String returns the string representation
7114func (s CustomRoutingListener) String() string {
7115	return awsutil.Prettify(s)
7116}
7117
7118// GoString returns the string representation
7119func (s CustomRoutingListener) GoString() string {
7120	return s.String()
7121}
7122
7123// SetListenerArn sets the ListenerArn field's value.
7124func (s *CustomRoutingListener) SetListenerArn(v string) *CustomRoutingListener {
7125	s.ListenerArn = &v
7126	return s
7127}
7128
7129// SetPortRanges sets the PortRanges field's value.
7130func (s *CustomRoutingListener) SetPortRanges(v []*PortRange) *CustomRoutingListener {
7131	s.PortRanges = v
7132	return s
7133}
7134
7135type DeleteAcceleratorInput struct {
7136	_ struct{} `type:"structure"`
7137
7138	// The Amazon Resource Name (ARN) of an accelerator.
7139	//
7140	// AcceleratorArn is a required field
7141	AcceleratorArn *string `type:"string" required:"true"`
7142}
7143
7144// String returns the string representation
7145func (s DeleteAcceleratorInput) String() string {
7146	return awsutil.Prettify(s)
7147}
7148
7149// GoString returns the string representation
7150func (s DeleteAcceleratorInput) GoString() string {
7151	return s.String()
7152}
7153
7154// Validate inspects the fields of the type to determine if they are valid.
7155func (s *DeleteAcceleratorInput) Validate() error {
7156	invalidParams := request.ErrInvalidParams{Context: "DeleteAcceleratorInput"}
7157	if s.AcceleratorArn == nil {
7158		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
7159	}
7160
7161	if invalidParams.Len() > 0 {
7162		return invalidParams
7163	}
7164	return nil
7165}
7166
7167// SetAcceleratorArn sets the AcceleratorArn field's value.
7168func (s *DeleteAcceleratorInput) SetAcceleratorArn(v string) *DeleteAcceleratorInput {
7169	s.AcceleratorArn = &v
7170	return s
7171}
7172
7173type DeleteAcceleratorOutput struct {
7174	_ struct{} `type:"structure"`
7175}
7176
7177// String returns the string representation
7178func (s DeleteAcceleratorOutput) String() string {
7179	return awsutil.Prettify(s)
7180}
7181
7182// GoString returns the string representation
7183func (s DeleteAcceleratorOutput) GoString() string {
7184	return s.String()
7185}
7186
7187type DeleteCustomRoutingAcceleratorInput struct {
7188	_ struct{} `type:"structure"`
7189
7190	// The Amazon Resource Name (ARN) of the custom routing accelerator to delete.
7191	//
7192	// AcceleratorArn is a required field
7193	AcceleratorArn *string `type:"string" required:"true"`
7194}
7195
7196// String returns the string representation
7197func (s DeleteCustomRoutingAcceleratorInput) String() string {
7198	return awsutil.Prettify(s)
7199}
7200
7201// GoString returns the string representation
7202func (s DeleteCustomRoutingAcceleratorInput) GoString() string {
7203	return s.String()
7204}
7205
7206// Validate inspects the fields of the type to determine if they are valid.
7207func (s *DeleteCustomRoutingAcceleratorInput) Validate() error {
7208	invalidParams := request.ErrInvalidParams{Context: "DeleteCustomRoutingAcceleratorInput"}
7209	if s.AcceleratorArn == nil {
7210		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
7211	}
7212
7213	if invalidParams.Len() > 0 {
7214		return invalidParams
7215	}
7216	return nil
7217}
7218
7219// SetAcceleratorArn sets the AcceleratorArn field's value.
7220func (s *DeleteCustomRoutingAcceleratorInput) SetAcceleratorArn(v string) *DeleteCustomRoutingAcceleratorInput {
7221	s.AcceleratorArn = &v
7222	return s
7223}
7224
7225type DeleteCustomRoutingAcceleratorOutput struct {
7226	_ struct{} `type:"structure"`
7227}
7228
7229// String returns the string representation
7230func (s DeleteCustomRoutingAcceleratorOutput) String() string {
7231	return awsutil.Prettify(s)
7232}
7233
7234// GoString returns the string representation
7235func (s DeleteCustomRoutingAcceleratorOutput) GoString() string {
7236	return s.String()
7237}
7238
7239type DeleteCustomRoutingEndpointGroupInput struct {
7240	_ struct{} `type:"structure"`
7241
7242	// The Amazon Resource Name (ARN) of the endpoint group to delete.
7243	//
7244	// EndpointGroupArn is a required field
7245	EndpointGroupArn *string `type:"string" required:"true"`
7246}
7247
7248// String returns the string representation
7249func (s DeleteCustomRoutingEndpointGroupInput) String() string {
7250	return awsutil.Prettify(s)
7251}
7252
7253// GoString returns the string representation
7254func (s DeleteCustomRoutingEndpointGroupInput) GoString() string {
7255	return s.String()
7256}
7257
7258// Validate inspects the fields of the type to determine if they are valid.
7259func (s *DeleteCustomRoutingEndpointGroupInput) Validate() error {
7260	invalidParams := request.ErrInvalidParams{Context: "DeleteCustomRoutingEndpointGroupInput"}
7261	if s.EndpointGroupArn == nil {
7262		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
7263	}
7264
7265	if invalidParams.Len() > 0 {
7266		return invalidParams
7267	}
7268	return nil
7269}
7270
7271// SetEndpointGroupArn sets the EndpointGroupArn field's value.
7272func (s *DeleteCustomRoutingEndpointGroupInput) SetEndpointGroupArn(v string) *DeleteCustomRoutingEndpointGroupInput {
7273	s.EndpointGroupArn = &v
7274	return s
7275}
7276
7277type DeleteCustomRoutingEndpointGroupOutput struct {
7278	_ struct{} `type:"structure"`
7279}
7280
7281// String returns the string representation
7282func (s DeleteCustomRoutingEndpointGroupOutput) String() string {
7283	return awsutil.Prettify(s)
7284}
7285
7286// GoString returns the string representation
7287func (s DeleteCustomRoutingEndpointGroupOutput) GoString() string {
7288	return s.String()
7289}
7290
7291type DeleteCustomRoutingListenerInput struct {
7292	_ struct{} `type:"structure"`
7293
7294	// The Amazon Resource Name (ARN) of the listener to delete.
7295	//
7296	// ListenerArn is a required field
7297	ListenerArn *string `type:"string" required:"true"`
7298}
7299
7300// String returns the string representation
7301func (s DeleteCustomRoutingListenerInput) String() string {
7302	return awsutil.Prettify(s)
7303}
7304
7305// GoString returns the string representation
7306func (s DeleteCustomRoutingListenerInput) GoString() string {
7307	return s.String()
7308}
7309
7310// Validate inspects the fields of the type to determine if they are valid.
7311func (s *DeleteCustomRoutingListenerInput) Validate() error {
7312	invalidParams := request.ErrInvalidParams{Context: "DeleteCustomRoutingListenerInput"}
7313	if s.ListenerArn == nil {
7314		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
7315	}
7316
7317	if invalidParams.Len() > 0 {
7318		return invalidParams
7319	}
7320	return nil
7321}
7322
7323// SetListenerArn sets the ListenerArn field's value.
7324func (s *DeleteCustomRoutingListenerInput) SetListenerArn(v string) *DeleteCustomRoutingListenerInput {
7325	s.ListenerArn = &v
7326	return s
7327}
7328
7329type DeleteCustomRoutingListenerOutput struct {
7330	_ struct{} `type:"structure"`
7331}
7332
7333// String returns the string representation
7334func (s DeleteCustomRoutingListenerOutput) String() string {
7335	return awsutil.Prettify(s)
7336}
7337
7338// GoString returns the string representation
7339func (s DeleteCustomRoutingListenerOutput) GoString() string {
7340	return s.String()
7341}
7342
7343type DeleteEndpointGroupInput struct {
7344	_ struct{} `type:"structure"`
7345
7346	// The Amazon Resource Name (ARN) of the endpoint group to delete.
7347	//
7348	// EndpointGroupArn is a required field
7349	EndpointGroupArn *string `type:"string" required:"true"`
7350}
7351
7352// String returns the string representation
7353func (s DeleteEndpointGroupInput) String() string {
7354	return awsutil.Prettify(s)
7355}
7356
7357// GoString returns the string representation
7358func (s DeleteEndpointGroupInput) GoString() string {
7359	return s.String()
7360}
7361
7362// Validate inspects the fields of the type to determine if they are valid.
7363func (s *DeleteEndpointGroupInput) Validate() error {
7364	invalidParams := request.ErrInvalidParams{Context: "DeleteEndpointGroupInput"}
7365	if s.EndpointGroupArn == nil {
7366		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
7367	}
7368
7369	if invalidParams.Len() > 0 {
7370		return invalidParams
7371	}
7372	return nil
7373}
7374
7375// SetEndpointGroupArn sets the EndpointGroupArn field's value.
7376func (s *DeleteEndpointGroupInput) SetEndpointGroupArn(v string) *DeleteEndpointGroupInput {
7377	s.EndpointGroupArn = &v
7378	return s
7379}
7380
7381type DeleteEndpointGroupOutput struct {
7382	_ struct{} `type:"structure"`
7383}
7384
7385// String returns the string representation
7386func (s DeleteEndpointGroupOutput) String() string {
7387	return awsutil.Prettify(s)
7388}
7389
7390// GoString returns the string representation
7391func (s DeleteEndpointGroupOutput) GoString() string {
7392	return s.String()
7393}
7394
7395type DeleteListenerInput struct {
7396	_ struct{} `type:"structure"`
7397
7398	// The Amazon Resource Name (ARN) of the listener.
7399	//
7400	// ListenerArn is a required field
7401	ListenerArn *string `type:"string" required:"true"`
7402}
7403
7404// String returns the string representation
7405func (s DeleteListenerInput) String() string {
7406	return awsutil.Prettify(s)
7407}
7408
7409// GoString returns the string representation
7410func (s DeleteListenerInput) GoString() string {
7411	return s.String()
7412}
7413
7414// Validate inspects the fields of the type to determine if they are valid.
7415func (s *DeleteListenerInput) Validate() error {
7416	invalidParams := request.ErrInvalidParams{Context: "DeleteListenerInput"}
7417	if s.ListenerArn == nil {
7418		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
7419	}
7420
7421	if invalidParams.Len() > 0 {
7422		return invalidParams
7423	}
7424	return nil
7425}
7426
7427// SetListenerArn sets the ListenerArn field's value.
7428func (s *DeleteListenerInput) SetListenerArn(v string) *DeleteListenerInput {
7429	s.ListenerArn = &v
7430	return s
7431}
7432
7433type DeleteListenerOutput struct {
7434	_ struct{} `type:"structure"`
7435}
7436
7437// String returns the string representation
7438func (s DeleteListenerOutput) String() string {
7439	return awsutil.Prettify(s)
7440}
7441
7442// GoString returns the string representation
7443func (s DeleteListenerOutput) GoString() string {
7444	return s.String()
7445}
7446
7447type DenyCustomRoutingTrafficInput struct {
7448	_ struct{} `type:"structure"`
7449
7450	// Indicates whether all destination IP addresses and ports for a specified
7451	// VPC subnet endpoint cannot receive traffic from a custom routing accelerator.
7452	// The value is TRUE or FALSE.
7453	//
7454	// When set to TRUE, no destinations in the custom routing VPC subnet can receive
7455	// traffic. Note that you cannot specify destination IP addresses and ports
7456	// when the value is set to TRUE.
7457	//
7458	// When set to FALSE (or not specified), you must specify a list of destination
7459	// IP addresses that cannot receive traffic. A list of ports is optional. If
7460	// you don't specify a list of ports, the ports that can accept traffic is the
7461	// same as the ports configured for the endpoint group.
7462	//
7463	// The default value is FALSE.
7464	DenyAllTrafficToEndpoint *bool `type:"boolean"`
7465
7466	// A list of specific Amazon EC2 instance IP addresses (destination addresses)
7467	// in a subnet that you want to prevent from receiving traffic. The IP addresses
7468	// must be a subset of the IP addresses allowed for the VPC subnet associated
7469	// with the endpoint group.
7470	DestinationAddresses []*string `type:"list"`
7471
7472	// A list of specific Amazon EC2 instance ports (destination ports) in a subnet
7473	// endpoint that you want to prevent from receiving traffic.
7474	DestinationPorts []*int64 `type:"list"`
7475
7476	// The Amazon Resource Name (ARN) of the endpoint group.
7477	//
7478	// EndpointGroupArn is a required field
7479	EndpointGroupArn *string `type:"string" required:"true"`
7480
7481	// An ID for the endpoint. For custom routing accelerators, this is the virtual
7482	// private cloud (VPC) subnet ID.
7483	//
7484	// EndpointId is a required field
7485	EndpointId *string `type:"string" required:"true"`
7486}
7487
7488// String returns the string representation
7489func (s DenyCustomRoutingTrafficInput) String() string {
7490	return awsutil.Prettify(s)
7491}
7492
7493// GoString returns the string representation
7494func (s DenyCustomRoutingTrafficInput) GoString() string {
7495	return s.String()
7496}
7497
7498// Validate inspects the fields of the type to determine if they are valid.
7499func (s *DenyCustomRoutingTrafficInput) Validate() error {
7500	invalidParams := request.ErrInvalidParams{Context: "DenyCustomRoutingTrafficInput"}
7501	if s.EndpointGroupArn == nil {
7502		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
7503	}
7504	if s.EndpointId == nil {
7505		invalidParams.Add(request.NewErrParamRequired("EndpointId"))
7506	}
7507
7508	if invalidParams.Len() > 0 {
7509		return invalidParams
7510	}
7511	return nil
7512}
7513
7514// SetDenyAllTrafficToEndpoint sets the DenyAllTrafficToEndpoint field's value.
7515func (s *DenyCustomRoutingTrafficInput) SetDenyAllTrafficToEndpoint(v bool) *DenyCustomRoutingTrafficInput {
7516	s.DenyAllTrafficToEndpoint = &v
7517	return s
7518}
7519
7520// SetDestinationAddresses sets the DestinationAddresses field's value.
7521func (s *DenyCustomRoutingTrafficInput) SetDestinationAddresses(v []*string) *DenyCustomRoutingTrafficInput {
7522	s.DestinationAddresses = v
7523	return s
7524}
7525
7526// SetDestinationPorts sets the DestinationPorts field's value.
7527func (s *DenyCustomRoutingTrafficInput) SetDestinationPorts(v []*int64) *DenyCustomRoutingTrafficInput {
7528	s.DestinationPorts = v
7529	return s
7530}
7531
7532// SetEndpointGroupArn sets the EndpointGroupArn field's value.
7533func (s *DenyCustomRoutingTrafficInput) SetEndpointGroupArn(v string) *DenyCustomRoutingTrafficInput {
7534	s.EndpointGroupArn = &v
7535	return s
7536}
7537
7538// SetEndpointId sets the EndpointId field's value.
7539func (s *DenyCustomRoutingTrafficInput) SetEndpointId(v string) *DenyCustomRoutingTrafficInput {
7540	s.EndpointId = &v
7541	return s
7542}
7543
7544type DenyCustomRoutingTrafficOutput struct {
7545	_ struct{} `type:"structure"`
7546}
7547
7548// String returns the string representation
7549func (s DenyCustomRoutingTrafficOutput) String() string {
7550	return awsutil.Prettify(s)
7551}
7552
7553// GoString returns the string representation
7554func (s DenyCustomRoutingTrafficOutput) GoString() string {
7555	return s.String()
7556}
7557
7558type DeprovisionByoipCidrInput struct {
7559	_ struct{} `type:"structure"`
7560
7561	// The address range, in CIDR notation. The prefix must be the same prefix that
7562	// you specified when you provisioned the address range.
7563	//
7564	// Cidr is a required field
7565	Cidr *string `type:"string" required:"true"`
7566}
7567
7568// String returns the string representation
7569func (s DeprovisionByoipCidrInput) String() string {
7570	return awsutil.Prettify(s)
7571}
7572
7573// GoString returns the string representation
7574func (s DeprovisionByoipCidrInput) GoString() string {
7575	return s.String()
7576}
7577
7578// Validate inspects the fields of the type to determine if they are valid.
7579func (s *DeprovisionByoipCidrInput) Validate() error {
7580	invalidParams := request.ErrInvalidParams{Context: "DeprovisionByoipCidrInput"}
7581	if s.Cidr == nil {
7582		invalidParams.Add(request.NewErrParamRequired("Cidr"))
7583	}
7584
7585	if invalidParams.Len() > 0 {
7586		return invalidParams
7587	}
7588	return nil
7589}
7590
7591// SetCidr sets the Cidr field's value.
7592func (s *DeprovisionByoipCidrInput) SetCidr(v string) *DeprovisionByoipCidrInput {
7593	s.Cidr = &v
7594	return s
7595}
7596
7597type DeprovisionByoipCidrOutput struct {
7598	_ struct{} `type:"structure"`
7599
7600	// Information about the address range.
7601	ByoipCidr *ByoipCidr `type:"structure"`
7602}
7603
7604// String returns the string representation
7605func (s DeprovisionByoipCidrOutput) String() string {
7606	return awsutil.Prettify(s)
7607}
7608
7609// GoString returns the string representation
7610func (s DeprovisionByoipCidrOutput) GoString() string {
7611	return s.String()
7612}
7613
7614// SetByoipCidr sets the ByoipCidr field's value.
7615func (s *DeprovisionByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *DeprovisionByoipCidrOutput {
7616	s.ByoipCidr = v
7617	return s
7618}
7619
7620type DescribeAcceleratorAttributesInput struct {
7621	_ struct{} `type:"structure"`
7622
7623	// The Amazon Resource Name (ARN) of the accelerator with the attributes that
7624	// you want to describe.
7625	//
7626	// AcceleratorArn is a required field
7627	AcceleratorArn *string `type:"string" required:"true"`
7628}
7629
7630// String returns the string representation
7631func (s DescribeAcceleratorAttributesInput) String() string {
7632	return awsutil.Prettify(s)
7633}
7634
7635// GoString returns the string representation
7636func (s DescribeAcceleratorAttributesInput) GoString() string {
7637	return s.String()
7638}
7639
7640// Validate inspects the fields of the type to determine if they are valid.
7641func (s *DescribeAcceleratorAttributesInput) Validate() error {
7642	invalidParams := request.ErrInvalidParams{Context: "DescribeAcceleratorAttributesInput"}
7643	if s.AcceleratorArn == nil {
7644		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
7645	}
7646
7647	if invalidParams.Len() > 0 {
7648		return invalidParams
7649	}
7650	return nil
7651}
7652
7653// SetAcceleratorArn sets the AcceleratorArn field's value.
7654func (s *DescribeAcceleratorAttributesInput) SetAcceleratorArn(v string) *DescribeAcceleratorAttributesInput {
7655	s.AcceleratorArn = &v
7656	return s
7657}
7658
7659type DescribeAcceleratorAttributesOutput struct {
7660	_ struct{} `type:"structure"`
7661
7662	// The attributes of the accelerator.
7663	AcceleratorAttributes *AcceleratorAttributes `type:"structure"`
7664}
7665
7666// String returns the string representation
7667func (s DescribeAcceleratorAttributesOutput) String() string {
7668	return awsutil.Prettify(s)
7669}
7670
7671// GoString returns the string representation
7672func (s DescribeAcceleratorAttributesOutput) GoString() string {
7673	return s.String()
7674}
7675
7676// SetAcceleratorAttributes sets the AcceleratorAttributes field's value.
7677func (s *DescribeAcceleratorAttributesOutput) SetAcceleratorAttributes(v *AcceleratorAttributes) *DescribeAcceleratorAttributesOutput {
7678	s.AcceleratorAttributes = v
7679	return s
7680}
7681
7682type DescribeAcceleratorInput struct {
7683	_ struct{} `type:"structure"`
7684
7685	// The Amazon Resource Name (ARN) of the accelerator to describe.
7686	//
7687	// AcceleratorArn is a required field
7688	AcceleratorArn *string `type:"string" required:"true"`
7689}
7690
7691// String returns the string representation
7692func (s DescribeAcceleratorInput) String() string {
7693	return awsutil.Prettify(s)
7694}
7695
7696// GoString returns the string representation
7697func (s DescribeAcceleratorInput) GoString() string {
7698	return s.String()
7699}
7700
7701// Validate inspects the fields of the type to determine if they are valid.
7702func (s *DescribeAcceleratorInput) Validate() error {
7703	invalidParams := request.ErrInvalidParams{Context: "DescribeAcceleratorInput"}
7704	if s.AcceleratorArn == nil {
7705		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
7706	}
7707
7708	if invalidParams.Len() > 0 {
7709		return invalidParams
7710	}
7711	return nil
7712}
7713
7714// SetAcceleratorArn sets the AcceleratorArn field's value.
7715func (s *DescribeAcceleratorInput) SetAcceleratorArn(v string) *DescribeAcceleratorInput {
7716	s.AcceleratorArn = &v
7717	return s
7718}
7719
7720type DescribeAcceleratorOutput struct {
7721	_ struct{} `type:"structure"`
7722
7723	// The description of the accelerator.
7724	Accelerator *Accelerator `type:"structure"`
7725}
7726
7727// String returns the string representation
7728func (s DescribeAcceleratorOutput) String() string {
7729	return awsutil.Prettify(s)
7730}
7731
7732// GoString returns the string representation
7733func (s DescribeAcceleratorOutput) GoString() string {
7734	return s.String()
7735}
7736
7737// SetAccelerator sets the Accelerator field's value.
7738func (s *DescribeAcceleratorOutput) SetAccelerator(v *Accelerator) *DescribeAcceleratorOutput {
7739	s.Accelerator = v
7740	return s
7741}
7742
7743type DescribeCustomRoutingAcceleratorAttributesInput struct {
7744	_ struct{} `type:"structure"`
7745
7746	// The Amazon Resource Name (ARN) of the custom routing accelerator to describe
7747	// the attributes for.
7748	//
7749	// AcceleratorArn is a required field
7750	AcceleratorArn *string `type:"string" required:"true"`
7751}
7752
7753// String returns the string representation
7754func (s DescribeCustomRoutingAcceleratorAttributesInput) String() string {
7755	return awsutil.Prettify(s)
7756}
7757
7758// GoString returns the string representation
7759func (s DescribeCustomRoutingAcceleratorAttributesInput) GoString() string {
7760	return s.String()
7761}
7762
7763// Validate inspects the fields of the type to determine if they are valid.
7764func (s *DescribeCustomRoutingAcceleratorAttributesInput) Validate() error {
7765	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomRoutingAcceleratorAttributesInput"}
7766	if s.AcceleratorArn == nil {
7767		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
7768	}
7769
7770	if invalidParams.Len() > 0 {
7771		return invalidParams
7772	}
7773	return nil
7774}
7775
7776// SetAcceleratorArn sets the AcceleratorArn field's value.
7777func (s *DescribeCustomRoutingAcceleratorAttributesInput) SetAcceleratorArn(v string) *DescribeCustomRoutingAcceleratorAttributesInput {
7778	s.AcceleratorArn = &v
7779	return s
7780}
7781
7782type DescribeCustomRoutingAcceleratorAttributesOutput struct {
7783	_ struct{} `type:"structure"`
7784
7785	// The attributes of the custom routing accelerator.
7786	AcceleratorAttributes *CustomRoutingAcceleratorAttributes `type:"structure"`
7787}
7788
7789// String returns the string representation
7790func (s DescribeCustomRoutingAcceleratorAttributesOutput) String() string {
7791	return awsutil.Prettify(s)
7792}
7793
7794// GoString returns the string representation
7795func (s DescribeCustomRoutingAcceleratorAttributesOutput) GoString() string {
7796	return s.String()
7797}
7798
7799// SetAcceleratorAttributes sets the AcceleratorAttributes field's value.
7800func (s *DescribeCustomRoutingAcceleratorAttributesOutput) SetAcceleratorAttributes(v *CustomRoutingAcceleratorAttributes) *DescribeCustomRoutingAcceleratorAttributesOutput {
7801	s.AcceleratorAttributes = v
7802	return s
7803}
7804
7805type DescribeCustomRoutingAcceleratorInput struct {
7806	_ struct{} `type:"structure"`
7807
7808	// The Amazon Resource Name (ARN) of the accelerator to describe.
7809	//
7810	// AcceleratorArn is a required field
7811	AcceleratorArn *string `type:"string" required:"true"`
7812}
7813
7814// String returns the string representation
7815func (s DescribeCustomRoutingAcceleratorInput) String() string {
7816	return awsutil.Prettify(s)
7817}
7818
7819// GoString returns the string representation
7820func (s DescribeCustomRoutingAcceleratorInput) GoString() string {
7821	return s.String()
7822}
7823
7824// Validate inspects the fields of the type to determine if they are valid.
7825func (s *DescribeCustomRoutingAcceleratorInput) Validate() error {
7826	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomRoutingAcceleratorInput"}
7827	if s.AcceleratorArn == nil {
7828		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
7829	}
7830
7831	if invalidParams.Len() > 0 {
7832		return invalidParams
7833	}
7834	return nil
7835}
7836
7837// SetAcceleratorArn sets the AcceleratorArn field's value.
7838func (s *DescribeCustomRoutingAcceleratorInput) SetAcceleratorArn(v string) *DescribeCustomRoutingAcceleratorInput {
7839	s.AcceleratorArn = &v
7840	return s
7841}
7842
7843type DescribeCustomRoutingAcceleratorOutput struct {
7844	_ struct{} `type:"structure"`
7845
7846	// The description of the custom routing accelerator.
7847	Accelerator *CustomRoutingAccelerator `type:"structure"`
7848}
7849
7850// String returns the string representation
7851func (s DescribeCustomRoutingAcceleratorOutput) String() string {
7852	return awsutil.Prettify(s)
7853}
7854
7855// GoString returns the string representation
7856func (s DescribeCustomRoutingAcceleratorOutput) GoString() string {
7857	return s.String()
7858}
7859
7860// SetAccelerator sets the Accelerator field's value.
7861func (s *DescribeCustomRoutingAcceleratorOutput) SetAccelerator(v *CustomRoutingAccelerator) *DescribeCustomRoutingAcceleratorOutput {
7862	s.Accelerator = v
7863	return s
7864}
7865
7866type DescribeCustomRoutingEndpointGroupInput struct {
7867	_ struct{} `type:"structure"`
7868
7869	// The Amazon Resource Name (ARN) of the endpoint group to describe.
7870	//
7871	// EndpointGroupArn is a required field
7872	EndpointGroupArn *string `type:"string" required:"true"`
7873}
7874
7875// String returns the string representation
7876func (s DescribeCustomRoutingEndpointGroupInput) String() string {
7877	return awsutil.Prettify(s)
7878}
7879
7880// GoString returns the string representation
7881func (s DescribeCustomRoutingEndpointGroupInput) GoString() string {
7882	return s.String()
7883}
7884
7885// Validate inspects the fields of the type to determine if they are valid.
7886func (s *DescribeCustomRoutingEndpointGroupInput) Validate() error {
7887	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomRoutingEndpointGroupInput"}
7888	if s.EndpointGroupArn == nil {
7889		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
7890	}
7891
7892	if invalidParams.Len() > 0 {
7893		return invalidParams
7894	}
7895	return nil
7896}
7897
7898// SetEndpointGroupArn sets the EndpointGroupArn field's value.
7899func (s *DescribeCustomRoutingEndpointGroupInput) SetEndpointGroupArn(v string) *DescribeCustomRoutingEndpointGroupInput {
7900	s.EndpointGroupArn = &v
7901	return s
7902}
7903
7904type DescribeCustomRoutingEndpointGroupOutput struct {
7905	_ struct{} `type:"structure"`
7906
7907	// The description of an endpoint group for a custom routing accelerator.
7908	EndpointGroup *CustomRoutingEndpointGroup `type:"structure"`
7909}
7910
7911// String returns the string representation
7912func (s DescribeCustomRoutingEndpointGroupOutput) String() string {
7913	return awsutil.Prettify(s)
7914}
7915
7916// GoString returns the string representation
7917func (s DescribeCustomRoutingEndpointGroupOutput) GoString() string {
7918	return s.String()
7919}
7920
7921// SetEndpointGroup sets the EndpointGroup field's value.
7922func (s *DescribeCustomRoutingEndpointGroupOutput) SetEndpointGroup(v *CustomRoutingEndpointGroup) *DescribeCustomRoutingEndpointGroupOutput {
7923	s.EndpointGroup = v
7924	return s
7925}
7926
7927type DescribeCustomRoutingListenerInput struct {
7928	_ struct{} `type:"structure"`
7929
7930	// The Amazon Resource Name (ARN) of the listener to describe.
7931	//
7932	// ListenerArn is a required field
7933	ListenerArn *string `type:"string" required:"true"`
7934}
7935
7936// String returns the string representation
7937func (s DescribeCustomRoutingListenerInput) String() string {
7938	return awsutil.Prettify(s)
7939}
7940
7941// GoString returns the string representation
7942func (s DescribeCustomRoutingListenerInput) GoString() string {
7943	return s.String()
7944}
7945
7946// Validate inspects the fields of the type to determine if they are valid.
7947func (s *DescribeCustomRoutingListenerInput) Validate() error {
7948	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomRoutingListenerInput"}
7949	if s.ListenerArn == nil {
7950		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
7951	}
7952
7953	if invalidParams.Len() > 0 {
7954		return invalidParams
7955	}
7956	return nil
7957}
7958
7959// SetListenerArn sets the ListenerArn field's value.
7960func (s *DescribeCustomRoutingListenerInput) SetListenerArn(v string) *DescribeCustomRoutingListenerInput {
7961	s.ListenerArn = &v
7962	return s
7963}
7964
7965type DescribeCustomRoutingListenerOutput struct {
7966	_ struct{} `type:"structure"`
7967
7968	// The description of a listener for a custom routing accelerator.
7969	Listener *CustomRoutingListener `type:"structure"`
7970}
7971
7972// String returns the string representation
7973func (s DescribeCustomRoutingListenerOutput) String() string {
7974	return awsutil.Prettify(s)
7975}
7976
7977// GoString returns the string representation
7978func (s DescribeCustomRoutingListenerOutput) GoString() string {
7979	return s.String()
7980}
7981
7982// SetListener sets the Listener field's value.
7983func (s *DescribeCustomRoutingListenerOutput) SetListener(v *CustomRoutingListener) *DescribeCustomRoutingListenerOutput {
7984	s.Listener = v
7985	return s
7986}
7987
7988type DescribeEndpointGroupInput struct {
7989	_ struct{} `type:"structure"`
7990
7991	// The Amazon Resource Name (ARN) of the endpoint group to describe.
7992	//
7993	// EndpointGroupArn is a required field
7994	EndpointGroupArn *string `type:"string" required:"true"`
7995}
7996
7997// String returns the string representation
7998func (s DescribeEndpointGroupInput) String() string {
7999	return awsutil.Prettify(s)
8000}
8001
8002// GoString returns the string representation
8003func (s DescribeEndpointGroupInput) GoString() string {
8004	return s.String()
8005}
8006
8007// Validate inspects the fields of the type to determine if they are valid.
8008func (s *DescribeEndpointGroupInput) Validate() error {
8009	invalidParams := request.ErrInvalidParams{Context: "DescribeEndpointGroupInput"}
8010	if s.EndpointGroupArn == nil {
8011		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
8012	}
8013
8014	if invalidParams.Len() > 0 {
8015		return invalidParams
8016	}
8017	return nil
8018}
8019
8020// SetEndpointGroupArn sets the EndpointGroupArn field's value.
8021func (s *DescribeEndpointGroupInput) SetEndpointGroupArn(v string) *DescribeEndpointGroupInput {
8022	s.EndpointGroupArn = &v
8023	return s
8024}
8025
8026type DescribeEndpointGroupOutput struct {
8027	_ struct{} `type:"structure"`
8028
8029	// The description of an endpoint group.
8030	EndpointGroup *EndpointGroup `type:"structure"`
8031}
8032
8033// String returns the string representation
8034func (s DescribeEndpointGroupOutput) String() string {
8035	return awsutil.Prettify(s)
8036}
8037
8038// GoString returns the string representation
8039func (s DescribeEndpointGroupOutput) GoString() string {
8040	return s.String()
8041}
8042
8043// SetEndpointGroup sets the EndpointGroup field's value.
8044func (s *DescribeEndpointGroupOutput) SetEndpointGroup(v *EndpointGroup) *DescribeEndpointGroupOutput {
8045	s.EndpointGroup = v
8046	return s
8047}
8048
8049type DescribeListenerInput struct {
8050	_ struct{} `type:"structure"`
8051
8052	// The Amazon Resource Name (ARN) of the listener to describe.
8053	//
8054	// ListenerArn is a required field
8055	ListenerArn *string `type:"string" required:"true"`
8056}
8057
8058// String returns the string representation
8059func (s DescribeListenerInput) String() string {
8060	return awsutil.Prettify(s)
8061}
8062
8063// GoString returns the string representation
8064func (s DescribeListenerInput) GoString() string {
8065	return s.String()
8066}
8067
8068// Validate inspects the fields of the type to determine if they are valid.
8069func (s *DescribeListenerInput) Validate() error {
8070	invalidParams := request.ErrInvalidParams{Context: "DescribeListenerInput"}
8071	if s.ListenerArn == nil {
8072		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
8073	}
8074
8075	if invalidParams.Len() > 0 {
8076		return invalidParams
8077	}
8078	return nil
8079}
8080
8081// SetListenerArn sets the ListenerArn field's value.
8082func (s *DescribeListenerInput) SetListenerArn(v string) *DescribeListenerInput {
8083	s.ListenerArn = &v
8084	return s
8085}
8086
8087type DescribeListenerOutput struct {
8088	_ struct{} `type:"structure"`
8089
8090	// The description of a listener.
8091	Listener *Listener `type:"structure"`
8092}
8093
8094// String returns the string representation
8095func (s DescribeListenerOutput) String() string {
8096	return awsutil.Prettify(s)
8097}
8098
8099// GoString returns the string representation
8100func (s DescribeListenerOutput) GoString() string {
8101	return s.String()
8102}
8103
8104// SetListener sets the Listener field's value.
8105func (s *DescribeListenerOutput) SetListener(v *Listener) *DescribeListenerOutput {
8106	s.Listener = v
8107	return s
8108}
8109
8110// The port mappings for a specified endpoint IP address (destination).
8111type DestinationPortMapping struct {
8112	_ struct{} `type:"structure"`
8113
8114	// The Amazon Resource Name (ARN) of the custom routing accelerator that you
8115	// have port mappings for.
8116	AcceleratorArn *string `type:"string"`
8117
8118	// The IP address/port combinations (sockets) that map to a given destination
8119	// socket address.
8120	AcceleratorSocketAddresses []*SocketAddress `type:"list"`
8121
8122	// The endpoint IP address/port combination for traffic received on the accelerator
8123	// socket address.
8124	DestinationSocketAddress *SocketAddress `type:"structure"`
8125
8126	// Indicates whether or not a port mapping destination can receive traffic.
8127	// The value is either ALLOW, if traffic is allowed to the destination, or DENY,
8128	// if traffic is not allowed to the destination.
8129	DestinationTrafficState *string `type:"string" enum:"CustomRoutingDestinationTrafficState"`
8130
8131	// The Amazon Resource Name (ARN) of the endpoint group.
8132	EndpointGroupArn *string `type:"string"`
8133
8134	// The AWS Region for the endpoint group.
8135	EndpointGroupRegion *string `type:"string"`
8136
8137	// The ID for the virtual private cloud (VPC) subnet.
8138	EndpointId *string `type:"string"`
8139
8140	// The IP address type, which must be IPv4.
8141	IpAddressType *string `type:"string" enum:"IpAddressType"`
8142}
8143
8144// String returns the string representation
8145func (s DestinationPortMapping) String() string {
8146	return awsutil.Prettify(s)
8147}
8148
8149// GoString returns the string representation
8150func (s DestinationPortMapping) GoString() string {
8151	return s.String()
8152}
8153
8154// SetAcceleratorArn sets the AcceleratorArn field's value.
8155func (s *DestinationPortMapping) SetAcceleratorArn(v string) *DestinationPortMapping {
8156	s.AcceleratorArn = &v
8157	return s
8158}
8159
8160// SetAcceleratorSocketAddresses sets the AcceleratorSocketAddresses field's value.
8161func (s *DestinationPortMapping) SetAcceleratorSocketAddresses(v []*SocketAddress) *DestinationPortMapping {
8162	s.AcceleratorSocketAddresses = v
8163	return s
8164}
8165
8166// SetDestinationSocketAddress sets the DestinationSocketAddress field's value.
8167func (s *DestinationPortMapping) SetDestinationSocketAddress(v *SocketAddress) *DestinationPortMapping {
8168	s.DestinationSocketAddress = v
8169	return s
8170}
8171
8172// SetDestinationTrafficState sets the DestinationTrafficState field's value.
8173func (s *DestinationPortMapping) SetDestinationTrafficState(v string) *DestinationPortMapping {
8174	s.DestinationTrafficState = &v
8175	return s
8176}
8177
8178// SetEndpointGroupArn sets the EndpointGroupArn field's value.
8179func (s *DestinationPortMapping) SetEndpointGroupArn(v string) *DestinationPortMapping {
8180	s.EndpointGroupArn = &v
8181	return s
8182}
8183
8184// SetEndpointGroupRegion sets the EndpointGroupRegion field's value.
8185func (s *DestinationPortMapping) SetEndpointGroupRegion(v string) *DestinationPortMapping {
8186	s.EndpointGroupRegion = &v
8187	return s
8188}
8189
8190// SetEndpointId sets the EndpointId field's value.
8191func (s *DestinationPortMapping) SetEndpointId(v string) *DestinationPortMapping {
8192	s.EndpointId = &v
8193	return s
8194}
8195
8196// SetIpAddressType sets the IpAddressType field's value.
8197func (s *DestinationPortMapping) SetIpAddressType(v string) *DestinationPortMapping {
8198	s.IpAddressType = &v
8199	return s
8200}
8201
8202// The endpoint that you specified doesn't exist.
8203type EndpointAlreadyExistsException struct {
8204	_            struct{}                  `type:"structure"`
8205	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8206
8207	Message_ *string `locationName:"Message" type:"string"`
8208}
8209
8210// String returns the string representation
8211func (s EndpointAlreadyExistsException) String() string {
8212	return awsutil.Prettify(s)
8213}
8214
8215// GoString returns the string representation
8216func (s EndpointAlreadyExistsException) GoString() string {
8217	return s.String()
8218}
8219
8220func newErrorEndpointAlreadyExistsException(v protocol.ResponseMetadata) error {
8221	return &EndpointAlreadyExistsException{
8222		RespMetadata: v,
8223	}
8224}
8225
8226// Code returns the exception type name.
8227func (s *EndpointAlreadyExistsException) Code() string {
8228	return "EndpointAlreadyExistsException"
8229}
8230
8231// Message returns the exception's message.
8232func (s *EndpointAlreadyExistsException) Message() string {
8233	if s.Message_ != nil {
8234		return *s.Message_
8235	}
8236	return ""
8237}
8238
8239// OrigErr always returns nil, satisfies awserr.Error interface.
8240func (s *EndpointAlreadyExistsException) OrigErr() error {
8241	return nil
8242}
8243
8244func (s *EndpointAlreadyExistsException) Error() string {
8245	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8246}
8247
8248// Status code returns the HTTP status code for the request's response error.
8249func (s *EndpointAlreadyExistsException) StatusCode() int {
8250	return s.RespMetadata.StatusCode
8251}
8252
8253// RequestID returns the service's response RequestID for request.
8254func (s *EndpointAlreadyExistsException) RequestID() string {
8255	return s.RespMetadata.RequestID
8256}
8257
8258// A complex type for endpoints. A resource must be valid and active when you
8259// add it as an endpoint.
8260type EndpointConfiguration struct {
8261	_ struct{} `type:"structure"`
8262
8263	// Indicates whether client IP address preservation is enabled for an Application
8264	// Load Balancer endpoint. The value is true or false. The default value is
8265	// true for new accelerators.
8266	//
8267	// If the value is set to true, the client's IP address is preserved in the
8268	// X-Forwarded-For request header as traffic travels to applications on the
8269	// Application Load Balancer endpoint fronted by the accelerator.
8270	//
8271	// For more information, see Preserve Client IP Addresses in AWS Global Accelerator
8272	// (https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html)
8273	// in the AWS Global Accelerator Developer Guide.
8274	ClientIPPreservationEnabled *bool `type:"boolean"`
8275
8276	// An ID for the endpoint. If the endpoint is a Network Load Balancer or Application
8277	// Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If
8278	// the endpoint is an Elastic IP address, this is the Elastic IP address allocation
8279	// ID. For Amazon EC2 instances, this is the EC2 instance ID. A resource must
8280	// be valid and active when you add it as an endpoint.
8281	//
8282	// An Application Load Balancer can be either internal or internet-facing.
8283	EndpointId *string `type:"string"`
8284
8285	// The weight associated with the endpoint. When you add weights to endpoints,
8286	// you configure AWS Global Accelerator to route traffic based on proportions
8287	// that you specify. For example, you might specify endpoint weights of 4, 5,
8288	// 5, and 6 (sum=20). The result is that 4/20 of your traffic, on average, is
8289	// routed to the first endpoint, 5/20 is routed both to the second and third
8290	// endpoints, and 6/20 is routed to the last endpoint. For more information,
8291	// see Endpoint Weights (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html)
8292	// in the AWS Global Accelerator Developer Guide.
8293	Weight *int64 `type:"integer"`
8294}
8295
8296// String returns the string representation
8297func (s EndpointConfiguration) String() string {
8298	return awsutil.Prettify(s)
8299}
8300
8301// GoString returns the string representation
8302func (s EndpointConfiguration) GoString() string {
8303	return s.String()
8304}
8305
8306// SetClientIPPreservationEnabled sets the ClientIPPreservationEnabled field's value.
8307func (s *EndpointConfiguration) SetClientIPPreservationEnabled(v bool) *EndpointConfiguration {
8308	s.ClientIPPreservationEnabled = &v
8309	return s
8310}
8311
8312// SetEndpointId sets the EndpointId field's value.
8313func (s *EndpointConfiguration) SetEndpointId(v string) *EndpointConfiguration {
8314	s.EndpointId = &v
8315	return s
8316}
8317
8318// SetWeight sets the Weight field's value.
8319func (s *EndpointConfiguration) SetWeight(v int64) *EndpointConfiguration {
8320	s.Weight = &v
8321	return s
8322}
8323
8324// A complex type for an endpoint. Each endpoint group can include one or more
8325// endpoints, such as load balancers.
8326type EndpointDescription struct {
8327	_ struct{} `type:"structure"`
8328
8329	// Indicates whether client IP address preservation is enabled for an Application
8330	// Load Balancer endpoint. The value is true or false. The default value is
8331	// true for new accelerators.
8332	//
8333	// If the value is set to true, the client's IP address is preserved in the
8334	// X-Forwarded-For request header as traffic travels to applications on the
8335	// Application Load Balancer endpoint fronted by the accelerator.
8336	//
8337	// For more information, see Viewing Client IP Addresses in AWS Global Accelerator
8338	// (https://docs.aws.amazon.com/global-accelerator/latest/dg/introduction-how-it-works-client-ip.html)
8339	// in the AWS Global Accelerator Developer Guide.
8340	ClientIPPreservationEnabled *bool `type:"boolean"`
8341
8342	// An ID for the endpoint. If the endpoint is a Network Load Balancer or Application
8343	// Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If
8344	// the endpoint is an Elastic IP address, this is the Elastic IP address allocation
8345	// ID. For Amazon EC2 instances, this is the EC2 instance ID.
8346	//
8347	// An Application Load Balancer can be either internal or internet-facing.
8348	EndpointId *string `type:"string"`
8349
8350	// Returns a null result.
8351	HealthReason *string `type:"string"`
8352
8353	// The health status of the endpoint.
8354	HealthState *string `type:"string" enum:"HealthState"`
8355
8356	// The weight associated with the endpoint. When you add weights to endpoints,
8357	// you configure AWS Global Accelerator to route traffic based on proportions
8358	// that you specify. For example, you might specify endpoint weights of 4, 5,
8359	// 5, and 6 (sum=20). The result is that 4/20 of your traffic, on average, is
8360	// routed to the first endpoint, 5/20 is routed both to the second and third
8361	// endpoints, and 6/20 is routed to the last endpoint. For more information,
8362	// see Endpoint Weights (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html)
8363	// in the AWS Global Accelerator Developer Guide.
8364	Weight *int64 `type:"integer"`
8365}
8366
8367// String returns the string representation
8368func (s EndpointDescription) String() string {
8369	return awsutil.Prettify(s)
8370}
8371
8372// GoString returns the string representation
8373func (s EndpointDescription) GoString() string {
8374	return s.String()
8375}
8376
8377// SetClientIPPreservationEnabled sets the ClientIPPreservationEnabled field's value.
8378func (s *EndpointDescription) SetClientIPPreservationEnabled(v bool) *EndpointDescription {
8379	s.ClientIPPreservationEnabled = &v
8380	return s
8381}
8382
8383// SetEndpointId sets the EndpointId field's value.
8384func (s *EndpointDescription) SetEndpointId(v string) *EndpointDescription {
8385	s.EndpointId = &v
8386	return s
8387}
8388
8389// SetHealthReason sets the HealthReason field's value.
8390func (s *EndpointDescription) SetHealthReason(v string) *EndpointDescription {
8391	s.HealthReason = &v
8392	return s
8393}
8394
8395// SetHealthState sets the HealthState field's value.
8396func (s *EndpointDescription) SetHealthState(v string) *EndpointDescription {
8397	s.HealthState = &v
8398	return s
8399}
8400
8401// SetWeight sets the Weight field's value.
8402func (s *EndpointDescription) SetWeight(v int64) *EndpointDescription {
8403	s.Weight = &v
8404	return s
8405}
8406
8407// A complex type for the endpoint group. An AWS Region can have only one endpoint
8408// group for a specific listener.
8409type EndpointGroup struct {
8410	_ struct{} `type:"structure"`
8411
8412	// The list of endpoint objects.
8413	EndpointDescriptions []*EndpointDescription `type:"list"`
8414
8415	// The Amazon Resource Name (ARN) of the endpoint group.
8416	EndpointGroupArn *string `type:"string"`
8417
8418	// The AWS Region where the endpoint group is located.
8419	EndpointGroupRegion *string `type:"string"`
8420
8421	// The time—10 seconds or 30 seconds—between health checks for each endpoint.
8422	// The default value is 30.
8423	HealthCheckIntervalSeconds *int64 `min:"10" type:"integer"`
8424
8425	// If the protocol is HTTP/S, then this value provides the ping path that Global
8426	// Accelerator uses for the destination on the endpoints for health checks.
8427	// The default is slash (/).
8428	HealthCheckPath *string `type:"string"`
8429
8430	// The port that Global Accelerator uses to perform health checks on endpoints
8431	// that are part of this endpoint group.
8432	//
8433	// The default port is the port for the listener that this endpoint group is
8434	// associated with. If the listener port is a list, Global Accelerator uses
8435	// the first specified port in the list of ports.
8436	HealthCheckPort *int64 `min:"1" type:"integer"`
8437
8438	// The protocol that Global Accelerator uses to perform health checks on endpoints
8439	// that are part of this endpoint group. The default value is TCP.
8440	HealthCheckProtocol *string `type:"string" enum:"HealthCheckProtocol"`
8441
8442	// Allows you to override the destination ports used to route traffic to an
8443	// endpoint. Using a port override lets you to map a list of external destination
8444	// ports (that your users send traffic to) to a list of internal destination
8445	// ports that you want an application endpoint to receive traffic on.
8446	PortOverrides []*PortOverride `type:"list"`
8447
8448	// The number of consecutive health checks required to set the state of a healthy
8449	// endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default
8450	// value is 3.
8451	ThresholdCount *int64 `min:"1" type:"integer"`
8452
8453	// The percentage of traffic to send to an AWS Region. Additional traffic is
8454	// distributed to other endpoint groups for this listener.
8455	//
8456	// Use this action to increase (dial up) or decrease (dial down) traffic to
8457	// a specific Region. The percentage is applied to the traffic that would otherwise
8458	// have been routed to the Region based on optimal routing.
8459	//
8460	// The default value is 100.
8461	TrafficDialPercentage *float64 `type:"float"`
8462}
8463
8464// String returns the string representation
8465func (s EndpointGroup) String() string {
8466	return awsutil.Prettify(s)
8467}
8468
8469// GoString returns the string representation
8470func (s EndpointGroup) GoString() string {
8471	return s.String()
8472}
8473
8474// SetEndpointDescriptions sets the EndpointDescriptions field's value.
8475func (s *EndpointGroup) SetEndpointDescriptions(v []*EndpointDescription) *EndpointGroup {
8476	s.EndpointDescriptions = v
8477	return s
8478}
8479
8480// SetEndpointGroupArn sets the EndpointGroupArn field's value.
8481func (s *EndpointGroup) SetEndpointGroupArn(v string) *EndpointGroup {
8482	s.EndpointGroupArn = &v
8483	return s
8484}
8485
8486// SetEndpointGroupRegion sets the EndpointGroupRegion field's value.
8487func (s *EndpointGroup) SetEndpointGroupRegion(v string) *EndpointGroup {
8488	s.EndpointGroupRegion = &v
8489	return s
8490}
8491
8492// SetHealthCheckIntervalSeconds sets the HealthCheckIntervalSeconds field's value.
8493func (s *EndpointGroup) SetHealthCheckIntervalSeconds(v int64) *EndpointGroup {
8494	s.HealthCheckIntervalSeconds = &v
8495	return s
8496}
8497
8498// SetHealthCheckPath sets the HealthCheckPath field's value.
8499func (s *EndpointGroup) SetHealthCheckPath(v string) *EndpointGroup {
8500	s.HealthCheckPath = &v
8501	return s
8502}
8503
8504// SetHealthCheckPort sets the HealthCheckPort field's value.
8505func (s *EndpointGroup) SetHealthCheckPort(v int64) *EndpointGroup {
8506	s.HealthCheckPort = &v
8507	return s
8508}
8509
8510// SetHealthCheckProtocol sets the HealthCheckProtocol field's value.
8511func (s *EndpointGroup) SetHealthCheckProtocol(v string) *EndpointGroup {
8512	s.HealthCheckProtocol = &v
8513	return s
8514}
8515
8516// SetPortOverrides sets the PortOverrides field's value.
8517func (s *EndpointGroup) SetPortOverrides(v []*PortOverride) *EndpointGroup {
8518	s.PortOverrides = v
8519	return s
8520}
8521
8522// SetThresholdCount sets the ThresholdCount field's value.
8523func (s *EndpointGroup) SetThresholdCount(v int64) *EndpointGroup {
8524	s.ThresholdCount = &v
8525	return s
8526}
8527
8528// SetTrafficDialPercentage sets the TrafficDialPercentage field's value.
8529func (s *EndpointGroup) SetTrafficDialPercentage(v float64) *EndpointGroup {
8530	s.TrafficDialPercentage = &v
8531	return s
8532}
8533
8534// The endpoint group that you specified already exists.
8535type EndpointGroupAlreadyExistsException struct {
8536	_            struct{}                  `type:"structure"`
8537	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8538
8539	Message_ *string `locationName:"Message" type:"string"`
8540}
8541
8542// String returns the string representation
8543func (s EndpointGroupAlreadyExistsException) String() string {
8544	return awsutil.Prettify(s)
8545}
8546
8547// GoString returns the string representation
8548func (s EndpointGroupAlreadyExistsException) GoString() string {
8549	return s.String()
8550}
8551
8552func newErrorEndpointGroupAlreadyExistsException(v protocol.ResponseMetadata) error {
8553	return &EndpointGroupAlreadyExistsException{
8554		RespMetadata: v,
8555	}
8556}
8557
8558// Code returns the exception type name.
8559func (s *EndpointGroupAlreadyExistsException) Code() string {
8560	return "EndpointGroupAlreadyExistsException"
8561}
8562
8563// Message returns the exception's message.
8564func (s *EndpointGroupAlreadyExistsException) Message() string {
8565	if s.Message_ != nil {
8566		return *s.Message_
8567	}
8568	return ""
8569}
8570
8571// OrigErr always returns nil, satisfies awserr.Error interface.
8572func (s *EndpointGroupAlreadyExistsException) OrigErr() error {
8573	return nil
8574}
8575
8576func (s *EndpointGroupAlreadyExistsException) Error() string {
8577	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8578}
8579
8580// Status code returns the HTTP status code for the request's response error.
8581func (s *EndpointGroupAlreadyExistsException) StatusCode() int {
8582	return s.RespMetadata.StatusCode
8583}
8584
8585// RequestID returns the service's response RequestID for request.
8586func (s *EndpointGroupAlreadyExistsException) RequestID() string {
8587	return s.RespMetadata.RequestID
8588}
8589
8590// The endpoint group that you specified doesn't exist.
8591type EndpointGroupNotFoundException struct {
8592	_            struct{}                  `type:"structure"`
8593	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8594
8595	Message_ *string `locationName:"Message" type:"string"`
8596}
8597
8598// String returns the string representation
8599func (s EndpointGroupNotFoundException) String() string {
8600	return awsutil.Prettify(s)
8601}
8602
8603// GoString returns the string representation
8604func (s EndpointGroupNotFoundException) GoString() string {
8605	return s.String()
8606}
8607
8608func newErrorEndpointGroupNotFoundException(v protocol.ResponseMetadata) error {
8609	return &EndpointGroupNotFoundException{
8610		RespMetadata: v,
8611	}
8612}
8613
8614// Code returns the exception type name.
8615func (s *EndpointGroupNotFoundException) Code() string {
8616	return "EndpointGroupNotFoundException"
8617}
8618
8619// Message returns the exception's message.
8620func (s *EndpointGroupNotFoundException) Message() string {
8621	if s.Message_ != nil {
8622		return *s.Message_
8623	}
8624	return ""
8625}
8626
8627// OrigErr always returns nil, satisfies awserr.Error interface.
8628func (s *EndpointGroupNotFoundException) OrigErr() error {
8629	return nil
8630}
8631
8632func (s *EndpointGroupNotFoundException) Error() string {
8633	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8634}
8635
8636// Status code returns the HTTP status code for the request's response error.
8637func (s *EndpointGroupNotFoundException) StatusCode() int {
8638	return s.RespMetadata.StatusCode
8639}
8640
8641// RequestID returns the service's response RequestID for request.
8642func (s *EndpointGroupNotFoundException) RequestID() string {
8643	return s.RespMetadata.RequestID
8644}
8645
8646// The endpoint that you specified doesn't exist.
8647type EndpointNotFoundException struct {
8648	_            struct{}                  `type:"structure"`
8649	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8650
8651	Message_ *string `locationName:"Message" type:"string"`
8652}
8653
8654// String returns the string representation
8655func (s EndpointNotFoundException) String() string {
8656	return awsutil.Prettify(s)
8657}
8658
8659// GoString returns the string representation
8660func (s EndpointNotFoundException) GoString() string {
8661	return s.String()
8662}
8663
8664func newErrorEndpointNotFoundException(v protocol.ResponseMetadata) error {
8665	return &EndpointNotFoundException{
8666		RespMetadata: v,
8667	}
8668}
8669
8670// Code returns the exception type name.
8671func (s *EndpointNotFoundException) Code() string {
8672	return "EndpointNotFoundException"
8673}
8674
8675// Message returns the exception's message.
8676func (s *EndpointNotFoundException) Message() string {
8677	if s.Message_ != nil {
8678		return *s.Message_
8679	}
8680	return ""
8681}
8682
8683// OrigErr always returns nil, satisfies awserr.Error interface.
8684func (s *EndpointNotFoundException) OrigErr() error {
8685	return nil
8686}
8687
8688func (s *EndpointNotFoundException) Error() string {
8689	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8690}
8691
8692// Status code returns the HTTP status code for the request's response error.
8693func (s *EndpointNotFoundException) StatusCode() int {
8694	return s.RespMetadata.StatusCode
8695}
8696
8697// RequestID returns the service's response RequestID for request.
8698func (s *EndpointNotFoundException) RequestID() string {
8699	return s.RespMetadata.RequestID
8700}
8701
8702// The CIDR that you specified is not valid for this action. For example, the
8703// state of the CIDR might be incorrect for this action.
8704type IncorrectCidrStateException struct {
8705	_            struct{}                  `type:"structure"`
8706	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8707
8708	Message_ *string `locationName:"Message" type:"string"`
8709}
8710
8711// String returns the string representation
8712func (s IncorrectCidrStateException) String() string {
8713	return awsutil.Prettify(s)
8714}
8715
8716// GoString returns the string representation
8717func (s IncorrectCidrStateException) GoString() string {
8718	return s.String()
8719}
8720
8721func newErrorIncorrectCidrStateException(v protocol.ResponseMetadata) error {
8722	return &IncorrectCidrStateException{
8723		RespMetadata: v,
8724	}
8725}
8726
8727// Code returns the exception type name.
8728func (s *IncorrectCidrStateException) Code() string {
8729	return "IncorrectCidrStateException"
8730}
8731
8732// Message returns the exception's message.
8733func (s *IncorrectCidrStateException) Message() string {
8734	if s.Message_ != nil {
8735		return *s.Message_
8736	}
8737	return ""
8738}
8739
8740// OrigErr always returns nil, satisfies awserr.Error interface.
8741func (s *IncorrectCidrStateException) OrigErr() error {
8742	return nil
8743}
8744
8745func (s *IncorrectCidrStateException) Error() string {
8746	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8747}
8748
8749// Status code returns the HTTP status code for the request's response error.
8750func (s *IncorrectCidrStateException) StatusCode() int {
8751	return s.RespMetadata.StatusCode
8752}
8753
8754// RequestID returns the service's response RequestID for request.
8755func (s *IncorrectCidrStateException) RequestID() string {
8756	return s.RespMetadata.RequestID
8757}
8758
8759// There was an internal error for AWS Global Accelerator.
8760type InternalServiceErrorException struct {
8761	_            struct{}                  `type:"structure"`
8762	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8763
8764	Message_ *string `locationName:"Message" type:"string"`
8765}
8766
8767// String returns the string representation
8768func (s InternalServiceErrorException) String() string {
8769	return awsutil.Prettify(s)
8770}
8771
8772// GoString returns the string representation
8773func (s InternalServiceErrorException) GoString() string {
8774	return s.String()
8775}
8776
8777func newErrorInternalServiceErrorException(v protocol.ResponseMetadata) error {
8778	return &InternalServiceErrorException{
8779		RespMetadata: v,
8780	}
8781}
8782
8783// Code returns the exception type name.
8784func (s *InternalServiceErrorException) Code() string {
8785	return "InternalServiceErrorException"
8786}
8787
8788// Message returns the exception's message.
8789func (s *InternalServiceErrorException) Message() string {
8790	if s.Message_ != nil {
8791		return *s.Message_
8792	}
8793	return ""
8794}
8795
8796// OrigErr always returns nil, satisfies awserr.Error interface.
8797func (s *InternalServiceErrorException) OrigErr() error {
8798	return nil
8799}
8800
8801func (s *InternalServiceErrorException) Error() string {
8802	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8803}
8804
8805// Status code returns the HTTP status code for the request's response error.
8806func (s *InternalServiceErrorException) StatusCode() int {
8807	return s.RespMetadata.StatusCode
8808}
8809
8810// RequestID returns the service's response RequestID for request.
8811func (s *InternalServiceErrorException) RequestID() string {
8812	return s.RespMetadata.RequestID
8813}
8814
8815// An argument that you specified is invalid.
8816type InvalidArgumentException struct {
8817	_            struct{}                  `type:"structure"`
8818	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8819
8820	Message_ *string `locationName:"Message" type:"string"`
8821}
8822
8823// String returns the string representation
8824func (s InvalidArgumentException) String() string {
8825	return awsutil.Prettify(s)
8826}
8827
8828// GoString returns the string representation
8829func (s InvalidArgumentException) GoString() string {
8830	return s.String()
8831}
8832
8833func newErrorInvalidArgumentException(v protocol.ResponseMetadata) error {
8834	return &InvalidArgumentException{
8835		RespMetadata: v,
8836	}
8837}
8838
8839// Code returns the exception type name.
8840func (s *InvalidArgumentException) Code() string {
8841	return "InvalidArgumentException"
8842}
8843
8844// Message returns the exception's message.
8845func (s *InvalidArgumentException) Message() string {
8846	if s.Message_ != nil {
8847		return *s.Message_
8848	}
8849	return ""
8850}
8851
8852// OrigErr always returns nil, satisfies awserr.Error interface.
8853func (s *InvalidArgumentException) OrigErr() error {
8854	return nil
8855}
8856
8857func (s *InvalidArgumentException) Error() string {
8858	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8859}
8860
8861// Status code returns the HTTP status code for the request's response error.
8862func (s *InvalidArgumentException) StatusCode() int {
8863	return s.RespMetadata.StatusCode
8864}
8865
8866// RequestID returns the service's response RequestID for request.
8867func (s *InvalidArgumentException) RequestID() string {
8868	return s.RespMetadata.RequestID
8869}
8870
8871// There isn't another item to return.
8872type InvalidNextTokenException struct {
8873	_            struct{}                  `type:"structure"`
8874	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8875
8876	Message_ *string `locationName:"Message" type:"string"`
8877}
8878
8879// String returns the string representation
8880func (s InvalidNextTokenException) String() string {
8881	return awsutil.Prettify(s)
8882}
8883
8884// GoString returns the string representation
8885func (s InvalidNextTokenException) GoString() string {
8886	return s.String()
8887}
8888
8889func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
8890	return &InvalidNextTokenException{
8891		RespMetadata: v,
8892	}
8893}
8894
8895// Code returns the exception type name.
8896func (s *InvalidNextTokenException) Code() string {
8897	return "InvalidNextTokenException"
8898}
8899
8900// Message returns the exception's message.
8901func (s *InvalidNextTokenException) Message() string {
8902	if s.Message_ != nil {
8903		return *s.Message_
8904	}
8905	return ""
8906}
8907
8908// OrigErr always returns nil, satisfies awserr.Error interface.
8909func (s *InvalidNextTokenException) OrigErr() error {
8910	return nil
8911}
8912
8913func (s *InvalidNextTokenException) Error() string {
8914	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8915}
8916
8917// Status code returns the HTTP status code for the request's response error.
8918func (s *InvalidNextTokenException) StatusCode() int {
8919	return s.RespMetadata.StatusCode
8920}
8921
8922// RequestID returns the service's response RequestID for request.
8923func (s *InvalidNextTokenException) RequestID() string {
8924	return s.RespMetadata.RequestID
8925}
8926
8927// The port numbers that you specified are not valid numbers or are not unique
8928// for this accelerator.
8929type InvalidPortRangeException struct {
8930	_            struct{}                  `type:"structure"`
8931	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8932
8933	Message_ *string `locationName:"Message" type:"string"`
8934}
8935
8936// String returns the string representation
8937func (s InvalidPortRangeException) String() string {
8938	return awsutil.Prettify(s)
8939}
8940
8941// GoString returns the string representation
8942func (s InvalidPortRangeException) GoString() string {
8943	return s.String()
8944}
8945
8946func newErrorInvalidPortRangeException(v protocol.ResponseMetadata) error {
8947	return &InvalidPortRangeException{
8948		RespMetadata: v,
8949	}
8950}
8951
8952// Code returns the exception type name.
8953func (s *InvalidPortRangeException) Code() string {
8954	return "InvalidPortRangeException"
8955}
8956
8957// Message returns the exception's message.
8958func (s *InvalidPortRangeException) Message() string {
8959	if s.Message_ != nil {
8960		return *s.Message_
8961	}
8962	return ""
8963}
8964
8965// OrigErr always returns nil, satisfies awserr.Error interface.
8966func (s *InvalidPortRangeException) OrigErr() error {
8967	return nil
8968}
8969
8970func (s *InvalidPortRangeException) Error() string {
8971	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8972}
8973
8974// Status code returns the HTTP status code for the request's response error.
8975func (s *InvalidPortRangeException) StatusCode() int {
8976	return s.RespMetadata.StatusCode
8977}
8978
8979// RequestID returns the service's response RequestID for request.
8980func (s *InvalidPortRangeException) RequestID() string {
8981	return s.RespMetadata.RequestID
8982}
8983
8984// A complex type for the set of IP addresses for an accelerator.
8985type IpSet struct {
8986	_ struct{} `type:"structure"`
8987
8988	// The array of IP addresses in the IP address set. An IP address set can have
8989	// a maximum of two IP addresses.
8990	IpAddresses []*string `type:"list"`
8991
8992	// The types of IP addresses included in this IP set.
8993	IpFamily *string `type:"string"`
8994}
8995
8996// String returns the string representation
8997func (s IpSet) String() string {
8998	return awsutil.Prettify(s)
8999}
9000
9001// GoString returns the string representation
9002func (s IpSet) GoString() string {
9003	return s.String()
9004}
9005
9006// SetIpAddresses sets the IpAddresses field's value.
9007func (s *IpSet) SetIpAddresses(v []*string) *IpSet {
9008	s.IpAddresses = v
9009	return s
9010}
9011
9012// SetIpFamily sets the IpFamily field's value.
9013func (s *IpSet) SetIpFamily(v string) *IpSet {
9014	s.IpFamily = &v
9015	return s
9016}
9017
9018// Processing your request would cause you to exceed an AWS Global Accelerator
9019// limit.
9020type LimitExceededException struct {
9021	_            struct{}                  `type:"structure"`
9022	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9023
9024	Message_ *string `locationName:"Message" type:"string"`
9025}
9026
9027// String returns the string representation
9028func (s LimitExceededException) String() string {
9029	return awsutil.Prettify(s)
9030}
9031
9032// GoString returns the string representation
9033func (s LimitExceededException) GoString() string {
9034	return s.String()
9035}
9036
9037func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
9038	return &LimitExceededException{
9039		RespMetadata: v,
9040	}
9041}
9042
9043// Code returns the exception type name.
9044func (s *LimitExceededException) Code() string {
9045	return "LimitExceededException"
9046}
9047
9048// Message returns the exception's message.
9049func (s *LimitExceededException) Message() string {
9050	if s.Message_ != nil {
9051		return *s.Message_
9052	}
9053	return ""
9054}
9055
9056// OrigErr always returns nil, satisfies awserr.Error interface.
9057func (s *LimitExceededException) OrigErr() error {
9058	return nil
9059}
9060
9061func (s *LimitExceededException) Error() string {
9062	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9063}
9064
9065// Status code returns the HTTP status code for the request's response error.
9066func (s *LimitExceededException) StatusCode() int {
9067	return s.RespMetadata.StatusCode
9068}
9069
9070// RequestID returns the service's response RequestID for request.
9071func (s *LimitExceededException) RequestID() string {
9072	return s.RespMetadata.RequestID
9073}
9074
9075type ListAcceleratorsInput struct {
9076	_ struct{} `type:"structure"`
9077
9078	// The number of Global Accelerator objects that you want to return with this
9079	// call. The default value is 10.
9080	MaxResults *int64 `min:"1" type:"integer"`
9081
9082	// The token for the next set of results. You receive this token from a previous
9083	// call.
9084	NextToken *string `type:"string"`
9085}
9086
9087// String returns the string representation
9088func (s ListAcceleratorsInput) String() string {
9089	return awsutil.Prettify(s)
9090}
9091
9092// GoString returns the string representation
9093func (s ListAcceleratorsInput) GoString() string {
9094	return s.String()
9095}
9096
9097// Validate inspects the fields of the type to determine if they are valid.
9098func (s *ListAcceleratorsInput) Validate() error {
9099	invalidParams := request.ErrInvalidParams{Context: "ListAcceleratorsInput"}
9100	if s.MaxResults != nil && *s.MaxResults < 1 {
9101		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9102	}
9103
9104	if invalidParams.Len() > 0 {
9105		return invalidParams
9106	}
9107	return nil
9108}
9109
9110// SetMaxResults sets the MaxResults field's value.
9111func (s *ListAcceleratorsInput) SetMaxResults(v int64) *ListAcceleratorsInput {
9112	s.MaxResults = &v
9113	return s
9114}
9115
9116// SetNextToken sets the NextToken field's value.
9117func (s *ListAcceleratorsInput) SetNextToken(v string) *ListAcceleratorsInput {
9118	s.NextToken = &v
9119	return s
9120}
9121
9122type ListAcceleratorsOutput struct {
9123	_ struct{} `type:"structure"`
9124
9125	// The list of accelerators for a customer account.
9126	Accelerators []*Accelerator `type:"list"`
9127
9128	// The token for the next set of results. You receive this token from a previous
9129	// call.
9130	NextToken *string `type:"string"`
9131}
9132
9133// String returns the string representation
9134func (s ListAcceleratorsOutput) String() string {
9135	return awsutil.Prettify(s)
9136}
9137
9138// GoString returns the string representation
9139func (s ListAcceleratorsOutput) GoString() string {
9140	return s.String()
9141}
9142
9143// SetAccelerators sets the Accelerators field's value.
9144func (s *ListAcceleratorsOutput) SetAccelerators(v []*Accelerator) *ListAcceleratorsOutput {
9145	s.Accelerators = v
9146	return s
9147}
9148
9149// SetNextToken sets the NextToken field's value.
9150func (s *ListAcceleratorsOutput) SetNextToken(v string) *ListAcceleratorsOutput {
9151	s.NextToken = &v
9152	return s
9153}
9154
9155type ListByoipCidrsInput struct {
9156	_ struct{} `type:"structure"`
9157
9158	// The maximum number of results to return with a single call. To retrieve the
9159	// remaining results, make another call with the returned nextToken value.
9160	MaxResults *int64 `min:"1" type:"integer"`
9161
9162	// The token for the next page of results.
9163	NextToken *string `type:"string"`
9164}
9165
9166// String returns the string representation
9167func (s ListByoipCidrsInput) String() string {
9168	return awsutil.Prettify(s)
9169}
9170
9171// GoString returns the string representation
9172func (s ListByoipCidrsInput) GoString() string {
9173	return s.String()
9174}
9175
9176// Validate inspects the fields of the type to determine if they are valid.
9177func (s *ListByoipCidrsInput) Validate() error {
9178	invalidParams := request.ErrInvalidParams{Context: "ListByoipCidrsInput"}
9179	if s.MaxResults != nil && *s.MaxResults < 1 {
9180		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9181	}
9182
9183	if invalidParams.Len() > 0 {
9184		return invalidParams
9185	}
9186	return nil
9187}
9188
9189// SetMaxResults sets the MaxResults field's value.
9190func (s *ListByoipCidrsInput) SetMaxResults(v int64) *ListByoipCidrsInput {
9191	s.MaxResults = &v
9192	return s
9193}
9194
9195// SetNextToken sets the NextToken field's value.
9196func (s *ListByoipCidrsInput) SetNextToken(v string) *ListByoipCidrsInput {
9197	s.NextToken = &v
9198	return s
9199}
9200
9201type ListByoipCidrsOutput struct {
9202	_ struct{} `type:"structure"`
9203
9204	// Information about your address ranges.
9205	ByoipCidrs []*ByoipCidr `type:"list"`
9206
9207	// The token for the next page of results.
9208	NextToken *string `type:"string"`
9209}
9210
9211// String returns the string representation
9212func (s ListByoipCidrsOutput) String() string {
9213	return awsutil.Prettify(s)
9214}
9215
9216// GoString returns the string representation
9217func (s ListByoipCidrsOutput) GoString() string {
9218	return s.String()
9219}
9220
9221// SetByoipCidrs sets the ByoipCidrs field's value.
9222func (s *ListByoipCidrsOutput) SetByoipCidrs(v []*ByoipCidr) *ListByoipCidrsOutput {
9223	s.ByoipCidrs = v
9224	return s
9225}
9226
9227// SetNextToken sets the NextToken field's value.
9228func (s *ListByoipCidrsOutput) SetNextToken(v string) *ListByoipCidrsOutput {
9229	s.NextToken = &v
9230	return s
9231}
9232
9233type ListCustomRoutingAcceleratorsInput struct {
9234	_ struct{} `type:"structure"`
9235
9236	// The number of custom routing Global Accelerator objects that you want to
9237	// return with this call. The default value is 10.
9238	MaxResults *int64 `min:"1" type:"integer"`
9239
9240	// The token for the next set of results. You receive this token from a previous
9241	// call.
9242	NextToken *string `type:"string"`
9243}
9244
9245// String returns the string representation
9246func (s ListCustomRoutingAcceleratorsInput) String() string {
9247	return awsutil.Prettify(s)
9248}
9249
9250// GoString returns the string representation
9251func (s ListCustomRoutingAcceleratorsInput) GoString() string {
9252	return s.String()
9253}
9254
9255// Validate inspects the fields of the type to determine if they are valid.
9256func (s *ListCustomRoutingAcceleratorsInput) Validate() error {
9257	invalidParams := request.ErrInvalidParams{Context: "ListCustomRoutingAcceleratorsInput"}
9258	if s.MaxResults != nil && *s.MaxResults < 1 {
9259		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9260	}
9261
9262	if invalidParams.Len() > 0 {
9263		return invalidParams
9264	}
9265	return nil
9266}
9267
9268// SetMaxResults sets the MaxResults field's value.
9269func (s *ListCustomRoutingAcceleratorsInput) SetMaxResults(v int64) *ListCustomRoutingAcceleratorsInput {
9270	s.MaxResults = &v
9271	return s
9272}
9273
9274// SetNextToken sets the NextToken field's value.
9275func (s *ListCustomRoutingAcceleratorsInput) SetNextToken(v string) *ListCustomRoutingAcceleratorsInput {
9276	s.NextToken = &v
9277	return s
9278}
9279
9280type ListCustomRoutingAcceleratorsOutput struct {
9281	_ struct{} `type:"structure"`
9282
9283	// The list of custom routing accelerators for a customer account.
9284	Accelerators []*CustomRoutingAccelerator `type:"list"`
9285
9286	// The token for the next set of results. You receive this token from a previous
9287	// call.
9288	NextToken *string `type:"string"`
9289}
9290
9291// String returns the string representation
9292func (s ListCustomRoutingAcceleratorsOutput) String() string {
9293	return awsutil.Prettify(s)
9294}
9295
9296// GoString returns the string representation
9297func (s ListCustomRoutingAcceleratorsOutput) GoString() string {
9298	return s.String()
9299}
9300
9301// SetAccelerators sets the Accelerators field's value.
9302func (s *ListCustomRoutingAcceleratorsOutput) SetAccelerators(v []*CustomRoutingAccelerator) *ListCustomRoutingAcceleratorsOutput {
9303	s.Accelerators = v
9304	return s
9305}
9306
9307// SetNextToken sets the NextToken field's value.
9308func (s *ListCustomRoutingAcceleratorsOutput) SetNextToken(v string) *ListCustomRoutingAcceleratorsOutput {
9309	s.NextToken = &v
9310	return s
9311}
9312
9313type ListCustomRoutingEndpointGroupsInput struct {
9314	_ struct{} `type:"structure"`
9315
9316	// The Amazon Resource Name (ARN) of the listener to list endpoint groups for.
9317	//
9318	// ListenerArn is a required field
9319	ListenerArn *string `type:"string" required:"true"`
9320
9321	// The number of endpoint group objects that you want to return with this call.
9322	// The default value is 10.
9323	MaxResults *int64 `min:"1" type:"integer"`
9324
9325	// The token for the next set of results. You receive this token from a previous
9326	// call.
9327	NextToken *string `type:"string"`
9328}
9329
9330// String returns the string representation
9331func (s ListCustomRoutingEndpointGroupsInput) String() string {
9332	return awsutil.Prettify(s)
9333}
9334
9335// GoString returns the string representation
9336func (s ListCustomRoutingEndpointGroupsInput) GoString() string {
9337	return s.String()
9338}
9339
9340// Validate inspects the fields of the type to determine if they are valid.
9341func (s *ListCustomRoutingEndpointGroupsInput) Validate() error {
9342	invalidParams := request.ErrInvalidParams{Context: "ListCustomRoutingEndpointGroupsInput"}
9343	if s.ListenerArn == nil {
9344		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
9345	}
9346	if s.MaxResults != nil && *s.MaxResults < 1 {
9347		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9348	}
9349
9350	if invalidParams.Len() > 0 {
9351		return invalidParams
9352	}
9353	return nil
9354}
9355
9356// SetListenerArn sets the ListenerArn field's value.
9357func (s *ListCustomRoutingEndpointGroupsInput) SetListenerArn(v string) *ListCustomRoutingEndpointGroupsInput {
9358	s.ListenerArn = &v
9359	return s
9360}
9361
9362// SetMaxResults sets the MaxResults field's value.
9363func (s *ListCustomRoutingEndpointGroupsInput) SetMaxResults(v int64) *ListCustomRoutingEndpointGroupsInput {
9364	s.MaxResults = &v
9365	return s
9366}
9367
9368// SetNextToken sets the NextToken field's value.
9369func (s *ListCustomRoutingEndpointGroupsInput) SetNextToken(v string) *ListCustomRoutingEndpointGroupsInput {
9370	s.NextToken = &v
9371	return s
9372}
9373
9374type ListCustomRoutingEndpointGroupsOutput struct {
9375	_ struct{} `type:"structure"`
9376
9377	// The list of the endpoint groups associated with a listener for a custom routing
9378	// accelerator.
9379	EndpointGroups []*CustomRoutingEndpointGroup `type:"list"`
9380
9381	// The token for the next set of results. You receive this token from a previous
9382	// call.
9383	NextToken *string `type:"string"`
9384}
9385
9386// String returns the string representation
9387func (s ListCustomRoutingEndpointGroupsOutput) String() string {
9388	return awsutil.Prettify(s)
9389}
9390
9391// GoString returns the string representation
9392func (s ListCustomRoutingEndpointGroupsOutput) GoString() string {
9393	return s.String()
9394}
9395
9396// SetEndpointGroups sets the EndpointGroups field's value.
9397func (s *ListCustomRoutingEndpointGroupsOutput) SetEndpointGroups(v []*CustomRoutingEndpointGroup) *ListCustomRoutingEndpointGroupsOutput {
9398	s.EndpointGroups = v
9399	return s
9400}
9401
9402// SetNextToken sets the NextToken field's value.
9403func (s *ListCustomRoutingEndpointGroupsOutput) SetNextToken(v string) *ListCustomRoutingEndpointGroupsOutput {
9404	s.NextToken = &v
9405	return s
9406}
9407
9408type ListCustomRoutingListenersInput struct {
9409	_ struct{} `type:"structure"`
9410
9411	// The Amazon Resource Name (ARN) of the accelerator to list listeners for.
9412	//
9413	// AcceleratorArn is a required field
9414	AcceleratorArn *string `type:"string" required:"true"`
9415
9416	// The number of listener objects that you want to return with this call. The
9417	// default value is 10.
9418	MaxResults *int64 `min:"1" type:"integer"`
9419
9420	// The token for the next set of results. You receive this token from a previous
9421	// call.
9422	NextToken *string `type:"string"`
9423}
9424
9425// String returns the string representation
9426func (s ListCustomRoutingListenersInput) String() string {
9427	return awsutil.Prettify(s)
9428}
9429
9430// GoString returns the string representation
9431func (s ListCustomRoutingListenersInput) GoString() string {
9432	return s.String()
9433}
9434
9435// Validate inspects the fields of the type to determine if they are valid.
9436func (s *ListCustomRoutingListenersInput) Validate() error {
9437	invalidParams := request.ErrInvalidParams{Context: "ListCustomRoutingListenersInput"}
9438	if s.AcceleratorArn == nil {
9439		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
9440	}
9441	if s.MaxResults != nil && *s.MaxResults < 1 {
9442		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9443	}
9444
9445	if invalidParams.Len() > 0 {
9446		return invalidParams
9447	}
9448	return nil
9449}
9450
9451// SetAcceleratorArn sets the AcceleratorArn field's value.
9452func (s *ListCustomRoutingListenersInput) SetAcceleratorArn(v string) *ListCustomRoutingListenersInput {
9453	s.AcceleratorArn = &v
9454	return s
9455}
9456
9457// SetMaxResults sets the MaxResults field's value.
9458func (s *ListCustomRoutingListenersInput) SetMaxResults(v int64) *ListCustomRoutingListenersInput {
9459	s.MaxResults = &v
9460	return s
9461}
9462
9463// SetNextToken sets the NextToken field's value.
9464func (s *ListCustomRoutingListenersInput) SetNextToken(v string) *ListCustomRoutingListenersInput {
9465	s.NextToken = &v
9466	return s
9467}
9468
9469type ListCustomRoutingListenersOutput struct {
9470	_ struct{} `type:"structure"`
9471
9472	// The list of listeners for a custom routing accelerator.
9473	Listeners []*CustomRoutingListener `type:"list"`
9474
9475	// The token for the next set of results. You receive this token from a previous
9476	// call.
9477	NextToken *string `type:"string"`
9478}
9479
9480// String returns the string representation
9481func (s ListCustomRoutingListenersOutput) String() string {
9482	return awsutil.Prettify(s)
9483}
9484
9485// GoString returns the string representation
9486func (s ListCustomRoutingListenersOutput) GoString() string {
9487	return s.String()
9488}
9489
9490// SetListeners sets the Listeners field's value.
9491func (s *ListCustomRoutingListenersOutput) SetListeners(v []*CustomRoutingListener) *ListCustomRoutingListenersOutput {
9492	s.Listeners = v
9493	return s
9494}
9495
9496// SetNextToken sets the NextToken field's value.
9497func (s *ListCustomRoutingListenersOutput) SetNextToken(v string) *ListCustomRoutingListenersOutput {
9498	s.NextToken = &v
9499	return s
9500}
9501
9502type ListCustomRoutingPortMappingsByDestinationInput struct {
9503	_ struct{} `type:"structure"`
9504
9505	// The endpoint IP address in a virtual private cloud (VPC) subnet for which
9506	// you want to receive back port mappings.
9507	//
9508	// DestinationAddress is a required field
9509	DestinationAddress *string `type:"string" required:"true"`
9510
9511	// The ID for the virtual private cloud (VPC) subnet.
9512	//
9513	// EndpointId is a required field
9514	EndpointId *string `type:"string" required:"true"`
9515
9516	// The number of destination port mappings that you want to return with this
9517	// call. The default value is 10.
9518	MaxResults *int64 `min:"1" type:"integer"`
9519
9520	// The token for the next set of results. You receive this token from a previous
9521	// call.
9522	NextToken *string `type:"string"`
9523}
9524
9525// String returns the string representation
9526func (s ListCustomRoutingPortMappingsByDestinationInput) String() string {
9527	return awsutil.Prettify(s)
9528}
9529
9530// GoString returns the string representation
9531func (s ListCustomRoutingPortMappingsByDestinationInput) GoString() string {
9532	return s.String()
9533}
9534
9535// Validate inspects the fields of the type to determine if they are valid.
9536func (s *ListCustomRoutingPortMappingsByDestinationInput) Validate() error {
9537	invalidParams := request.ErrInvalidParams{Context: "ListCustomRoutingPortMappingsByDestinationInput"}
9538	if s.DestinationAddress == nil {
9539		invalidParams.Add(request.NewErrParamRequired("DestinationAddress"))
9540	}
9541	if s.EndpointId == nil {
9542		invalidParams.Add(request.NewErrParamRequired("EndpointId"))
9543	}
9544	if s.MaxResults != nil && *s.MaxResults < 1 {
9545		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9546	}
9547
9548	if invalidParams.Len() > 0 {
9549		return invalidParams
9550	}
9551	return nil
9552}
9553
9554// SetDestinationAddress sets the DestinationAddress field's value.
9555func (s *ListCustomRoutingPortMappingsByDestinationInput) SetDestinationAddress(v string) *ListCustomRoutingPortMappingsByDestinationInput {
9556	s.DestinationAddress = &v
9557	return s
9558}
9559
9560// SetEndpointId sets the EndpointId field's value.
9561func (s *ListCustomRoutingPortMappingsByDestinationInput) SetEndpointId(v string) *ListCustomRoutingPortMappingsByDestinationInput {
9562	s.EndpointId = &v
9563	return s
9564}
9565
9566// SetMaxResults sets the MaxResults field's value.
9567func (s *ListCustomRoutingPortMappingsByDestinationInput) SetMaxResults(v int64) *ListCustomRoutingPortMappingsByDestinationInput {
9568	s.MaxResults = &v
9569	return s
9570}
9571
9572// SetNextToken sets the NextToken field's value.
9573func (s *ListCustomRoutingPortMappingsByDestinationInput) SetNextToken(v string) *ListCustomRoutingPortMappingsByDestinationInput {
9574	s.NextToken = &v
9575	return s
9576}
9577
9578type ListCustomRoutingPortMappingsByDestinationOutput struct {
9579	_ struct{} `type:"structure"`
9580
9581	// The port mappings for the endpoint IP address that you specified in the request.
9582	DestinationPortMappings []*DestinationPortMapping `type:"list"`
9583
9584	// The token for the next set of results. You receive this token from a previous
9585	// call.
9586	NextToken *string `type:"string"`
9587}
9588
9589// String returns the string representation
9590func (s ListCustomRoutingPortMappingsByDestinationOutput) String() string {
9591	return awsutil.Prettify(s)
9592}
9593
9594// GoString returns the string representation
9595func (s ListCustomRoutingPortMappingsByDestinationOutput) GoString() string {
9596	return s.String()
9597}
9598
9599// SetDestinationPortMappings sets the DestinationPortMappings field's value.
9600func (s *ListCustomRoutingPortMappingsByDestinationOutput) SetDestinationPortMappings(v []*DestinationPortMapping) *ListCustomRoutingPortMappingsByDestinationOutput {
9601	s.DestinationPortMappings = v
9602	return s
9603}
9604
9605// SetNextToken sets the NextToken field's value.
9606func (s *ListCustomRoutingPortMappingsByDestinationOutput) SetNextToken(v string) *ListCustomRoutingPortMappingsByDestinationOutput {
9607	s.NextToken = &v
9608	return s
9609}
9610
9611type ListCustomRoutingPortMappingsInput struct {
9612	_ struct{} `type:"structure"`
9613
9614	// The Amazon Resource Name (ARN) of the accelerator to list the custom routing
9615	// port mappings for.
9616	//
9617	// AcceleratorArn is a required field
9618	AcceleratorArn *string `type:"string" required:"true"`
9619
9620	// The Amazon Resource Name (ARN) of the endpoint group to list the custom routing
9621	// port mappings for.
9622	EndpointGroupArn *string `type:"string"`
9623
9624	// The number of destination port mappings that you want to return with this
9625	// call. The default value is 10.
9626	MaxResults *int64 `min:"1" type:"integer"`
9627
9628	// The token for the next set of results. You receive this token from a previous
9629	// call.
9630	NextToken *string `type:"string"`
9631}
9632
9633// String returns the string representation
9634func (s ListCustomRoutingPortMappingsInput) String() string {
9635	return awsutil.Prettify(s)
9636}
9637
9638// GoString returns the string representation
9639func (s ListCustomRoutingPortMappingsInput) GoString() string {
9640	return s.String()
9641}
9642
9643// Validate inspects the fields of the type to determine if they are valid.
9644func (s *ListCustomRoutingPortMappingsInput) Validate() error {
9645	invalidParams := request.ErrInvalidParams{Context: "ListCustomRoutingPortMappingsInput"}
9646	if s.AcceleratorArn == nil {
9647		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
9648	}
9649	if s.MaxResults != nil && *s.MaxResults < 1 {
9650		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9651	}
9652
9653	if invalidParams.Len() > 0 {
9654		return invalidParams
9655	}
9656	return nil
9657}
9658
9659// SetAcceleratorArn sets the AcceleratorArn field's value.
9660func (s *ListCustomRoutingPortMappingsInput) SetAcceleratorArn(v string) *ListCustomRoutingPortMappingsInput {
9661	s.AcceleratorArn = &v
9662	return s
9663}
9664
9665// SetEndpointGroupArn sets the EndpointGroupArn field's value.
9666func (s *ListCustomRoutingPortMappingsInput) SetEndpointGroupArn(v string) *ListCustomRoutingPortMappingsInput {
9667	s.EndpointGroupArn = &v
9668	return s
9669}
9670
9671// SetMaxResults sets the MaxResults field's value.
9672func (s *ListCustomRoutingPortMappingsInput) SetMaxResults(v int64) *ListCustomRoutingPortMappingsInput {
9673	s.MaxResults = &v
9674	return s
9675}
9676
9677// SetNextToken sets the NextToken field's value.
9678func (s *ListCustomRoutingPortMappingsInput) SetNextToken(v string) *ListCustomRoutingPortMappingsInput {
9679	s.NextToken = &v
9680	return s
9681}
9682
9683type ListCustomRoutingPortMappingsOutput struct {
9684	_ struct{} `type:"structure"`
9685
9686	// The token for the next set of results. You receive this token from a previous
9687	// call.
9688	NextToken *string `type:"string"`
9689
9690	// The port mappings for a custom routing accelerator.
9691	PortMappings []*PortMapping `type:"list"`
9692}
9693
9694// String returns the string representation
9695func (s ListCustomRoutingPortMappingsOutput) String() string {
9696	return awsutil.Prettify(s)
9697}
9698
9699// GoString returns the string representation
9700func (s ListCustomRoutingPortMappingsOutput) GoString() string {
9701	return s.String()
9702}
9703
9704// SetNextToken sets the NextToken field's value.
9705func (s *ListCustomRoutingPortMappingsOutput) SetNextToken(v string) *ListCustomRoutingPortMappingsOutput {
9706	s.NextToken = &v
9707	return s
9708}
9709
9710// SetPortMappings sets the PortMappings field's value.
9711func (s *ListCustomRoutingPortMappingsOutput) SetPortMappings(v []*PortMapping) *ListCustomRoutingPortMappingsOutput {
9712	s.PortMappings = v
9713	return s
9714}
9715
9716type ListEndpointGroupsInput struct {
9717	_ struct{} `type:"structure"`
9718
9719	// The Amazon Resource Name (ARN) of the listener.
9720	//
9721	// ListenerArn is a required field
9722	ListenerArn *string `type:"string" required:"true"`
9723
9724	// The number of endpoint group objects that you want to return with this call.
9725	// The default value is 10.
9726	MaxResults *int64 `min:"1" type:"integer"`
9727
9728	// The token for the next set of results. You receive this token from a previous
9729	// call.
9730	NextToken *string `type:"string"`
9731}
9732
9733// String returns the string representation
9734func (s ListEndpointGroupsInput) String() string {
9735	return awsutil.Prettify(s)
9736}
9737
9738// GoString returns the string representation
9739func (s ListEndpointGroupsInput) GoString() string {
9740	return s.String()
9741}
9742
9743// Validate inspects the fields of the type to determine if they are valid.
9744func (s *ListEndpointGroupsInput) Validate() error {
9745	invalidParams := request.ErrInvalidParams{Context: "ListEndpointGroupsInput"}
9746	if s.ListenerArn == nil {
9747		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
9748	}
9749	if s.MaxResults != nil && *s.MaxResults < 1 {
9750		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9751	}
9752
9753	if invalidParams.Len() > 0 {
9754		return invalidParams
9755	}
9756	return nil
9757}
9758
9759// SetListenerArn sets the ListenerArn field's value.
9760func (s *ListEndpointGroupsInput) SetListenerArn(v string) *ListEndpointGroupsInput {
9761	s.ListenerArn = &v
9762	return s
9763}
9764
9765// SetMaxResults sets the MaxResults field's value.
9766func (s *ListEndpointGroupsInput) SetMaxResults(v int64) *ListEndpointGroupsInput {
9767	s.MaxResults = &v
9768	return s
9769}
9770
9771// SetNextToken sets the NextToken field's value.
9772func (s *ListEndpointGroupsInput) SetNextToken(v string) *ListEndpointGroupsInput {
9773	s.NextToken = &v
9774	return s
9775}
9776
9777type ListEndpointGroupsOutput struct {
9778	_ struct{} `type:"structure"`
9779
9780	// The list of the endpoint groups associated with a listener.
9781	EndpointGroups []*EndpointGroup `type:"list"`
9782
9783	// The token for the next set of results. You receive this token from a previous
9784	// call.
9785	NextToken *string `type:"string"`
9786}
9787
9788// String returns the string representation
9789func (s ListEndpointGroupsOutput) String() string {
9790	return awsutil.Prettify(s)
9791}
9792
9793// GoString returns the string representation
9794func (s ListEndpointGroupsOutput) GoString() string {
9795	return s.String()
9796}
9797
9798// SetEndpointGroups sets the EndpointGroups field's value.
9799func (s *ListEndpointGroupsOutput) SetEndpointGroups(v []*EndpointGroup) *ListEndpointGroupsOutput {
9800	s.EndpointGroups = v
9801	return s
9802}
9803
9804// SetNextToken sets the NextToken field's value.
9805func (s *ListEndpointGroupsOutput) SetNextToken(v string) *ListEndpointGroupsOutput {
9806	s.NextToken = &v
9807	return s
9808}
9809
9810type ListListenersInput struct {
9811	_ struct{} `type:"structure"`
9812
9813	// The Amazon Resource Name (ARN) of the accelerator for which you want to list
9814	// listener objects.
9815	//
9816	// AcceleratorArn is a required field
9817	AcceleratorArn *string `type:"string" required:"true"`
9818
9819	// The number of listener objects that you want to return with this call. The
9820	// default value is 10.
9821	MaxResults *int64 `min:"1" type:"integer"`
9822
9823	// The token for the next set of results. You receive this token from a previous
9824	// call.
9825	NextToken *string `type:"string"`
9826}
9827
9828// String returns the string representation
9829func (s ListListenersInput) String() string {
9830	return awsutil.Prettify(s)
9831}
9832
9833// GoString returns the string representation
9834func (s ListListenersInput) GoString() string {
9835	return s.String()
9836}
9837
9838// Validate inspects the fields of the type to determine if they are valid.
9839func (s *ListListenersInput) Validate() error {
9840	invalidParams := request.ErrInvalidParams{Context: "ListListenersInput"}
9841	if s.AcceleratorArn == nil {
9842		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
9843	}
9844	if s.MaxResults != nil && *s.MaxResults < 1 {
9845		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9846	}
9847
9848	if invalidParams.Len() > 0 {
9849		return invalidParams
9850	}
9851	return nil
9852}
9853
9854// SetAcceleratorArn sets the AcceleratorArn field's value.
9855func (s *ListListenersInput) SetAcceleratorArn(v string) *ListListenersInput {
9856	s.AcceleratorArn = &v
9857	return s
9858}
9859
9860// SetMaxResults sets the MaxResults field's value.
9861func (s *ListListenersInput) SetMaxResults(v int64) *ListListenersInput {
9862	s.MaxResults = &v
9863	return s
9864}
9865
9866// SetNextToken sets the NextToken field's value.
9867func (s *ListListenersInput) SetNextToken(v string) *ListListenersInput {
9868	s.NextToken = &v
9869	return s
9870}
9871
9872type ListListenersOutput struct {
9873	_ struct{} `type:"structure"`
9874
9875	// The list of listeners for an accelerator.
9876	Listeners []*Listener `type:"list"`
9877
9878	// The token for the next set of results. You receive this token from a previous
9879	// call.
9880	NextToken *string `type:"string"`
9881}
9882
9883// String returns the string representation
9884func (s ListListenersOutput) String() string {
9885	return awsutil.Prettify(s)
9886}
9887
9888// GoString returns the string representation
9889func (s ListListenersOutput) GoString() string {
9890	return s.String()
9891}
9892
9893// SetListeners sets the Listeners field's value.
9894func (s *ListListenersOutput) SetListeners(v []*Listener) *ListListenersOutput {
9895	s.Listeners = v
9896	return s
9897}
9898
9899// SetNextToken sets the NextToken field's value.
9900func (s *ListListenersOutput) SetNextToken(v string) *ListListenersOutput {
9901	s.NextToken = &v
9902	return s
9903}
9904
9905type ListTagsForResourceInput struct {
9906	_ struct{} `type:"structure"`
9907
9908	// The Amazon Resource Name (ARN) of the accelerator to list tags for. An ARN
9909	// uniquely identifies an accelerator.
9910	//
9911	// ResourceArn is a required field
9912	ResourceArn *string `min:"1" type:"string" required:"true"`
9913}
9914
9915// String returns the string representation
9916func (s ListTagsForResourceInput) String() string {
9917	return awsutil.Prettify(s)
9918}
9919
9920// GoString returns the string representation
9921func (s ListTagsForResourceInput) GoString() string {
9922	return s.String()
9923}
9924
9925// Validate inspects the fields of the type to determine if they are valid.
9926func (s *ListTagsForResourceInput) Validate() error {
9927	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
9928	if s.ResourceArn == nil {
9929		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9930	}
9931	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
9932		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
9933	}
9934
9935	if invalidParams.Len() > 0 {
9936		return invalidParams
9937	}
9938	return nil
9939}
9940
9941// SetResourceArn sets the ResourceArn field's value.
9942func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
9943	s.ResourceArn = &v
9944	return s
9945}
9946
9947type ListTagsForResourceOutput struct {
9948	_ struct{} `type:"structure"`
9949
9950	// Root level tag for the Tags parameters.
9951	Tags []*Tag `type:"list"`
9952}
9953
9954// String returns the string representation
9955func (s ListTagsForResourceOutput) String() string {
9956	return awsutil.Prettify(s)
9957}
9958
9959// GoString returns the string representation
9960func (s ListTagsForResourceOutput) GoString() string {
9961	return s.String()
9962}
9963
9964// SetTags sets the Tags field's value.
9965func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
9966	s.Tags = v
9967	return s
9968}
9969
9970// A complex type for a listener.
9971type Listener struct {
9972	_ struct{} `type:"structure"`
9973
9974	// Client affinity lets you direct all requests from a user to the same endpoint,
9975	// if you have stateful applications, regardless of the port and protocol of
9976	// the client request. Client affinity gives you control over whether to always
9977	// route each client to the same specific endpoint.
9978	//
9979	// AWS Global Accelerator uses a consistent-flow hashing algorithm to choose
9980	// the optimal endpoint for a connection. If client affinity is NONE, Global
9981	// Accelerator uses the "five-tuple" (5-tuple) properties—source IP address,
9982	// source port, destination IP address, destination port, and protocol—to
9983	// select the hash value, and then chooses the best endpoint. However, with
9984	// this setting, if someone uses different ports to connect to Global Accelerator,
9985	// their connections might not be always routed to the same endpoint because
9986	// the hash value changes.
9987	//
9988	// If you want a given client to always be routed to the same endpoint, set
9989	// client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting,
9990	// Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client)
9991	// IP address and destination IP address—to select the hash value.
9992	//
9993	// The default value is NONE.
9994	ClientAffinity *string `type:"string" enum:"ClientAffinity"`
9995
9996	// The Amazon Resource Name (ARN) of the listener.
9997	ListenerArn *string `type:"string"`
9998
9999	// The list of port ranges for the connections from clients to the accelerator.
10000	PortRanges []*PortRange `min:"1" type:"list"`
10001
10002	// The protocol for the connections from clients to the accelerator.
10003	Protocol *string `type:"string" enum:"Protocol"`
10004}
10005
10006// String returns the string representation
10007func (s Listener) String() string {
10008	return awsutil.Prettify(s)
10009}
10010
10011// GoString returns the string representation
10012func (s Listener) GoString() string {
10013	return s.String()
10014}
10015
10016// SetClientAffinity sets the ClientAffinity field's value.
10017func (s *Listener) SetClientAffinity(v string) *Listener {
10018	s.ClientAffinity = &v
10019	return s
10020}
10021
10022// SetListenerArn sets the ListenerArn field's value.
10023func (s *Listener) SetListenerArn(v string) *Listener {
10024	s.ListenerArn = &v
10025	return s
10026}
10027
10028// SetPortRanges sets the PortRanges field's value.
10029func (s *Listener) SetPortRanges(v []*PortRange) *Listener {
10030	s.PortRanges = v
10031	return s
10032}
10033
10034// SetProtocol sets the Protocol field's value.
10035func (s *Listener) SetProtocol(v string) *Listener {
10036	s.Protocol = &v
10037	return s
10038}
10039
10040// The listener that you specified doesn't exist.
10041type ListenerNotFoundException struct {
10042	_            struct{}                  `type:"structure"`
10043	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10044
10045	Message_ *string `locationName:"Message" type:"string"`
10046}
10047
10048// String returns the string representation
10049func (s ListenerNotFoundException) String() string {
10050	return awsutil.Prettify(s)
10051}
10052
10053// GoString returns the string representation
10054func (s ListenerNotFoundException) GoString() string {
10055	return s.String()
10056}
10057
10058func newErrorListenerNotFoundException(v protocol.ResponseMetadata) error {
10059	return &ListenerNotFoundException{
10060		RespMetadata: v,
10061	}
10062}
10063
10064// Code returns the exception type name.
10065func (s *ListenerNotFoundException) Code() string {
10066	return "ListenerNotFoundException"
10067}
10068
10069// Message returns the exception's message.
10070func (s *ListenerNotFoundException) Message() string {
10071	if s.Message_ != nil {
10072		return *s.Message_
10073	}
10074	return ""
10075}
10076
10077// OrigErr always returns nil, satisfies awserr.Error interface.
10078func (s *ListenerNotFoundException) OrigErr() error {
10079	return nil
10080}
10081
10082func (s *ListenerNotFoundException) Error() string {
10083	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10084}
10085
10086// Status code returns the HTTP status code for the request's response error.
10087func (s *ListenerNotFoundException) StatusCode() int {
10088	return s.RespMetadata.StatusCode
10089}
10090
10091// RequestID returns the service's response RequestID for request.
10092func (s *ListenerNotFoundException) RequestID() string {
10093	return s.RespMetadata.RequestID
10094}
10095
10096// Returns the ports and associated IP addresses and ports of Amazon EC2 instances
10097// in your virtual private cloud (VPC) subnets. Custom routing is a port mapping
10098// protocol in AWS Global Accelerator that statically associates port ranges
10099// with VPC subnets, which allows Global Accelerator to route to specific instances
10100// and ports within one or more subnets.
10101type PortMapping struct {
10102	_ struct{} `type:"structure"`
10103
10104	// The accelerator port.
10105	AcceleratorPort *int64 `min:"1" type:"integer"`
10106
10107	// The EC2 instance IP address and port number in the virtual private cloud
10108	// (VPC) subnet.
10109	DestinationSocketAddress *SocketAddress `type:"structure"`
10110
10111	// Indicates whether or not a port mapping destination can receive traffic.
10112	// The value is either ALLOW, if traffic is allowed to the destination, or DENY,
10113	// if traffic is not allowed to the destination.
10114	DestinationTrafficState *string `type:"string" enum:"CustomRoutingDestinationTrafficState"`
10115
10116	// The Amazon Resource Name (ARN) of the endpoint group.
10117	EndpointGroupArn *string `type:"string"`
10118
10119	// The IP address of the VPC subnet (the subnet ID).
10120	EndpointId *string `type:"string"`
10121
10122	// The protocols supported by the endpoint group.
10123	Protocols []*string `min:"1" type:"list"`
10124}
10125
10126// String returns the string representation
10127func (s PortMapping) String() string {
10128	return awsutil.Prettify(s)
10129}
10130
10131// GoString returns the string representation
10132func (s PortMapping) GoString() string {
10133	return s.String()
10134}
10135
10136// SetAcceleratorPort sets the AcceleratorPort field's value.
10137func (s *PortMapping) SetAcceleratorPort(v int64) *PortMapping {
10138	s.AcceleratorPort = &v
10139	return s
10140}
10141
10142// SetDestinationSocketAddress sets the DestinationSocketAddress field's value.
10143func (s *PortMapping) SetDestinationSocketAddress(v *SocketAddress) *PortMapping {
10144	s.DestinationSocketAddress = v
10145	return s
10146}
10147
10148// SetDestinationTrafficState sets the DestinationTrafficState field's value.
10149func (s *PortMapping) SetDestinationTrafficState(v string) *PortMapping {
10150	s.DestinationTrafficState = &v
10151	return s
10152}
10153
10154// SetEndpointGroupArn sets the EndpointGroupArn field's value.
10155func (s *PortMapping) SetEndpointGroupArn(v string) *PortMapping {
10156	s.EndpointGroupArn = &v
10157	return s
10158}
10159
10160// SetEndpointId sets the EndpointId field's value.
10161func (s *PortMapping) SetEndpointId(v string) *PortMapping {
10162	s.EndpointId = &v
10163	return s
10164}
10165
10166// SetProtocols sets the Protocols field's value.
10167func (s *PortMapping) SetProtocols(v []*string) *PortMapping {
10168	s.Protocols = v
10169	return s
10170}
10171
10172// Override specific listener ports used to route traffic to endpoints that
10173// are part of an endpoint group. For example, you can create a port override
10174// in which the listener receives user traffic on ports 80 and 443, but your
10175// accelerator routes that traffic to ports 1080 and 1443, respectively, on
10176// the endpoints.
10177//
10178// For more information, see Port overrides (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html)
10179// in the AWS Global Accelerator Developer Guide.
10180type PortOverride struct {
10181	_ struct{} `type:"structure"`
10182
10183	// The endpoint port that you want a listener port to be mapped to. This is
10184	// the port on the endpoint, such as the Application Load Balancer or Amazon
10185	// EC2 instance.
10186	EndpointPort *int64 `min:"1" type:"integer"`
10187
10188	// The listener port that you want to map to a specific endpoint port. This
10189	// is the port that user traffic arrives to the Global Accelerator on.
10190	ListenerPort *int64 `min:"1" type:"integer"`
10191}
10192
10193// String returns the string representation
10194func (s PortOverride) String() string {
10195	return awsutil.Prettify(s)
10196}
10197
10198// GoString returns the string representation
10199func (s PortOverride) GoString() string {
10200	return s.String()
10201}
10202
10203// Validate inspects the fields of the type to determine if they are valid.
10204func (s *PortOverride) Validate() error {
10205	invalidParams := request.ErrInvalidParams{Context: "PortOverride"}
10206	if s.EndpointPort != nil && *s.EndpointPort < 1 {
10207		invalidParams.Add(request.NewErrParamMinValue("EndpointPort", 1))
10208	}
10209	if s.ListenerPort != nil && *s.ListenerPort < 1 {
10210		invalidParams.Add(request.NewErrParamMinValue("ListenerPort", 1))
10211	}
10212
10213	if invalidParams.Len() > 0 {
10214		return invalidParams
10215	}
10216	return nil
10217}
10218
10219// SetEndpointPort sets the EndpointPort field's value.
10220func (s *PortOverride) SetEndpointPort(v int64) *PortOverride {
10221	s.EndpointPort = &v
10222	return s
10223}
10224
10225// SetListenerPort sets the ListenerPort field's value.
10226func (s *PortOverride) SetListenerPort(v int64) *PortOverride {
10227	s.ListenerPort = &v
10228	return s
10229}
10230
10231// A complex type for a range of ports for a listener.
10232type PortRange struct {
10233	_ struct{} `type:"structure"`
10234
10235	// The first port in the range of ports, inclusive.
10236	FromPort *int64 `min:"1" type:"integer"`
10237
10238	// The last port in the range of ports, inclusive.
10239	ToPort *int64 `min:"1" type:"integer"`
10240}
10241
10242// String returns the string representation
10243func (s PortRange) String() string {
10244	return awsutil.Prettify(s)
10245}
10246
10247// GoString returns the string representation
10248func (s PortRange) GoString() string {
10249	return s.String()
10250}
10251
10252// Validate inspects the fields of the type to determine if they are valid.
10253func (s *PortRange) Validate() error {
10254	invalidParams := request.ErrInvalidParams{Context: "PortRange"}
10255	if s.FromPort != nil && *s.FromPort < 1 {
10256		invalidParams.Add(request.NewErrParamMinValue("FromPort", 1))
10257	}
10258	if s.ToPort != nil && *s.ToPort < 1 {
10259		invalidParams.Add(request.NewErrParamMinValue("ToPort", 1))
10260	}
10261
10262	if invalidParams.Len() > 0 {
10263		return invalidParams
10264	}
10265	return nil
10266}
10267
10268// SetFromPort sets the FromPort field's value.
10269func (s *PortRange) SetFromPort(v int64) *PortRange {
10270	s.FromPort = &v
10271	return s
10272}
10273
10274// SetToPort sets the ToPort field's value.
10275func (s *PortRange) SetToPort(v int64) *PortRange {
10276	s.ToPort = &v
10277	return s
10278}
10279
10280type ProvisionByoipCidrInput struct {
10281	_ struct{} `type:"structure"`
10282
10283	// The public IPv4 address range, in CIDR notation. The most specific IP prefix
10284	// that you can specify is /24. The address range cannot overlap with another
10285	// address range that you've brought to this or another Region.
10286	//
10287	// Cidr is a required field
10288	Cidr *string `type:"string" required:"true"`
10289
10290	// A signed document that proves that you are authorized to bring the specified
10291	// IP address range to Amazon using BYOIP.
10292	//
10293	// CidrAuthorizationContext is a required field
10294	CidrAuthorizationContext *CidrAuthorizationContext `type:"structure" required:"true"`
10295}
10296
10297// String returns the string representation
10298func (s ProvisionByoipCidrInput) String() string {
10299	return awsutil.Prettify(s)
10300}
10301
10302// GoString returns the string representation
10303func (s ProvisionByoipCidrInput) GoString() string {
10304	return s.String()
10305}
10306
10307// Validate inspects the fields of the type to determine if they are valid.
10308func (s *ProvisionByoipCidrInput) Validate() error {
10309	invalidParams := request.ErrInvalidParams{Context: "ProvisionByoipCidrInput"}
10310	if s.Cidr == nil {
10311		invalidParams.Add(request.NewErrParamRequired("Cidr"))
10312	}
10313	if s.CidrAuthorizationContext == nil {
10314		invalidParams.Add(request.NewErrParamRequired("CidrAuthorizationContext"))
10315	}
10316	if s.CidrAuthorizationContext != nil {
10317		if err := s.CidrAuthorizationContext.Validate(); err != nil {
10318			invalidParams.AddNested("CidrAuthorizationContext", err.(request.ErrInvalidParams))
10319		}
10320	}
10321
10322	if invalidParams.Len() > 0 {
10323		return invalidParams
10324	}
10325	return nil
10326}
10327
10328// SetCidr sets the Cidr field's value.
10329func (s *ProvisionByoipCidrInput) SetCidr(v string) *ProvisionByoipCidrInput {
10330	s.Cidr = &v
10331	return s
10332}
10333
10334// SetCidrAuthorizationContext sets the CidrAuthorizationContext field's value.
10335func (s *ProvisionByoipCidrInput) SetCidrAuthorizationContext(v *CidrAuthorizationContext) *ProvisionByoipCidrInput {
10336	s.CidrAuthorizationContext = v
10337	return s
10338}
10339
10340type ProvisionByoipCidrOutput struct {
10341	_ struct{} `type:"structure"`
10342
10343	// Information about the address range.
10344	ByoipCidr *ByoipCidr `type:"structure"`
10345}
10346
10347// String returns the string representation
10348func (s ProvisionByoipCidrOutput) String() string {
10349	return awsutil.Prettify(s)
10350}
10351
10352// GoString returns the string representation
10353func (s ProvisionByoipCidrOutput) GoString() string {
10354	return s.String()
10355}
10356
10357// SetByoipCidr sets the ByoipCidr field's value.
10358func (s *ProvisionByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *ProvisionByoipCidrOutput {
10359	s.ByoipCidr = v
10360	return s
10361}
10362
10363type RemoveCustomRoutingEndpointsInput struct {
10364	_ struct{} `type:"structure"`
10365
10366	// The Amazon Resource Name (ARN) of the endpoint group to remove endpoints
10367	// from.
10368	//
10369	// EndpointGroupArn is a required field
10370	EndpointGroupArn *string `type:"string" required:"true"`
10371
10372	// The IDs for the endpoints. For custom routing accelerators, endpoint IDs
10373	// are the virtual private cloud (VPC) subnet IDs.
10374	//
10375	// EndpointIds is a required field
10376	EndpointIds []*string `type:"list" required:"true"`
10377}
10378
10379// String returns the string representation
10380func (s RemoveCustomRoutingEndpointsInput) String() string {
10381	return awsutil.Prettify(s)
10382}
10383
10384// GoString returns the string representation
10385func (s RemoveCustomRoutingEndpointsInput) GoString() string {
10386	return s.String()
10387}
10388
10389// Validate inspects the fields of the type to determine if they are valid.
10390func (s *RemoveCustomRoutingEndpointsInput) Validate() error {
10391	invalidParams := request.ErrInvalidParams{Context: "RemoveCustomRoutingEndpointsInput"}
10392	if s.EndpointGroupArn == nil {
10393		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
10394	}
10395	if s.EndpointIds == nil {
10396		invalidParams.Add(request.NewErrParamRequired("EndpointIds"))
10397	}
10398
10399	if invalidParams.Len() > 0 {
10400		return invalidParams
10401	}
10402	return nil
10403}
10404
10405// SetEndpointGroupArn sets the EndpointGroupArn field's value.
10406func (s *RemoveCustomRoutingEndpointsInput) SetEndpointGroupArn(v string) *RemoveCustomRoutingEndpointsInput {
10407	s.EndpointGroupArn = &v
10408	return s
10409}
10410
10411// SetEndpointIds sets the EndpointIds field's value.
10412func (s *RemoveCustomRoutingEndpointsInput) SetEndpointIds(v []*string) *RemoveCustomRoutingEndpointsInput {
10413	s.EndpointIds = v
10414	return s
10415}
10416
10417type RemoveCustomRoutingEndpointsOutput struct {
10418	_ struct{} `type:"structure"`
10419}
10420
10421// String returns the string representation
10422func (s RemoveCustomRoutingEndpointsOutput) String() string {
10423	return awsutil.Prettify(s)
10424}
10425
10426// GoString returns the string representation
10427func (s RemoveCustomRoutingEndpointsOutput) GoString() string {
10428	return s.String()
10429}
10430
10431// An IP address/port combination.
10432type SocketAddress struct {
10433	_ struct{} `type:"structure"`
10434
10435	// The IP address for the socket address.
10436	IpAddress *string `type:"string"`
10437
10438	// The port for the socket address.
10439	Port *int64 `min:"1" type:"integer"`
10440}
10441
10442// String returns the string representation
10443func (s SocketAddress) String() string {
10444	return awsutil.Prettify(s)
10445}
10446
10447// GoString returns the string representation
10448func (s SocketAddress) GoString() string {
10449	return s.String()
10450}
10451
10452// SetIpAddress sets the IpAddress field's value.
10453func (s *SocketAddress) SetIpAddress(v string) *SocketAddress {
10454	s.IpAddress = &v
10455	return s
10456}
10457
10458// SetPort sets the Port field's value.
10459func (s *SocketAddress) SetPort(v int64) *SocketAddress {
10460	s.Port = &v
10461	return s
10462}
10463
10464// A complex type that contains a Tag key and Tag value.
10465type Tag struct {
10466	_ struct{} `type:"structure"`
10467
10468	// A string that contains a Tag key.
10469	//
10470	// Key is a required field
10471	Key *string `min:"1" type:"string" required:"true"`
10472
10473	// A string that contains a Tag value.
10474	//
10475	// Value is a required field
10476	Value *string `type:"string" required:"true"`
10477}
10478
10479// String returns the string representation
10480func (s Tag) String() string {
10481	return awsutil.Prettify(s)
10482}
10483
10484// GoString returns the string representation
10485func (s Tag) GoString() string {
10486	return s.String()
10487}
10488
10489// Validate inspects the fields of the type to determine if they are valid.
10490func (s *Tag) Validate() error {
10491	invalidParams := request.ErrInvalidParams{Context: "Tag"}
10492	if s.Key == nil {
10493		invalidParams.Add(request.NewErrParamRequired("Key"))
10494	}
10495	if s.Key != nil && len(*s.Key) < 1 {
10496		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
10497	}
10498	if s.Value == nil {
10499		invalidParams.Add(request.NewErrParamRequired("Value"))
10500	}
10501
10502	if invalidParams.Len() > 0 {
10503		return invalidParams
10504	}
10505	return nil
10506}
10507
10508// SetKey sets the Key field's value.
10509func (s *Tag) SetKey(v string) *Tag {
10510	s.Key = &v
10511	return s
10512}
10513
10514// SetValue sets the Value field's value.
10515func (s *Tag) SetValue(v string) *Tag {
10516	s.Value = &v
10517	return s
10518}
10519
10520type TagResourceInput struct {
10521	_ struct{} `type:"structure"`
10522
10523	// The Amazon Resource Name (ARN) of the Global Accelerator resource to add
10524	// tags to. An ARN uniquely identifies a resource.
10525	//
10526	// ResourceArn is a required field
10527	ResourceArn *string `min:"1" type:"string" required:"true"`
10528
10529	// The tags to add to a resource. A tag consists of a key and a value that you
10530	// define.
10531	//
10532	// Tags is a required field
10533	Tags []*Tag `type:"list" required:"true"`
10534}
10535
10536// String returns the string representation
10537func (s TagResourceInput) String() string {
10538	return awsutil.Prettify(s)
10539}
10540
10541// GoString returns the string representation
10542func (s TagResourceInput) GoString() string {
10543	return s.String()
10544}
10545
10546// Validate inspects the fields of the type to determine if they are valid.
10547func (s *TagResourceInput) Validate() error {
10548	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
10549	if s.ResourceArn == nil {
10550		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10551	}
10552	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
10553		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
10554	}
10555	if s.Tags == nil {
10556		invalidParams.Add(request.NewErrParamRequired("Tags"))
10557	}
10558	if s.Tags != nil {
10559		for i, v := range s.Tags {
10560			if v == nil {
10561				continue
10562			}
10563			if err := v.Validate(); err != nil {
10564				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10565			}
10566		}
10567	}
10568
10569	if invalidParams.Len() > 0 {
10570		return invalidParams
10571	}
10572	return nil
10573}
10574
10575// SetResourceArn sets the ResourceArn field's value.
10576func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
10577	s.ResourceArn = &v
10578	return s
10579}
10580
10581// SetTags sets the Tags field's value.
10582func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
10583	s.Tags = v
10584	return s
10585}
10586
10587type TagResourceOutput struct {
10588	_ struct{} `type:"structure"`
10589}
10590
10591// String returns the string representation
10592func (s TagResourceOutput) String() string {
10593	return awsutil.Prettify(s)
10594}
10595
10596// GoString returns the string representation
10597func (s TagResourceOutput) GoString() string {
10598	return s.String()
10599}
10600
10601type UntagResourceInput struct {
10602	_ struct{} `type:"structure"`
10603
10604	// The Amazon Resource Name (ARN) of the Global Accelerator resource to remove
10605	// tags from. An ARN uniquely identifies a resource.
10606	//
10607	// ResourceArn is a required field
10608	ResourceArn *string `min:"1" type:"string" required:"true"`
10609
10610	// The tag key pairs that you want to remove from the specified resources.
10611	//
10612	// TagKeys is a required field
10613	TagKeys []*string `type:"list" required:"true"`
10614}
10615
10616// String returns the string representation
10617func (s UntagResourceInput) String() string {
10618	return awsutil.Prettify(s)
10619}
10620
10621// GoString returns the string representation
10622func (s UntagResourceInput) GoString() string {
10623	return s.String()
10624}
10625
10626// Validate inspects the fields of the type to determine if they are valid.
10627func (s *UntagResourceInput) Validate() error {
10628	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
10629	if s.ResourceArn == nil {
10630		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10631	}
10632	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
10633		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
10634	}
10635	if s.TagKeys == nil {
10636		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
10637	}
10638
10639	if invalidParams.Len() > 0 {
10640		return invalidParams
10641	}
10642	return nil
10643}
10644
10645// SetResourceArn sets the ResourceArn field's value.
10646func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
10647	s.ResourceArn = &v
10648	return s
10649}
10650
10651// SetTagKeys sets the TagKeys field's value.
10652func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
10653	s.TagKeys = v
10654	return s
10655}
10656
10657type UntagResourceOutput struct {
10658	_ struct{} `type:"structure"`
10659}
10660
10661// String returns the string representation
10662func (s UntagResourceOutput) String() string {
10663	return awsutil.Prettify(s)
10664}
10665
10666// GoString returns the string representation
10667func (s UntagResourceOutput) GoString() string {
10668	return s.String()
10669}
10670
10671type UpdateAcceleratorAttributesInput struct {
10672	_ struct{} `type:"structure"`
10673
10674	// The Amazon Resource Name (ARN) of the accelerator that you want to update.
10675	//
10676	// AcceleratorArn is a required field
10677	AcceleratorArn *string `type:"string" required:"true"`
10678
10679	// Update whether flow logs are enabled. The default value is false. If the
10680	// value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.
10681	//
10682	// For more information, see Flow Logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html)
10683	// in the AWS Global Accelerator Developer Guide.
10684	FlowLogsEnabled *bool `type:"boolean"`
10685
10686	// The name of the Amazon S3 bucket for the flow logs. Attribute is required
10687	// if FlowLogsEnabled is true. The bucket must exist and have a bucket policy
10688	// that grants AWS Global Accelerator permission to write to the bucket.
10689	FlowLogsS3Bucket *string `type:"string"`
10690
10691	// Update the prefix for the location in the Amazon S3 bucket for the flow logs.
10692	// Attribute is required if FlowLogsEnabled is true.
10693	//
10694	// If you don’t specify a prefix, the flow logs are stored in the root of
10695	// the bucket. If you specify slash (/) for the S3 bucket prefix, the log file
10696	// bucket folder structure will include a double slash (//), like the following:
10697	//
10698	// s3-bucket_name//AWSLogs/aws_account_id
10699	FlowLogsS3Prefix *string `type:"string"`
10700}
10701
10702// String returns the string representation
10703func (s UpdateAcceleratorAttributesInput) String() string {
10704	return awsutil.Prettify(s)
10705}
10706
10707// GoString returns the string representation
10708func (s UpdateAcceleratorAttributesInput) GoString() string {
10709	return s.String()
10710}
10711
10712// Validate inspects the fields of the type to determine if they are valid.
10713func (s *UpdateAcceleratorAttributesInput) Validate() error {
10714	invalidParams := request.ErrInvalidParams{Context: "UpdateAcceleratorAttributesInput"}
10715	if s.AcceleratorArn == nil {
10716		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
10717	}
10718
10719	if invalidParams.Len() > 0 {
10720		return invalidParams
10721	}
10722	return nil
10723}
10724
10725// SetAcceleratorArn sets the AcceleratorArn field's value.
10726func (s *UpdateAcceleratorAttributesInput) SetAcceleratorArn(v string) *UpdateAcceleratorAttributesInput {
10727	s.AcceleratorArn = &v
10728	return s
10729}
10730
10731// SetFlowLogsEnabled sets the FlowLogsEnabled field's value.
10732func (s *UpdateAcceleratorAttributesInput) SetFlowLogsEnabled(v bool) *UpdateAcceleratorAttributesInput {
10733	s.FlowLogsEnabled = &v
10734	return s
10735}
10736
10737// SetFlowLogsS3Bucket sets the FlowLogsS3Bucket field's value.
10738func (s *UpdateAcceleratorAttributesInput) SetFlowLogsS3Bucket(v string) *UpdateAcceleratorAttributesInput {
10739	s.FlowLogsS3Bucket = &v
10740	return s
10741}
10742
10743// SetFlowLogsS3Prefix sets the FlowLogsS3Prefix field's value.
10744func (s *UpdateAcceleratorAttributesInput) SetFlowLogsS3Prefix(v string) *UpdateAcceleratorAttributesInput {
10745	s.FlowLogsS3Prefix = &v
10746	return s
10747}
10748
10749type UpdateAcceleratorAttributesOutput struct {
10750	_ struct{} `type:"structure"`
10751
10752	// Updated attributes for the accelerator.
10753	AcceleratorAttributes *AcceleratorAttributes `type:"structure"`
10754}
10755
10756// String returns the string representation
10757func (s UpdateAcceleratorAttributesOutput) String() string {
10758	return awsutil.Prettify(s)
10759}
10760
10761// GoString returns the string representation
10762func (s UpdateAcceleratorAttributesOutput) GoString() string {
10763	return s.String()
10764}
10765
10766// SetAcceleratorAttributes sets the AcceleratorAttributes field's value.
10767func (s *UpdateAcceleratorAttributesOutput) SetAcceleratorAttributes(v *AcceleratorAttributes) *UpdateAcceleratorAttributesOutput {
10768	s.AcceleratorAttributes = v
10769	return s
10770}
10771
10772type UpdateAcceleratorInput struct {
10773	_ struct{} `type:"structure"`
10774
10775	// The Amazon Resource Name (ARN) of the accelerator to update.
10776	//
10777	// AcceleratorArn is a required field
10778	AcceleratorArn *string `type:"string" required:"true"`
10779
10780	// Indicates whether an accelerator is enabled. The value is true or false.
10781	// The default value is true.
10782	//
10783	// If the value is set to true, the accelerator cannot be deleted. If set to
10784	// false, the accelerator can be deleted.
10785	Enabled *bool `type:"boolean"`
10786
10787	// The IP address type, which must be IPv4.
10788	IpAddressType *string `type:"string" enum:"IpAddressType"`
10789
10790	// The name of the accelerator. The name can have a maximum of 32 characters,
10791	// must contain only alphanumeric characters or hyphens (-), and must not begin
10792	// or end with a hyphen.
10793	Name *string `type:"string"`
10794}
10795
10796// String returns the string representation
10797func (s UpdateAcceleratorInput) String() string {
10798	return awsutil.Prettify(s)
10799}
10800
10801// GoString returns the string representation
10802func (s UpdateAcceleratorInput) GoString() string {
10803	return s.String()
10804}
10805
10806// Validate inspects the fields of the type to determine if they are valid.
10807func (s *UpdateAcceleratorInput) Validate() error {
10808	invalidParams := request.ErrInvalidParams{Context: "UpdateAcceleratorInput"}
10809	if s.AcceleratorArn == nil {
10810		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
10811	}
10812
10813	if invalidParams.Len() > 0 {
10814		return invalidParams
10815	}
10816	return nil
10817}
10818
10819// SetAcceleratorArn sets the AcceleratorArn field's value.
10820func (s *UpdateAcceleratorInput) SetAcceleratorArn(v string) *UpdateAcceleratorInput {
10821	s.AcceleratorArn = &v
10822	return s
10823}
10824
10825// SetEnabled sets the Enabled field's value.
10826func (s *UpdateAcceleratorInput) SetEnabled(v bool) *UpdateAcceleratorInput {
10827	s.Enabled = &v
10828	return s
10829}
10830
10831// SetIpAddressType sets the IpAddressType field's value.
10832func (s *UpdateAcceleratorInput) SetIpAddressType(v string) *UpdateAcceleratorInput {
10833	s.IpAddressType = &v
10834	return s
10835}
10836
10837// SetName sets the Name field's value.
10838func (s *UpdateAcceleratorInput) SetName(v string) *UpdateAcceleratorInput {
10839	s.Name = &v
10840	return s
10841}
10842
10843type UpdateAcceleratorOutput struct {
10844	_ struct{} `type:"structure"`
10845
10846	// Information about the updated accelerator.
10847	Accelerator *Accelerator `type:"structure"`
10848}
10849
10850// String returns the string representation
10851func (s UpdateAcceleratorOutput) String() string {
10852	return awsutil.Prettify(s)
10853}
10854
10855// GoString returns the string representation
10856func (s UpdateAcceleratorOutput) GoString() string {
10857	return s.String()
10858}
10859
10860// SetAccelerator sets the Accelerator field's value.
10861func (s *UpdateAcceleratorOutput) SetAccelerator(v *Accelerator) *UpdateAcceleratorOutput {
10862	s.Accelerator = v
10863	return s
10864}
10865
10866type UpdateCustomRoutingAcceleratorAttributesInput struct {
10867	_ struct{} `type:"structure"`
10868
10869	// The Amazon Resource Name (ARN) of the custom routing accelerator to update
10870	// attributes for.
10871	//
10872	// AcceleratorArn is a required field
10873	AcceleratorArn *string `type:"string" required:"true"`
10874
10875	// Update whether flow logs are enabled. The default value is false. If the
10876	// value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.
10877	//
10878	// For more information, see Flow Logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html)
10879	// in the AWS Global Accelerator Developer Guide.
10880	FlowLogsEnabled *bool `type:"boolean"`
10881
10882	// The name of the Amazon S3 bucket for the flow logs. Attribute is required
10883	// if FlowLogsEnabled is true. The bucket must exist and have a bucket policy
10884	// that grants AWS Global Accelerator permission to write to the bucket.
10885	FlowLogsS3Bucket *string `type:"string"`
10886
10887	// Update the prefix for the location in the Amazon S3 bucket for the flow logs.
10888	// Attribute is required if FlowLogsEnabled is true.
10889	//
10890	// If you don’t specify a prefix, the flow logs are stored in the root of
10891	// the bucket. If you specify slash (/) for the S3 bucket prefix, the log file
10892	// bucket folder structure will include a double slash (//), like the following:
10893	//
10894	// DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id
10895	FlowLogsS3Prefix *string `type:"string"`
10896}
10897
10898// String returns the string representation
10899func (s UpdateCustomRoutingAcceleratorAttributesInput) String() string {
10900	return awsutil.Prettify(s)
10901}
10902
10903// GoString returns the string representation
10904func (s UpdateCustomRoutingAcceleratorAttributesInput) GoString() string {
10905	return s.String()
10906}
10907
10908// Validate inspects the fields of the type to determine if they are valid.
10909func (s *UpdateCustomRoutingAcceleratorAttributesInput) Validate() error {
10910	invalidParams := request.ErrInvalidParams{Context: "UpdateCustomRoutingAcceleratorAttributesInput"}
10911	if s.AcceleratorArn == nil {
10912		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
10913	}
10914
10915	if invalidParams.Len() > 0 {
10916		return invalidParams
10917	}
10918	return nil
10919}
10920
10921// SetAcceleratorArn sets the AcceleratorArn field's value.
10922func (s *UpdateCustomRoutingAcceleratorAttributesInput) SetAcceleratorArn(v string) *UpdateCustomRoutingAcceleratorAttributesInput {
10923	s.AcceleratorArn = &v
10924	return s
10925}
10926
10927// SetFlowLogsEnabled sets the FlowLogsEnabled field's value.
10928func (s *UpdateCustomRoutingAcceleratorAttributesInput) SetFlowLogsEnabled(v bool) *UpdateCustomRoutingAcceleratorAttributesInput {
10929	s.FlowLogsEnabled = &v
10930	return s
10931}
10932
10933// SetFlowLogsS3Bucket sets the FlowLogsS3Bucket field's value.
10934func (s *UpdateCustomRoutingAcceleratorAttributesInput) SetFlowLogsS3Bucket(v string) *UpdateCustomRoutingAcceleratorAttributesInput {
10935	s.FlowLogsS3Bucket = &v
10936	return s
10937}
10938
10939// SetFlowLogsS3Prefix sets the FlowLogsS3Prefix field's value.
10940func (s *UpdateCustomRoutingAcceleratorAttributesInput) SetFlowLogsS3Prefix(v string) *UpdateCustomRoutingAcceleratorAttributesInput {
10941	s.FlowLogsS3Prefix = &v
10942	return s
10943}
10944
10945type UpdateCustomRoutingAcceleratorAttributesOutput struct {
10946	_ struct{} `type:"structure"`
10947
10948	// Updated custom routing accelerator.
10949	AcceleratorAttributes *CustomRoutingAcceleratorAttributes `type:"structure"`
10950}
10951
10952// String returns the string representation
10953func (s UpdateCustomRoutingAcceleratorAttributesOutput) String() string {
10954	return awsutil.Prettify(s)
10955}
10956
10957// GoString returns the string representation
10958func (s UpdateCustomRoutingAcceleratorAttributesOutput) GoString() string {
10959	return s.String()
10960}
10961
10962// SetAcceleratorAttributes sets the AcceleratorAttributes field's value.
10963func (s *UpdateCustomRoutingAcceleratorAttributesOutput) SetAcceleratorAttributes(v *CustomRoutingAcceleratorAttributes) *UpdateCustomRoutingAcceleratorAttributesOutput {
10964	s.AcceleratorAttributes = v
10965	return s
10966}
10967
10968type UpdateCustomRoutingAcceleratorInput struct {
10969	_ struct{} `type:"structure"`
10970
10971	// The Amazon Resource Name (ARN) of the accelerator to update.
10972	//
10973	// AcceleratorArn is a required field
10974	AcceleratorArn *string `type:"string" required:"true"`
10975
10976	// Indicates whether an accelerator is enabled. The value is true or false.
10977	// The default value is true.
10978	//
10979	// If the value is set to true, the accelerator cannot be deleted. If set to
10980	// false, the accelerator can be deleted.
10981	Enabled *bool `type:"boolean"`
10982
10983	// The value for the address type must be IPv4.
10984	IpAddressType *string `type:"string" enum:"IpAddressType"`
10985
10986	// The name of the accelerator. The name can have a maximum of 32 characters,
10987	// must contain only alphanumeric characters or hyphens (-), and must not begin
10988	// or end with a hyphen.
10989	Name *string `type:"string"`
10990}
10991
10992// String returns the string representation
10993func (s UpdateCustomRoutingAcceleratorInput) String() string {
10994	return awsutil.Prettify(s)
10995}
10996
10997// GoString returns the string representation
10998func (s UpdateCustomRoutingAcceleratorInput) GoString() string {
10999	return s.String()
11000}
11001
11002// Validate inspects the fields of the type to determine if they are valid.
11003func (s *UpdateCustomRoutingAcceleratorInput) Validate() error {
11004	invalidParams := request.ErrInvalidParams{Context: "UpdateCustomRoutingAcceleratorInput"}
11005	if s.AcceleratorArn == nil {
11006		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
11007	}
11008
11009	if invalidParams.Len() > 0 {
11010		return invalidParams
11011	}
11012	return nil
11013}
11014
11015// SetAcceleratorArn sets the AcceleratorArn field's value.
11016func (s *UpdateCustomRoutingAcceleratorInput) SetAcceleratorArn(v string) *UpdateCustomRoutingAcceleratorInput {
11017	s.AcceleratorArn = &v
11018	return s
11019}
11020
11021// SetEnabled sets the Enabled field's value.
11022func (s *UpdateCustomRoutingAcceleratorInput) SetEnabled(v bool) *UpdateCustomRoutingAcceleratorInput {
11023	s.Enabled = &v
11024	return s
11025}
11026
11027// SetIpAddressType sets the IpAddressType field's value.
11028func (s *UpdateCustomRoutingAcceleratorInput) SetIpAddressType(v string) *UpdateCustomRoutingAcceleratorInput {
11029	s.IpAddressType = &v
11030	return s
11031}
11032
11033// SetName sets the Name field's value.
11034func (s *UpdateCustomRoutingAcceleratorInput) SetName(v string) *UpdateCustomRoutingAcceleratorInput {
11035	s.Name = &v
11036	return s
11037}
11038
11039type UpdateCustomRoutingAcceleratorOutput struct {
11040	_ struct{} `type:"structure"`
11041
11042	// Information about the updated custom routing accelerator.
11043	Accelerator *CustomRoutingAccelerator `type:"structure"`
11044}
11045
11046// String returns the string representation
11047func (s UpdateCustomRoutingAcceleratorOutput) String() string {
11048	return awsutil.Prettify(s)
11049}
11050
11051// GoString returns the string representation
11052func (s UpdateCustomRoutingAcceleratorOutput) GoString() string {
11053	return s.String()
11054}
11055
11056// SetAccelerator sets the Accelerator field's value.
11057func (s *UpdateCustomRoutingAcceleratorOutput) SetAccelerator(v *CustomRoutingAccelerator) *UpdateCustomRoutingAcceleratorOutput {
11058	s.Accelerator = v
11059	return s
11060}
11061
11062type UpdateCustomRoutingListenerInput struct {
11063	_ struct{} `type:"structure"`
11064
11065	// The Amazon Resource Name (ARN) of the listener to update.
11066	//
11067	// ListenerArn is a required field
11068	ListenerArn *string `type:"string" required:"true"`
11069
11070	// The updated port range to support for connections from clients to your accelerator.
11071	// If you remove ports that are currently being used by a subnet endpoint, the
11072	// call fails.
11073	//
11074	// Separately, you set port ranges for endpoints. For more information, see
11075	// About endpoints for custom routing accelerators (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html).
11076	//
11077	// PortRanges is a required field
11078	PortRanges []*PortRange `min:"1" type:"list" required:"true"`
11079}
11080
11081// String returns the string representation
11082func (s UpdateCustomRoutingListenerInput) String() string {
11083	return awsutil.Prettify(s)
11084}
11085
11086// GoString returns the string representation
11087func (s UpdateCustomRoutingListenerInput) GoString() string {
11088	return s.String()
11089}
11090
11091// Validate inspects the fields of the type to determine if they are valid.
11092func (s *UpdateCustomRoutingListenerInput) Validate() error {
11093	invalidParams := request.ErrInvalidParams{Context: "UpdateCustomRoutingListenerInput"}
11094	if s.ListenerArn == nil {
11095		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
11096	}
11097	if s.PortRanges == nil {
11098		invalidParams.Add(request.NewErrParamRequired("PortRanges"))
11099	}
11100	if s.PortRanges != nil && len(s.PortRanges) < 1 {
11101		invalidParams.Add(request.NewErrParamMinLen("PortRanges", 1))
11102	}
11103	if s.PortRanges != nil {
11104		for i, v := range s.PortRanges {
11105			if v == nil {
11106				continue
11107			}
11108			if err := v.Validate(); err != nil {
11109				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortRanges", i), err.(request.ErrInvalidParams))
11110			}
11111		}
11112	}
11113
11114	if invalidParams.Len() > 0 {
11115		return invalidParams
11116	}
11117	return nil
11118}
11119
11120// SetListenerArn sets the ListenerArn field's value.
11121func (s *UpdateCustomRoutingListenerInput) SetListenerArn(v string) *UpdateCustomRoutingListenerInput {
11122	s.ListenerArn = &v
11123	return s
11124}
11125
11126// SetPortRanges sets the PortRanges field's value.
11127func (s *UpdateCustomRoutingListenerInput) SetPortRanges(v []*PortRange) *UpdateCustomRoutingListenerInput {
11128	s.PortRanges = v
11129	return s
11130}
11131
11132type UpdateCustomRoutingListenerOutput struct {
11133	_ struct{} `type:"structure"`
11134
11135	// Information for the updated listener for a custom routing accelerator.
11136	Listener *CustomRoutingListener `type:"structure"`
11137}
11138
11139// String returns the string representation
11140func (s UpdateCustomRoutingListenerOutput) String() string {
11141	return awsutil.Prettify(s)
11142}
11143
11144// GoString returns the string representation
11145func (s UpdateCustomRoutingListenerOutput) GoString() string {
11146	return s.String()
11147}
11148
11149// SetListener sets the Listener field's value.
11150func (s *UpdateCustomRoutingListenerOutput) SetListener(v *CustomRoutingListener) *UpdateCustomRoutingListenerOutput {
11151	s.Listener = v
11152	return s
11153}
11154
11155type UpdateEndpointGroupInput struct {
11156	_ struct{} `type:"structure"`
11157
11158	// The list of endpoint objects. A resource must be valid and active when you
11159	// add it as an endpoint.
11160	EndpointConfigurations []*EndpointConfiguration `type:"list"`
11161
11162	// The Amazon Resource Name (ARN) of the endpoint group.
11163	//
11164	// EndpointGroupArn is a required field
11165	EndpointGroupArn *string `type:"string" required:"true"`
11166
11167	// The time—10 seconds or 30 seconds—between each health check for an endpoint.
11168	// The default value is 30.
11169	HealthCheckIntervalSeconds *int64 `min:"10" type:"integer"`
11170
11171	// If the protocol is HTTP/S, then this specifies the path that is the destination
11172	// for health check targets. The default value is slash (/).
11173	HealthCheckPath *string `type:"string"`
11174
11175	// The port that AWS Global Accelerator uses to check the health of endpoints
11176	// that are part of this endpoint group. The default port is the listener port
11177	// that this endpoint group is associated with. If the listener port is a list
11178	// of ports, Global Accelerator uses the first port in the list.
11179	HealthCheckPort *int64 `min:"1" type:"integer"`
11180
11181	// The protocol that AWS Global Accelerator uses to check the health of endpoints
11182	// that are part of this endpoint group. The default value is TCP.
11183	HealthCheckProtocol *string `type:"string" enum:"HealthCheckProtocol"`
11184
11185	// Override specific listener ports used to route traffic to endpoints that
11186	// are part of this endpoint group. For example, you can create a port override
11187	// in which the listener receives user traffic on ports 80 and 443, but your
11188	// accelerator routes that traffic to ports 1080 and 1443, respectively, on
11189	// the endpoints.
11190	//
11191	// For more information, see Port overrides (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html)
11192	// in the AWS Global Accelerator Developer Guide.
11193	PortOverrides []*PortOverride `type:"list"`
11194
11195	// The number of consecutive health checks required to set the state of a healthy
11196	// endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default
11197	// value is 3.
11198	ThresholdCount *int64 `min:"1" type:"integer"`
11199
11200	// The percentage of traffic to send to an AWS Region. Additional traffic is
11201	// distributed to other endpoint groups for this listener.
11202	//
11203	// Use this action to increase (dial up) or decrease (dial down) traffic to
11204	// a specific Region. The percentage is applied to the traffic that would otherwise
11205	// have been routed to the Region based on optimal routing.
11206	//
11207	// The default value is 100.
11208	TrafficDialPercentage *float64 `type:"float"`
11209}
11210
11211// String returns the string representation
11212func (s UpdateEndpointGroupInput) String() string {
11213	return awsutil.Prettify(s)
11214}
11215
11216// GoString returns the string representation
11217func (s UpdateEndpointGroupInput) GoString() string {
11218	return s.String()
11219}
11220
11221// Validate inspects the fields of the type to determine if they are valid.
11222func (s *UpdateEndpointGroupInput) Validate() error {
11223	invalidParams := request.ErrInvalidParams{Context: "UpdateEndpointGroupInput"}
11224	if s.EndpointGroupArn == nil {
11225		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
11226	}
11227	if s.HealthCheckIntervalSeconds != nil && *s.HealthCheckIntervalSeconds < 10 {
11228		invalidParams.Add(request.NewErrParamMinValue("HealthCheckIntervalSeconds", 10))
11229	}
11230	if s.HealthCheckPort != nil && *s.HealthCheckPort < 1 {
11231		invalidParams.Add(request.NewErrParamMinValue("HealthCheckPort", 1))
11232	}
11233	if s.ThresholdCount != nil && *s.ThresholdCount < 1 {
11234		invalidParams.Add(request.NewErrParamMinValue("ThresholdCount", 1))
11235	}
11236	if s.PortOverrides != nil {
11237		for i, v := range s.PortOverrides {
11238			if v == nil {
11239				continue
11240			}
11241			if err := v.Validate(); err != nil {
11242				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortOverrides", i), err.(request.ErrInvalidParams))
11243			}
11244		}
11245	}
11246
11247	if invalidParams.Len() > 0 {
11248		return invalidParams
11249	}
11250	return nil
11251}
11252
11253// SetEndpointConfigurations sets the EndpointConfigurations field's value.
11254func (s *UpdateEndpointGroupInput) SetEndpointConfigurations(v []*EndpointConfiguration) *UpdateEndpointGroupInput {
11255	s.EndpointConfigurations = v
11256	return s
11257}
11258
11259// SetEndpointGroupArn sets the EndpointGroupArn field's value.
11260func (s *UpdateEndpointGroupInput) SetEndpointGroupArn(v string) *UpdateEndpointGroupInput {
11261	s.EndpointGroupArn = &v
11262	return s
11263}
11264
11265// SetHealthCheckIntervalSeconds sets the HealthCheckIntervalSeconds field's value.
11266func (s *UpdateEndpointGroupInput) SetHealthCheckIntervalSeconds(v int64) *UpdateEndpointGroupInput {
11267	s.HealthCheckIntervalSeconds = &v
11268	return s
11269}
11270
11271// SetHealthCheckPath sets the HealthCheckPath field's value.
11272func (s *UpdateEndpointGroupInput) SetHealthCheckPath(v string) *UpdateEndpointGroupInput {
11273	s.HealthCheckPath = &v
11274	return s
11275}
11276
11277// SetHealthCheckPort sets the HealthCheckPort field's value.
11278func (s *UpdateEndpointGroupInput) SetHealthCheckPort(v int64) *UpdateEndpointGroupInput {
11279	s.HealthCheckPort = &v
11280	return s
11281}
11282
11283// SetHealthCheckProtocol sets the HealthCheckProtocol field's value.
11284func (s *UpdateEndpointGroupInput) SetHealthCheckProtocol(v string) *UpdateEndpointGroupInput {
11285	s.HealthCheckProtocol = &v
11286	return s
11287}
11288
11289// SetPortOverrides sets the PortOverrides field's value.
11290func (s *UpdateEndpointGroupInput) SetPortOverrides(v []*PortOverride) *UpdateEndpointGroupInput {
11291	s.PortOverrides = v
11292	return s
11293}
11294
11295// SetThresholdCount sets the ThresholdCount field's value.
11296func (s *UpdateEndpointGroupInput) SetThresholdCount(v int64) *UpdateEndpointGroupInput {
11297	s.ThresholdCount = &v
11298	return s
11299}
11300
11301// SetTrafficDialPercentage sets the TrafficDialPercentage field's value.
11302func (s *UpdateEndpointGroupInput) SetTrafficDialPercentage(v float64) *UpdateEndpointGroupInput {
11303	s.TrafficDialPercentage = &v
11304	return s
11305}
11306
11307type UpdateEndpointGroupOutput struct {
11308	_ struct{} `type:"structure"`
11309
11310	// The information about the endpoint group that was updated.
11311	EndpointGroup *EndpointGroup `type:"structure"`
11312}
11313
11314// String returns the string representation
11315func (s UpdateEndpointGroupOutput) String() string {
11316	return awsutil.Prettify(s)
11317}
11318
11319// GoString returns the string representation
11320func (s UpdateEndpointGroupOutput) GoString() string {
11321	return s.String()
11322}
11323
11324// SetEndpointGroup sets the EndpointGroup field's value.
11325func (s *UpdateEndpointGroupOutput) SetEndpointGroup(v *EndpointGroup) *UpdateEndpointGroupOutput {
11326	s.EndpointGroup = v
11327	return s
11328}
11329
11330type UpdateListenerInput struct {
11331	_ struct{} `type:"structure"`
11332
11333	// Client affinity lets you direct all requests from a user to the same endpoint,
11334	// if you have stateful applications, regardless of the port and protocol of
11335	// the client request. Client affinity gives you control over whether to always
11336	// route each client to the same specific endpoint.
11337	//
11338	// AWS Global Accelerator uses a consistent-flow hashing algorithm to choose
11339	// the optimal endpoint for a connection. If client affinity is NONE, Global
11340	// Accelerator uses the "five-tuple" (5-tuple) properties—source IP address,
11341	// source port, destination IP address, destination port, and protocol—to
11342	// select the hash value, and then chooses the best endpoint. However, with
11343	// this setting, if someone uses different ports to connect to Global Accelerator,
11344	// their connections might not be always routed to the same endpoint because
11345	// the hash value changes.
11346	//
11347	// If you want a given client to always be routed to the same endpoint, set
11348	// client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting,
11349	// Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client)
11350	// IP address and destination IP address—to select the hash value.
11351	//
11352	// The default value is NONE.
11353	ClientAffinity *string `type:"string" enum:"ClientAffinity"`
11354
11355	// The Amazon Resource Name (ARN) of the listener to update.
11356	//
11357	// ListenerArn is a required field
11358	ListenerArn *string `type:"string" required:"true"`
11359
11360	// The updated list of port ranges for the connections from clients to the accelerator.
11361	PortRanges []*PortRange `min:"1" type:"list"`
11362
11363	// The updated protocol for the connections from clients to the accelerator.
11364	Protocol *string `type:"string" enum:"Protocol"`
11365}
11366
11367// String returns the string representation
11368func (s UpdateListenerInput) String() string {
11369	return awsutil.Prettify(s)
11370}
11371
11372// GoString returns the string representation
11373func (s UpdateListenerInput) GoString() string {
11374	return s.String()
11375}
11376
11377// Validate inspects the fields of the type to determine if they are valid.
11378func (s *UpdateListenerInput) Validate() error {
11379	invalidParams := request.ErrInvalidParams{Context: "UpdateListenerInput"}
11380	if s.ListenerArn == nil {
11381		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
11382	}
11383	if s.PortRanges != nil && len(s.PortRanges) < 1 {
11384		invalidParams.Add(request.NewErrParamMinLen("PortRanges", 1))
11385	}
11386	if s.PortRanges != nil {
11387		for i, v := range s.PortRanges {
11388			if v == nil {
11389				continue
11390			}
11391			if err := v.Validate(); err != nil {
11392				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortRanges", i), err.(request.ErrInvalidParams))
11393			}
11394		}
11395	}
11396
11397	if invalidParams.Len() > 0 {
11398		return invalidParams
11399	}
11400	return nil
11401}
11402
11403// SetClientAffinity sets the ClientAffinity field's value.
11404func (s *UpdateListenerInput) SetClientAffinity(v string) *UpdateListenerInput {
11405	s.ClientAffinity = &v
11406	return s
11407}
11408
11409// SetListenerArn sets the ListenerArn field's value.
11410func (s *UpdateListenerInput) SetListenerArn(v string) *UpdateListenerInput {
11411	s.ListenerArn = &v
11412	return s
11413}
11414
11415// SetPortRanges sets the PortRanges field's value.
11416func (s *UpdateListenerInput) SetPortRanges(v []*PortRange) *UpdateListenerInput {
11417	s.PortRanges = v
11418	return s
11419}
11420
11421// SetProtocol sets the Protocol field's value.
11422func (s *UpdateListenerInput) SetProtocol(v string) *UpdateListenerInput {
11423	s.Protocol = &v
11424	return s
11425}
11426
11427type UpdateListenerOutput struct {
11428	_ struct{} `type:"structure"`
11429
11430	// Information for the updated listener.
11431	Listener *Listener `type:"structure"`
11432}
11433
11434// String returns the string representation
11435func (s UpdateListenerOutput) String() string {
11436	return awsutil.Prettify(s)
11437}
11438
11439// GoString returns the string representation
11440func (s UpdateListenerOutput) GoString() string {
11441	return s.String()
11442}
11443
11444// SetListener sets the Listener field's value.
11445func (s *UpdateListenerOutput) SetListener(v *Listener) *UpdateListenerOutput {
11446	s.Listener = v
11447	return s
11448}
11449
11450type WithdrawByoipCidrInput struct {
11451	_ struct{} `type:"structure"`
11452
11453	// The address range, in CIDR notation.
11454	//
11455	// Cidr is a required field
11456	Cidr *string `type:"string" required:"true"`
11457}
11458
11459// String returns the string representation
11460func (s WithdrawByoipCidrInput) String() string {
11461	return awsutil.Prettify(s)
11462}
11463
11464// GoString returns the string representation
11465func (s WithdrawByoipCidrInput) GoString() string {
11466	return s.String()
11467}
11468
11469// Validate inspects the fields of the type to determine if they are valid.
11470func (s *WithdrawByoipCidrInput) Validate() error {
11471	invalidParams := request.ErrInvalidParams{Context: "WithdrawByoipCidrInput"}
11472	if s.Cidr == nil {
11473		invalidParams.Add(request.NewErrParamRequired("Cidr"))
11474	}
11475
11476	if invalidParams.Len() > 0 {
11477		return invalidParams
11478	}
11479	return nil
11480}
11481
11482// SetCidr sets the Cidr field's value.
11483func (s *WithdrawByoipCidrInput) SetCidr(v string) *WithdrawByoipCidrInput {
11484	s.Cidr = &v
11485	return s
11486}
11487
11488type WithdrawByoipCidrOutput struct {
11489	_ struct{} `type:"structure"`
11490
11491	// Information about the address pool.
11492	ByoipCidr *ByoipCidr `type:"structure"`
11493}
11494
11495// String returns the string representation
11496func (s WithdrawByoipCidrOutput) String() string {
11497	return awsutil.Prettify(s)
11498}
11499
11500// GoString returns the string representation
11501func (s WithdrawByoipCidrOutput) GoString() string {
11502	return s.String()
11503}
11504
11505// SetByoipCidr sets the ByoipCidr field's value.
11506func (s *WithdrawByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *WithdrawByoipCidrOutput {
11507	s.ByoipCidr = v
11508	return s
11509}
11510
11511const (
11512	// AcceleratorStatusDeployed is a AcceleratorStatus enum value
11513	AcceleratorStatusDeployed = "DEPLOYED"
11514
11515	// AcceleratorStatusInProgress is a AcceleratorStatus enum value
11516	AcceleratorStatusInProgress = "IN_PROGRESS"
11517)
11518
11519// AcceleratorStatus_Values returns all elements of the AcceleratorStatus enum
11520func AcceleratorStatus_Values() []string {
11521	return []string{
11522		AcceleratorStatusDeployed,
11523		AcceleratorStatusInProgress,
11524	}
11525}
11526
11527const (
11528	// ByoipCidrStatePendingProvisioning is a ByoipCidrState enum value
11529	ByoipCidrStatePendingProvisioning = "PENDING_PROVISIONING"
11530
11531	// ByoipCidrStateReady is a ByoipCidrState enum value
11532	ByoipCidrStateReady = "READY"
11533
11534	// ByoipCidrStatePendingAdvertising is a ByoipCidrState enum value
11535	ByoipCidrStatePendingAdvertising = "PENDING_ADVERTISING"
11536
11537	// ByoipCidrStateAdvertising is a ByoipCidrState enum value
11538	ByoipCidrStateAdvertising = "ADVERTISING"
11539
11540	// ByoipCidrStatePendingWithdrawing is a ByoipCidrState enum value
11541	ByoipCidrStatePendingWithdrawing = "PENDING_WITHDRAWING"
11542
11543	// ByoipCidrStatePendingDeprovisioning is a ByoipCidrState enum value
11544	ByoipCidrStatePendingDeprovisioning = "PENDING_DEPROVISIONING"
11545
11546	// ByoipCidrStateDeprovisioned is a ByoipCidrState enum value
11547	ByoipCidrStateDeprovisioned = "DEPROVISIONED"
11548
11549	// ByoipCidrStateFailedProvision is a ByoipCidrState enum value
11550	ByoipCidrStateFailedProvision = "FAILED_PROVISION"
11551
11552	// ByoipCidrStateFailedAdvertising is a ByoipCidrState enum value
11553	ByoipCidrStateFailedAdvertising = "FAILED_ADVERTISING"
11554
11555	// ByoipCidrStateFailedWithdraw is a ByoipCidrState enum value
11556	ByoipCidrStateFailedWithdraw = "FAILED_WITHDRAW"
11557
11558	// ByoipCidrStateFailedDeprovision is a ByoipCidrState enum value
11559	ByoipCidrStateFailedDeprovision = "FAILED_DEPROVISION"
11560)
11561
11562// ByoipCidrState_Values returns all elements of the ByoipCidrState enum
11563func ByoipCidrState_Values() []string {
11564	return []string{
11565		ByoipCidrStatePendingProvisioning,
11566		ByoipCidrStateReady,
11567		ByoipCidrStatePendingAdvertising,
11568		ByoipCidrStateAdvertising,
11569		ByoipCidrStatePendingWithdrawing,
11570		ByoipCidrStatePendingDeprovisioning,
11571		ByoipCidrStateDeprovisioned,
11572		ByoipCidrStateFailedProvision,
11573		ByoipCidrStateFailedAdvertising,
11574		ByoipCidrStateFailedWithdraw,
11575		ByoipCidrStateFailedDeprovision,
11576	}
11577}
11578
11579const (
11580	// ClientAffinityNone is a ClientAffinity enum value
11581	ClientAffinityNone = "NONE"
11582
11583	// ClientAffinitySourceIp is a ClientAffinity enum value
11584	ClientAffinitySourceIp = "SOURCE_IP"
11585)
11586
11587// ClientAffinity_Values returns all elements of the ClientAffinity enum
11588func ClientAffinity_Values() []string {
11589	return []string{
11590		ClientAffinityNone,
11591		ClientAffinitySourceIp,
11592	}
11593}
11594
11595const (
11596	// CustomRoutingAcceleratorStatusDeployed is a CustomRoutingAcceleratorStatus enum value
11597	CustomRoutingAcceleratorStatusDeployed = "DEPLOYED"
11598
11599	// CustomRoutingAcceleratorStatusInProgress is a CustomRoutingAcceleratorStatus enum value
11600	CustomRoutingAcceleratorStatusInProgress = "IN_PROGRESS"
11601)
11602
11603// CustomRoutingAcceleratorStatus_Values returns all elements of the CustomRoutingAcceleratorStatus enum
11604func CustomRoutingAcceleratorStatus_Values() []string {
11605	return []string{
11606		CustomRoutingAcceleratorStatusDeployed,
11607		CustomRoutingAcceleratorStatusInProgress,
11608	}
11609}
11610
11611const (
11612	// CustomRoutingDestinationTrafficStateAllow is a CustomRoutingDestinationTrafficState enum value
11613	CustomRoutingDestinationTrafficStateAllow = "ALLOW"
11614
11615	// CustomRoutingDestinationTrafficStateDeny is a CustomRoutingDestinationTrafficState enum value
11616	CustomRoutingDestinationTrafficStateDeny = "DENY"
11617)
11618
11619// CustomRoutingDestinationTrafficState_Values returns all elements of the CustomRoutingDestinationTrafficState enum
11620func CustomRoutingDestinationTrafficState_Values() []string {
11621	return []string{
11622		CustomRoutingDestinationTrafficStateAllow,
11623		CustomRoutingDestinationTrafficStateDeny,
11624	}
11625}
11626
11627const (
11628	// CustomRoutingProtocolTcp is a CustomRoutingProtocol enum value
11629	CustomRoutingProtocolTcp = "TCP"
11630
11631	// CustomRoutingProtocolUdp is a CustomRoutingProtocol enum value
11632	CustomRoutingProtocolUdp = "UDP"
11633)
11634
11635// CustomRoutingProtocol_Values returns all elements of the CustomRoutingProtocol enum
11636func CustomRoutingProtocol_Values() []string {
11637	return []string{
11638		CustomRoutingProtocolTcp,
11639		CustomRoutingProtocolUdp,
11640	}
11641}
11642
11643const (
11644	// HealthCheckProtocolTcp is a HealthCheckProtocol enum value
11645	HealthCheckProtocolTcp = "TCP"
11646
11647	// HealthCheckProtocolHttp is a HealthCheckProtocol enum value
11648	HealthCheckProtocolHttp = "HTTP"
11649
11650	// HealthCheckProtocolHttps is a HealthCheckProtocol enum value
11651	HealthCheckProtocolHttps = "HTTPS"
11652)
11653
11654// HealthCheckProtocol_Values returns all elements of the HealthCheckProtocol enum
11655func HealthCheckProtocol_Values() []string {
11656	return []string{
11657		HealthCheckProtocolTcp,
11658		HealthCheckProtocolHttp,
11659		HealthCheckProtocolHttps,
11660	}
11661}
11662
11663const (
11664	// HealthStateInitial is a HealthState enum value
11665	HealthStateInitial = "INITIAL"
11666
11667	// HealthStateHealthy is a HealthState enum value
11668	HealthStateHealthy = "HEALTHY"
11669
11670	// HealthStateUnhealthy is a HealthState enum value
11671	HealthStateUnhealthy = "UNHEALTHY"
11672)
11673
11674// HealthState_Values returns all elements of the HealthState enum
11675func HealthState_Values() []string {
11676	return []string{
11677		HealthStateInitial,
11678		HealthStateHealthy,
11679		HealthStateUnhealthy,
11680	}
11681}
11682
11683const (
11684	// IpAddressTypeIpv4 is a IpAddressType enum value
11685	IpAddressTypeIpv4 = "IPV4"
11686)
11687
11688// IpAddressType_Values returns all elements of the IpAddressType enum
11689func IpAddressType_Values() []string {
11690	return []string{
11691		IpAddressTypeIpv4,
11692	}
11693}
11694
11695const (
11696	// ProtocolTcp is a Protocol enum value
11697	ProtocolTcp = "TCP"
11698
11699	// ProtocolUdp is a Protocol enum value
11700	ProtocolUdp = "UDP"
11701)
11702
11703// Protocol_Values returns all elements of the Protocol enum
11704func Protocol_Values() []string {
11705	return []string{
11706		ProtocolTcp,
11707		ProtocolUdp,
11708	}
11709}
11710