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