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 opAdvertiseByoipCidr = "AdvertiseByoipCidr"
17
18// AdvertiseByoipCidrRequest generates a "aws/request.Request" representing the
19// client's request for the AdvertiseByoipCidr 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 AdvertiseByoipCidr for more information on using the AdvertiseByoipCidr
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 AdvertiseByoipCidrRequest method.
34//    req, resp := client.AdvertiseByoipCidrRequest(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/AdvertiseByoipCidr
42func (c *GlobalAccelerator) AdvertiseByoipCidrRequest(input *AdvertiseByoipCidrInput) (req *request.Request, output *AdvertiseByoipCidrOutput) {
43	op := &request.Operation{
44		Name:       opAdvertiseByoipCidr,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AdvertiseByoipCidrInput{}
51	}
52
53	output = &AdvertiseByoipCidrOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AdvertiseByoipCidr API operation for AWS Global Accelerator.
59//
60// Advertises an IPv4 address range that is provisioned for use with your AWS
61// resources through bring your own IP addresses (BYOIP). It can take a few
62// minutes before traffic to the specified addresses starts routing to AWS because
63// of propagation delays. To see an AWS CLI example of advertising an address
64// range, scroll down to Example.
65//
66// To stop advertising the BYOIP address range, use WithdrawByoipCidr (https://docs.aws.amazon.com/global-accelerator/latest/api/WithdrawByoipCidr.html).
67//
68// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
69// in the AWS Global Accelerator Developer Guide.
70//
71// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
72// with awserr.Error's Code and Message methods to get detailed information about
73// the error.
74//
75// See the AWS API reference guide for AWS Global Accelerator's
76// API operation AdvertiseByoipCidr for usage and error information.
77//
78// Returned Error Types:
79//   * InternalServiceErrorException
80//   There was an internal error for AWS Global Accelerator.
81//
82//   * InvalidArgumentException
83//   An argument that you specified is invalid.
84//
85//   * AccessDeniedException
86//   You don't have access permission.
87//
88//   * ByoipCidrNotFoundException
89//   The CIDR that you specified was not found or is incorrect.
90//
91//   * IncorrectCidrStateException
92//   The CIDR that you specified is not valid for this action. For example, the
93//   state of the CIDR might be incorrect for this action.
94//
95// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/AdvertiseByoipCidr
96func (c *GlobalAccelerator) AdvertiseByoipCidr(input *AdvertiseByoipCidrInput) (*AdvertiseByoipCidrOutput, error) {
97	req, out := c.AdvertiseByoipCidrRequest(input)
98	return out, req.Send()
99}
100
101// AdvertiseByoipCidrWithContext is the same as AdvertiseByoipCidr with the addition of
102// the ability to pass a context and additional request options.
103//
104// See AdvertiseByoipCidr for details on how to use this API operation.
105//
106// The context must be non-nil and will be used for request cancellation. If
107// the context is nil a panic will occur. In the future the SDK may create
108// sub-contexts for http.Requests. See https://golang.org/pkg/context/
109// for more information on using Contexts.
110func (c *GlobalAccelerator) AdvertiseByoipCidrWithContext(ctx aws.Context, input *AdvertiseByoipCidrInput, opts ...request.Option) (*AdvertiseByoipCidrOutput, error) {
111	req, out := c.AdvertiseByoipCidrRequest(input)
112	req.SetContext(ctx)
113	req.ApplyOptions(opts...)
114	return out, req.Send()
115}
116
117const opCreateAccelerator = "CreateAccelerator"
118
119// CreateAcceleratorRequest generates a "aws/request.Request" representing the
120// client's request for the CreateAccelerator operation. The "output" return
121// value will be populated with the request's response once the request completes
122// successfully.
123//
124// Use "Send" method on the returned Request to send the API call to the service.
125// the "output" return value is not valid until after Send returns without error.
126//
127// See CreateAccelerator for more information on using the CreateAccelerator
128// API call, and error handling.
129//
130// This method is useful when you want to inject custom logic or configuration
131// into the SDK's request lifecycle. Such as custom headers, or retry logic.
132//
133//
134//    // Example sending a request using the CreateAcceleratorRequest method.
135//    req, resp := client.CreateAcceleratorRequest(params)
136//
137//    err := req.Send()
138//    if err == nil { // resp is now filled
139//        fmt.Println(resp)
140//    }
141//
142// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateAccelerator
143func (c *GlobalAccelerator) CreateAcceleratorRequest(input *CreateAcceleratorInput) (req *request.Request, output *CreateAcceleratorOutput) {
144	op := &request.Operation{
145		Name:       opCreateAccelerator,
146		HTTPMethod: "POST",
147		HTTPPath:   "/",
148	}
149
150	if input == nil {
151		input = &CreateAcceleratorInput{}
152	}
153
154	output = &CreateAcceleratorOutput{}
155	req = c.newRequest(op, input, output)
156	return
157}
158
159// CreateAccelerator API operation for AWS Global Accelerator.
160//
161// Create an accelerator. An accelerator includes one or more listeners that
162// process inbound connections and direct traffic to one or more endpoint groups,
163// each of which includes endpoints, such as Network Load Balancers. To see
164// an AWS CLI example of creating an accelerator, scroll down to Example.
165//
166// If you bring your own IP address ranges to AWS Global Accelerator (BYOIP),
167// you can assign IP addresses from your own pool to your accelerator as the
168// static IP address entry points. Only one IP address from each of your IP
169// address ranges can be used for each accelerator.
170//
171// You must specify the US West (Oregon) Region to create or update accelerators.
172//
173// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
174// with awserr.Error's Code and Message methods to get detailed information about
175// the error.
176//
177// See the AWS API reference guide for AWS Global Accelerator's
178// API operation CreateAccelerator for usage and error information.
179//
180// Returned Error Types:
181//   * InternalServiceErrorException
182//   There was an internal error for AWS Global Accelerator.
183//
184//   * InvalidArgumentException
185//   An argument that you specified is invalid.
186//
187//   * LimitExceededException
188//   Processing your request would cause you to exceed an AWS Global Accelerator
189//   limit.
190//
191// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateAccelerator
192func (c *GlobalAccelerator) CreateAccelerator(input *CreateAcceleratorInput) (*CreateAcceleratorOutput, error) {
193	req, out := c.CreateAcceleratorRequest(input)
194	return out, req.Send()
195}
196
197// CreateAcceleratorWithContext is the same as CreateAccelerator with the addition of
198// the ability to pass a context and additional request options.
199//
200// See CreateAccelerator for details on how to use this API operation.
201//
202// The context must be non-nil and will be used for request cancellation. If
203// the context is nil a panic will occur. In the future the SDK may create
204// sub-contexts for http.Requests. See https://golang.org/pkg/context/
205// for more information on using Contexts.
206func (c *GlobalAccelerator) CreateAcceleratorWithContext(ctx aws.Context, input *CreateAcceleratorInput, opts ...request.Option) (*CreateAcceleratorOutput, error) {
207	req, out := c.CreateAcceleratorRequest(input)
208	req.SetContext(ctx)
209	req.ApplyOptions(opts...)
210	return out, req.Send()
211}
212
213const opCreateEndpointGroup = "CreateEndpointGroup"
214
215// CreateEndpointGroupRequest generates a "aws/request.Request" representing the
216// client's request for the CreateEndpointGroup operation. The "output" return
217// value will be populated with the request's response once the request completes
218// successfully.
219//
220// Use "Send" method on the returned Request to send the API call to the service.
221// the "output" return value is not valid until after Send returns without error.
222//
223// See CreateEndpointGroup for more information on using the CreateEndpointGroup
224// API call, and error handling.
225//
226// This method is useful when you want to inject custom logic or configuration
227// into the SDK's request lifecycle. Such as custom headers, or retry logic.
228//
229//
230//    // Example sending a request using the CreateEndpointGroupRequest method.
231//    req, resp := client.CreateEndpointGroupRequest(params)
232//
233//    err := req.Send()
234//    if err == nil { // resp is now filled
235//        fmt.Println(resp)
236//    }
237//
238// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateEndpointGroup
239func (c *GlobalAccelerator) CreateEndpointGroupRequest(input *CreateEndpointGroupInput) (req *request.Request, output *CreateEndpointGroupOutput) {
240	op := &request.Operation{
241		Name:       opCreateEndpointGroup,
242		HTTPMethod: "POST",
243		HTTPPath:   "/",
244	}
245
246	if input == nil {
247		input = &CreateEndpointGroupInput{}
248	}
249
250	output = &CreateEndpointGroupOutput{}
251	req = c.newRequest(op, input, output)
252	return
253}
254
255// CreateEndpointGroup API operation for AWS Global Accelerator.
256//
257// Create an endpoint group for the specified listener. An endpoint group is
258// a collection of endpoints in one AWS Region. To see an AWS CLI example of
259// creating an endpoint group, scroll down to Example.
260//
261// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
262// with awserr.Error's Code and Message methods to get detailed information about
263// the error.
264//
265// See the AWS API reference guide for AWS Global Accelerator's
266// API operation CreateEndpointGroup for usage and error information.
267//
268// Returned Error Types:
269//   * AcceleratorNotFoundException
270//   The accelerator that you specified doesn't exist.
271//
272//   * EndpointGroupAlreadyExistsException
273//   The endpoint group that you specified already exists.
274//
275//   * ListenerNotFoundException
276//   The listener that you specified doesn't exist.
277//
278//   * InternalServiceErrorException
279//   There was an internal error for AWS Global Accelerator.
280//
281//   * InvalidArgumentException
282//   An argument that you specified is invalid.
283//
284//   * LimitExceededException
285//   Processing your request would cause you to exceed an AWS Global Accelerator
286//   limit.
287//
288//   * AccessDeniedException
289//   You don't have access permission.
290//
291// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateEndpointGroup
292func (c *GlobalAccelerator) CreateEndpointGroup(input *CreateEndpointGroupInput) (*CreateEndpointGroupOutput, error) {
293	req, out := c.CreateEndpointGroupRequest(input)
294	return out, req.Send()
295}
296
297// CreateEndpointGroupWithContext is the same as CreateEndpointGroup with the addition of
298// the ability to pass a context and additional request options.
299//
300// See CreateEndpointGroup for details on how to use this API operation.
301//
302// The context must be non-nil and will be used for request cancellation. If
303// the context is nil a panic will occur. In the future the SDK may create
304// sub-contexts for http.Requests. See https://golang.org/pkg/context/
305// for more information on using Contexts.
306func (c *GlobalAccelerator) CreateEndpointGroupWithContext(ctx aws.Context, input *CreateEndpointGroupInput, opts ...request.Option) (*CreateEndpointGroupOutput, error) {
307	req, out := c.CreateEndpointGroupRequest(input)
308	req.SetContext(ctx)
309	req.ApplyOptions(opts...)
310	return out, req.Send()
311}
312
313const opCreateListener = "CreateListener"
314
315// CreateListenerRequest generates a "aws/request.Request" representing the
316// client's request for the CreateListener operation. The "output" return
317// value will be populated with the request's response once the request completes
318// successfully.
319//
320// Use "Send" method on the returned Request to send the API call to the service.
321// the "output" return value is not valid until after Send returns without error.
322//
323// See CreateListener for more information on using the CreateListener
324// API call, and error handling.
325//
326// This method is useful when you want to inject custom logic or configuration
327// into the SDK's request lifecycle. Such as custom headers, or retry logic.
328//
329//
330//    // Example sending a request using the CreateListenerRequest method.
331//    req, resp := client.CreateListenerRequest(params)
332//
333//    err := req.Send()
334//    if err == nil { // resp is now filled
335//        fmt.Println(resp)
336//    }
337//
338// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateListener
339func (c *GlobalAccelerator) CreateListenerRequest(input *CreateListenerInput) (req *request.Request, output *CreateListenerOutput) {
340	op := &request.Operation{
341		Name:       opCreateListener,
342		HTTPMethod: "POST",
343		HTTPPath:   "/",
344	}
345
346	if input == nil {
347		input = &CreateListenerInput{}
348	}
349
350	output = &CreateListenerOutput{}
351	req = c.newRequest(op, input, output)
352	return
353}
354
355// CreateListener API operation for AWS Global Accelerator.
356//
357// Create a listener to process inbound connections from clients to an accelerator.
358// Connections arrive to assigned static IP addresses on a port, port range,
359// or list of port ranges that you specify. To see an AWS CLI example of creating
360// a listener, scroll down to Example.
361//
362// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
363// with awserr.Error's Code and Message methods to get detailed information about
364// the error.
365//
366// See the AWS API reference guide for AWS Global Accelerator's
367// API operation CreateListener for usage and error information.
368//
369// Returned Error Types:
370//   * InvalidArgumentException
371//   An argument that you specified is invalid.
372//
373//   * AcceleratorNotFoundException
374//   The accelerator that you specified doesn't exist.
375//
376//   * InvalidPortRangeException
377//   The port numbers that you specified are not valid numbers or are not unique
378//   for this accelerator.
379//
380//   * InternalServiceErrorException
381//   There was an internal error for AWS Global Accelerator.
382//
383//   * LimitExceededException
384//   Processing your request would cause you to exceed an AWS Global Accelerator
385//   limit.
386//
387// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CreateListener
388func (c *GlobalAccelerator) CreateListener(input *CreateListenerInput) (*CreateListenerOutput, error) {
389	req, out := c.CreateListenerRequest(input)
390	return out, req.Send()
391}
392
393// CreateListenerWithContext is the same as CreateListener with the addition of
394// the ability to pass a context and additional request options.
395//
396// See CreateListener for details on how to use this API operation.
397//
398// The context must be non-nil and will be used for request cancellation. If
399// the context is nil a panic will occur. In the future the SDK may create
400// sub-contexts for http.Requests. See https://golang.org/pkg/context/
401// for more information on using Contexts.
402func (c *GlobalAccelerator) CreateListenerWithContext(ctx aws.Context, input *CreateListenerInput, opts ...request.Option) (*CreateListenerOutput, error) {
403	req, out := c.CreateListenerRequest(input)
404	req.SetContext(ctx)
405	req.ApplyOptions(opts...)
406	return out, req.Send()
407}
408
409const opDeleteAccelerator = "DeleteAccelerator"
410
411// DeleteAcceleratorRequest generates a "aws/request.Request" representing the
412// client's request for the DeleteAccelerator operation. The "output" return
413// value will be populated with the request's response once the request completes
414// successfully.
415//
416// Use "Send" method on the returned Request to send the API call to the service.
417// the "output" return value is not valid until after Send returns without error.
418//
419// See DeleteAccelerator for more information on using the DeleteAccelerator
420// API call, and error handling.
421//
422// This method is useful when you want to inject custom logic or configuration
423// into the SDK's request lifecycle. Such as custom headers, or retry logic.
424//
425//
426//    // Example sending a request using the DeleteAcceleratorRequest method.
427//    req, resp := client.DeleteAcceleratorRequest(params)
428//
429//    err := req.Send()
430//    if err == nil { // resp is now filled
431//        fmt.Println(resp)
432//    }
433//
434// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteAccelerator
435func (c *GlobalAccelerator) DeleteAcceleratorRequest(input *DeleteAcceleratorInput) (req *request.Request, output *DeleteAcceleratorOutput) {
436	op := &request.Operation{
437		Name:       opDeleteAccelerator,
438		HTTPMethod: "POST",
439		HTTPPath:   "/",
440	}
441
442	if input == nil {
443		input = &DeleteAcceleratorInput{}
444	}
445
446	output = &DeleteAcceleratorOutput{}
447	req = c.newRequest(op, input, output)
448	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
449	return
450}
451
452// DeleteAccelerator API operation for AWS Global Accelerator.
453//
454// Delete an accelerator. Before you can delete an accelerator, you must disable
455// it and remove all dependent resources (listeners and endpoint groups). To
456// disable the accelerator, update the accelerator to set Enabled to false.
457//
458// When you create an accelerator, by default, Global Accelerator provides you
459// with a set of two static IP addresses. Alternatively, you can bring your
460// own IP address ranges to Global Accelerator and assign IP addresses from
461// those ranges.
462//
463// The IP addresses are assigned to your accelerator for as long as it exists,
464// even if you disable the accelerator and it no longer accepts or routes traffic.
465// However, when you delete an accelerator, you lose the static IP addresses
466// that are assigned to the accelerator, so you can no longer route traffic
467// by using them. As a best practice, ensure that you have permissions in place
468// to avoid inadvertently deleting accelerators. You can use IAM policies with
469// Global Accelerator to limit the users who have permissions to delete an accelerator.
470// For more information, see Authentication and Access Control (https://docs.aws.amazon.com/global-accelerator/latest/dg/auth-and-access-control.html)
471// in the AWS Global Accelerator Developer Guide.
472//
473// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
474// with awserr.Error's Code and Message methods to get detailed information about
475// the error.
476//
477// See the AWS API reference guide for AWS Global Accelerator's
478// API operation DeleteAccelerator for usage and error information.
479//
480// Returned Error Types:
481//   * AcceleratorNotFoundException
482//   The accelerator that you specified doesn't exist.
483//
484//   * AcceleratorNotDisabledException
485//   The accelerator that you specified could not be disabled.
486//
487//   * AssociatedListenerFoundException
488//   The accelerator that you specified has a listener associated with it. You
489//   must remove all dependent resources from an accelerator before you can delete
490//   it.
491//
492//   * InternalServiceErrorException
493//   There was an internal error for AWS Global Accelerator.
494//
495//   * InvalidArgumentException
496//   An argument that you specified is invalid.
497//
498// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteAccelerator
499func (c *GlobalAccelerator) DeleteAccelerator(input *DeleteAcceleratorInput) (*DeleteAcceleratorOutput, error) {
500	req, out := c.DeleteAcceleratorRequest(input)
501	return out, req.Send()
502}
503
504// DeleteAcceleratorWithContext is the same as DeleteAccelerator with the addition of
505// the ability to pass a context and additional request options.
506//
507// See DeleteAccelerator for details on how to use this API operation.
508//
509// The context must be non-nil and will be used for request cancellation. If
510// the context is nil a panic will occur. In the future the SDK may create
511// sub-contexts for http.Requests. See https://golang.org/pkg/context/
512// for more information on using Contexts.
513func (c *GlobalAccelerator) DeleteAcceleratorWithContext(ctx aws.Context, input *DeleteAcceleratorInput, opts ...request.Option) (*DeleteAcceleratorOutput, error) {
514	req, out := c.DeleteAcceleratorRequest(input)
515	req.SetContext(ctx)
516	req.ApplyOptions(opts...)
517	return out, req.Send()
518}
519
520const opDeleteEndpointGroup = "DeleteEndpointGroup"
521
522// DeleteEndpointGroupRequest generates a "aws/request.Request" representing the
523// client's request for the DeleteEndpointGroup operation. The "output" return
524// value will be populated with the request's response once the request completes
525// successfully.
526//
527// Use "Send" method on the returned Request to send the API call to the service.
528// the "output" return value is not valid until after Send returns without error.
529//
530// See DeleteEndpointGroup for more information on using the DeleteEndpointGroup
531// API call, and error handling.
532//
533// This method is useful when you want to inject custom logic or configuration
534// into the SDK's request lifecycle. Such as custom headers, or retry logic.
535//
536//
537//    // Example sending a request using the DeleteEndpointGroupRequest method.
538//    req, resp := client.DeleteEndpointGroupRequest(params)
539//
540//    err := req.Send()
541//    if err == nil { // resp is now filled
542//        fmt.Println(resp)
543//    }
544//
545// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteEndpointGroup
546func (c *GlobalAccelerator) DeleteEndpointGroupRequest(input *DeleteEndpointGroupInput) (req *request.Request, output *DeleteEndpointGroupOutput) {
547	op := &request.Operation{
548		Name:       opDeleteEndpointGroup,
549		HTTPMethod: "POST",
550		HTTPPath:   "/",
551	}
552
553	if input == nil {
554		input = &DeleteEndpointGroupInput{}
555	}
556
557	output = &DeleteEndpointGroupOutput{}
558	req = c.newRequest(op, input, output)
559	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
560	return
561}
562
563// DeleteEndpointGroup API operation for AWS Global Accelerator.
564//
565// Delete an endpoint group from a listener.
566//
567// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
568// with awserr.Error's Code and Message methods to get detailed information about
569// the error.
570//
571// See the AWS API reference guide for AWS Global Accelerator's
572// API operation DeleteEndpointGroup for usage and error information.
573//
574// Returned Error Types:
575//   * InvalidArgumentException
576//   An argument that you specified is invalid.
577//
578//   * EndpointGroupNotFoundException
579//   The endpoint group that you specified doesn't exist.
580//
581//   * InternalServiceErrorException
582//   There was an internal error for AWS Global Accelerator.
583//
584// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteEndpointGroup
585func (c *GlobalAccelerator) DeleteEndpointGroup(input *DeleteEndpointGroupInput) (*DeleteEndpointGroupOutput, error) {
586	req, out := c.DeleteEndpointGroupRequest(input)
587	return out, req.Send()
588}
589
590// DeleteEndpointGroupWithContext is the same as DeleteEndpointGroup with the addition of
591// the ability to pass a context and additional request options.
592//
593// See DeleteEndpointGroup for details on how to use this API operation.
594//
595// The context must be non-nil and will be used for request cancellation. If
596// the context is nil a panic will occur. In the future the SDK may create
597// sub-contexts for http.Requests. See https://golang.org/pkg/context/
598// for more information on using Contexts.
599func (c *GlobalAccelerator) DeleteEndpointGroupWithContext(ctx aws.Context, input *DeleteEndpointGroupInput, opts ...request.Option) (*DeleteEndpointGroupOutput, error) {
600	req, out := c.DeleteEndpointGroupRequest(input)
601	req.SetContext(ctx)
602	req.ApplyOptions(opts...)
603	return out, req.Send()
604}
605
606const opDeleteListener = "DeleteListener"
607
608// DeleteListenerRequest generates a "aws/request.Request" representing the
609// client's request for the DeleteListener operation. The "output" return
610// value will be populated with the request's response once the request completes
611// successfully.
612//
613// Use "Send" method on the returned Request to send the API call to the service.
614// the "output" return value is not valid until after Send returns without error.
615//
616// See DeleteListener for more information on using the DeleteListener
617// API call, and error handling.
618//
619// This method is useful when you want to inject custom logic or configuration
620// into the SDK's request lifecycle. Such as custom headers, or retry logic.
621//
622//
623//    // Example sending a request using the DeleteListenerRequest method.
624//    req, resp := client.DeleteListenerRequest(params)
625//
626//    err := req.Send()
627//    if err == nil { // resp is now filled
628//        fmt.Println(resp)
629//    }
630//
631// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteListener
632func (c *GlobalAccelerator) DeleteListenerRequest(input *DeleteListenerInput) (req *request.Request, output *DeleteListenerOutput) {
633	op := &request.Operation{
634		Name:       opDeleteListener,
635		HTTPMethod: "POST",
636		HTTPPath:   "/",
637	}
638
639	if input == nil {
640		input = &DeleteListenerInput{}
641	}
642
643	output = &DeleteListenerOutput{}
644	req = c.newRequest(op, input, output)
645	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
646	return
647}
648
649// DeleteListener API operation for AWS Global Accelerator.
650//
651// Delete a listener from an accelerator.
652//
653// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
654// with awserr.Error's Code and Message methods to get detailed information about
655// the error.
656//
657// See the AWS API reference guide for AWS Global Accelerator's
658// API operation DeleteListener for usage and error information.
659//
660// Returned Error Types:
661//   * InvalidArgumentException
662//   An argument that you specified is invalid.
663//
664//   * ListenerNotFoundException
665//   The listener that you specified doesn't exist.
666//
667//   * AssociatedEndpointGroupFoundException
668//   The listener that you specified has an endpoint group associated with it.
669//   You must remove all dependent resources from a listener before you can delete
670//   it.
671//
672//   * InternalServiceErrorException
673//   There was an internal error for AWS Global Accelerator.
674//
675// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeleteListener
676func (c *GlobalAccelerator) DeleteListener(input *DeleteListenerInput) (*DeleteListenerOutput, error) {
677	req, out := c.DeleteListenerRequest(input)
678	return out, req.Send()
679}
680
681// DeleteListenerWithContext is the same as DeleteListener with the addition of
682// the ability to pass a context and additional request options.
683//
684// See DeleteListener for details on how to use this API operation.
685//
686// The context must be non-nil and will be used for request cancellation. If
687// the context is nil a panic will occur. In the future the SDK may create
688// sub-contexts for http.Requests. See https://golang.org/pkg/context/
689// for more information on using Contexts.
690func (c *GlobalAccelerator) DeleteListenerWithContext(ctx aws.Context, input *DeleteListenerInput, opts ...request.Option) (*DeleteListenerOutput, error) {
691	req, out := c.DeleteListenerRequest(input)
692	req.SetContext(ctx)
693	req.ApplyOptions(opts...)
694	return out, req.Send()
695}
696
697const opDeprovisionByoipCidr = "DeprovisionByoipCidr"
698
699// DeprovisionByoipCidrRequest generates a "aws/request.Request" representing the
700// client's request for the DeprovisionByoipCidr operation. The "output" return
701// value will be populated with the request's response once the request completes
702// successfully.
703//
704// Use "Send" method on the returned Request to send the API call to the service.
705// the "output" return value is not valid until after Send returns without error.
706//
707// See DeprovisionByoipCidr for more information on using the DeprovisionByoipCidr
708// API call, and error handling.
709//
710// This method is useful when you want to inject custom logic or configuration
711// into the SDK's request lifecycle. Such as custom headers, or retry logic.
712//
713//
714//    // Example sending a request using the DeprovisionByoipCidrRequest method.
715//    req, resp := client.DeprovisionByoipCidrRequest(params)
716//
717//    err := req.Send()
718//    if err == nil { // resp is now filled
719//        fmt.Println(resp)
720//    }
721//
722// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeprovisionByoipCidr
723func (c *GlobalAccelerator) DeprovisionByoipCidrRequest(input *DeprovisionByoipCidrInput) (req *request.Request, output *DeprovisionByoipCidrOutput) {
724	op := &request.Operation{
725		Name:       opDeprovisionByoipCidr,
726		HTTPMethod: "POST",
727		HTTPPath:   "/",
728	}
729
730	if input == nil {
731		input = &DeprovisionByoipCidrInput{}
732	}
733
734	output = &DeprovisionByoipCidrOutput{}
735	req = c.newRequest(op, input, output)
736	return
737}
738
739// DeprovisionByoipCidr API operation for AWS Global Accelerator.
740//
741// Releases the specified address range that you provisioned to use with your
742// AWS resources through bring your own IP addresses (BYOIP) and deletes the
743// corresponding address pool. To see an AWS CLI example of deprovisioning an
744// address range, scroll down to Example.
745//
746// Before you can release an address range, you must stop advertising it by
747// using WithdrawByoipCidr (https://docs.aws.amazon.com/global-accelerator/latest/api/WithdrawByoipCidr.html)
748// and you must not have any accelerators that are using static IP addresses
749// allocated from its address range.
750//
751// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
752// in the AWS Global Accelerator Developer Guide.
753//
754// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
755// with awserr.Error's Code and Message methods to get detailed information about
756// the error.
757//
758// See the AWS API reference guide for AWS Global Accelerator's
759// API operation DeprovisionByoipCidr for usage and error information.
760//
761// Returned Error Types:
762//   * InternalServiceErrorException
763//   There was an internal error for AWS Global Accelerator.
764//
765//   * InvalidArgumentException
766//   An argument that you specified is invalid.
767//
768//   * AccessDeniedException
769//   You don't have access permission.
770//
771//   * ByoipCidrNotFoundException
772//   The CIDR that you specified was not found or is incorrect.
773//
774//   * IncorrectCidrStateException
775//   The CIDR that you specified is not valid for this action. For example, the
776//   state of the CIDR might be incorrect for this action.
777//
778// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DeprovisionByoipCidr
779func (c *GlobalAccelerator) DeprovisionByoipCidr(input *DeprovisionByoipCidrInput) (*DeprovisionByoipCidrOutput, error) {
780	req, out := c.DeprovisionByoipCidrRequest(input)
781	return out, req.Send()
782}
783
784// DeprovisionByoipCidrWithContext is the same as DeprovisionByoipCidr with the addition of
785// the ability to pass a context and additional request options.
786//
787// See DeprovisionByoipCidr for details on how to use this API operation.
788//
789// The context must be non-nil and will be used for request cancellation. If
790// the context is nil a panic will occur. In the future the SDK may create
791// sub-contexts for http.Requests. See https://golang.org/pkg/context/
792// for more information on using Contexts.
793func (c *GlobalAccelerator) DeprovisionByoipCidrWithContext(ctx aws.Context, input *DeprovisionByoipCidrInput, opts ...request.Option) (*DeprovisionByoipCidrOutput, error) {
794	req, out := c.DeprovisionByoipCidrRequest(input)
795	req.SetContext(ctx)
796	req.ApplyOptions(opts...)
797	return out, req.Send()
798}
799
800const opDescribeAccelerator = "DescribeAccelerator"
801
802// DescribeAcceleratorRequest generates a "aws/request.Request" representing the
803// client's request for the DescribeAccelerator operation. The "output" return
804// value will be populated with the request's response once the request completes
805// successfully.
806//
807// Use "Send" method on the returned Request to send the API call to the service.
808// the "output" return value is not valid until after Send returns without error.
809//
810// See DescribeAccelerator for more information on using the DescribeAccelerator
811// API call, and error handling.
812//
813// This method is useful when you want to inject custom logic or configuration
814// into the SDK's request lifecycle. Such as custom headers, or retry logic.
815//
816//
817//    // Example sending a request using the DescribeAcceleratorRequest method.
818//    req, resp := client.DescribeAcceleratorRequest(params)
819//
820//    err := req.Send()
821//    if err == nil { // resp is now filled
822//        fmt.Println(resp)
823//    }
824//
825// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeAccelerator
826func (c *GlobalAccelerator) DescribeAcceleratorRequest(input *DescribeAcceleratorInput) (req *request.Request, output *DescribeAcceleratorOutput) {
827	op := &request.Operation{
828		Name:       opDescribeAccelerator,
829		HTTPMethod: "POST",
830		HTTPPath:   "/",
831	}
832
833	if input == nil {
834		input = &DescribeAcceleratorInput{}
835	}
836
837	output = &DescribeAcceleratorOutput{}
838	req = c.newRequest(op, input, output)
839	return
840}
841
842// DescribeAccelerator API operation for AWS Global Accelerator.
843//
844// Describe an accelerator. To see an AWS CLI example of describing an accelerator,
845// scroll down to Example.
846//
847// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
848// with awserr.Error's Code and Message methods to get detailed information about
849// the error.
850//
851// See the AWS API reference guide for AWS Global Accelerator's
852// API operation DescribeAccelerator for usage and error information.
853//
854// Returned Error Types:
855//   * AcceleratorNotFoundException
856//   The accelerator that you specified doesn't exist.
857//
858//   * InternalServiceErrorException
859//   There was an internal error for AWS Global Accelerator.
860//
861//   * InvalidArgumentException
862//   An argument that you specified is invalid.
863//
864// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeAccelerator
865func (c *GlobalAccelerator) DescribeAccelerator(input *DescribeAcceleratorInput) (*DescribeAcceleratorOutput, error) {
866	req, out := c.DescribeAcceleratorRequest(input)
867	return out, req.Send()
868}
869
870// DescribeAcceleratorWithContext is the same as DescribeAccelerator with the addition of
871// the ability to pass a context and additional request options.
872//
873// See DescribeAccelerator for details on how to use this API operation.
874//
875// The context must be non-nil and will be used for request cancellation. If
876// the context is nil a panic will occur. In the future the SDK may create
877// sub-contexts for http.Requests. See https://golang.org/pkg/context/
878// for more information on using Contexts.
879func (c *GlobalAccelerator) DescribeAcceleratorWithContext(ctx aws.Context, input *DescribeAcceleratorInput, opts ...request.Option) (*DescribeAcceleratorOutput, error) {
880	req, out := c.DescribeAcceleratorRequest(input)
881	req.SetContext(ctx)
882	req.ApplyOptions(opts...)
883	return out, req.Send()
884}
885
886const opDescribeAcceleratorAttributes = "DescribeAcceleratorAttributes"
887
888// DescribeAcceleratorAttributesRequest generates a "aws/request.Request" representing the
889// client's request for the DescribeAcceleratorAttributes operation. The "output" return
890// value will be populated with the request's response once the request completes
891// successfully.
892//
893// Use "Send" method on the returned Request to send the API call to the service.
894// the "output" return value is not valid until after Send returns without error.
895//
896// See DescribeAcceleratorAttributes for more information on using the DescribeAcceleratorAttributes
897// API call, and error handling.
898//
899// This method is useful when you want to inject custom logic or configuration
900// into the SDK's request lifecycle. Such as custom headers, or retry logic.
901//
902//
903//    // Example sending a request using the DescribeAcceleratorAttributesRequest method.
904//    req, resp := client.DescribeAcceleratorAttributesRequest(params)
905//
906//    err := req.Send()
907//    if err == nil { // resp is now filled
908//        fmt.Println(resp)
909//    }
910//
911// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeAcceleratorAttributes
912func (c *GlobalAccelerator) DescribeAcceleratorAttributesRequest(input *DescribeAcceleratorAttributesInput) (req *request.Request, output *DescribeAcceleratorAttributesOutput) {
913	op := &request.Operation{
914		Name:       opDescribeAcceleratorAttributes,
915		HTTPMethod: "POST",
916		HTTPPath:   "/",
917	}
918
919	if input == nil {
920		input = &DescribeAcceleratorAttributesInput{}
921	}
922
923	output = &DescribeAcceleratorAttributesOutput{}
924	req = c.newRequest(op, input, output)
925	return
926}
927
928// DescribeAcceleratorAttributes API operation for AWS Global Accelerator.
929//
930// Describe the attributes of an accelerator. To see an AWS CLI example of describing
931// the attributes of an accelerator, scroll down to Example.
932//
933// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
934// with awserr.Error's Code and Message methods to get detailed information about
935// the error.
936//
937// See the AWS API reference guide for AWS Global Accelerator's
938// API operation DescribeAcceleratorAttributes for usage and error information.
939//
940// Returned Error Types:
941//   * AcceleratorNotFoundException
942//   The accelerator that you specified doesn't exist.
943//
944//   * InternalServiceErrorException
945//   There was an internal error for AWS Global Accelerator.
946//
947//   * InvalidArgumentException
948//   An argument that you specified is invalid.
949//
950// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeAcceleratorAttributes
951func (c *GlobalAccelerator) DescribeAcceleratorAttributes(input *DescribeAcceleratorAttributesInput) (*DescribeAcceleratorAttributesOutput, error) {
952	req, out := c.DescribeAcceleratorAttributesRequest(input)
953	return out, req.Send()
954}
955
956// DescribeAcceleratorAttributesWithContext is the same as DescribeAcceleratorAttributes with the addition of
957// the ability to pass a context and additional request options.
958//
959// See DescribeAcceleratorAttributes for details on how to use this API operation.
960//
961// The context must be non-nil and will be used for request cancellation. If
962// the context is nil a panic will occur. In the future the SDK may create
963// sub-contexts for http.Requests. See https://golang.org/pkg/context/
964// for more information on using Contexts.
965func (c *GlobalAccelerator) DescribeAcceleratorAttributesWithContext(ctx aws.Context, input *DescribeAcceleratorAttributesInput, opts ...request.Option) (*DescribeAcceleratorAttributesOutput, error) {
966	req, out := c.DescribeAcceleratorAttributesRequest(input)
967	req.SetContext(ctx)
968	req.ApplyOptions(opts...)
969	return out, req.Send()
970}
971
972const opDescribeEndpointGroup = "DescribeEndpointGroup"
973
974// DescribeEndpointGroupRequest generates a "aws/request.Request" representing the
975// client's request for the DescribeEndpointGroup operation. The "output" return
976// value will be populated with the request's response once the request completes
977// successfully.
978//
979// Use "Send" method on the returned Request to send the API call to the service.
980// the "output" return value is not valid until after Send returns without error.
981//
982// See DescribeEndpointGroup for more information on using the DescribeEndpointGroup
983// API call, and error handling.
984//
985// This method is useful when you want to inject custom logic or configuration
986// into the SDK's request lifecycle. Such as custom headers, or retry logic.
987//
988//
989//    // Example sending a request using the DescribeEndpointGroupRequest method.
990//    req, resp := client.DescribeEndpointGroupRequest(params)
991//
992//    err := req.Send()
993//    if err == nil { // resp is now filled
994//        fmt.Println(resp)
995//    }
996//
997// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeEndpointGroup
998func (c *GlobalAccelerator) DescribeEndpointGroupRequest(input *DescribeEndpointGroupInput) (req *request.Request, output *DescribeEndpointGroupOutput) {
999	op := &request.Operation{
1000		Name:       opDescribeEndpointGroup,
1001		HTTPMethod: "POST",
1002		HTTPPath:   "/",
1003	}
1004
1005	if input == nil {
1006		input = &DescribeEndpointGroupInput{}
1007	}
1008
1009	output = &DescribeEndpointGroupOutput{}
1010	req = c.newRequest(op, input, output)
1011	return
1012}
1013
1014// DescribeEndpointGroup API operation for AWS Global Accelerator.
1015//
1016// Describe an endpoint group.
1017//
1018// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1019// with awserr.Error's Code and Message methods to get detailed information about
1020// the error.
1021//
1022// See the AWS API reference guide for AWS Global Accelerator's
1023// API operation DescribeEndpointGroup for usage and error information.
1024//
1025// Returned Error Types:
1026//   * InvalidArgumentException
1027//   An argument that you specified is invalid.
1028//
1029//   * EndpointGroupNotFoundException
1030//   The endpoint group that you specified doesn't exist.
1031//
1032//   * InternalServiceErrorException
1033//   There was an internal error for AWS Global Accelerator.
1034//
1035// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeEndpointGroup
1036func (c *GlobalAccelerator) DescribeEndpointGroup(input *DescribeEndpointGroupInput) (*DescribeEndpointGroupOutput, error) {
1037	req, out := c.DescribeEndpointGroupRequest(input)
1038	return out, req.Send()
1039}
1040
1041// DescribeEndpointGroupWithContext is the same as DescribeEndpointGroup with the addition of
1042// the ability to pass a context and additional request options.
1043//
1044// See DescribeEndpointGroup for details on how to use this API operation.
1045//
1046// The context must be non-nil and will be used for request cancellation. If
1047// the context is nil a panic will occur. In the future the SDK may create
1048// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1049// for more information on using Contexts.
1050func (c *GlobalAccelerator) DescribeEndpointGroupWithContext(ctx aws.Context, input *DescribeEndpointGroupInput, opts ...request.Option) (*DescribeEndpointGroupOutput, error) {
1051	req, out := c.DescribeEndpointGroupRequest(input)
1052	req.SetContext(ctx)
1053	req.ApplyOptions(opts...)
1054	return out, req.Send()
1055}
1056
1057const opDescribeListener = "DescribeListener"
1058
1059// DescribeListenerRequest generates a "aws/request.Request" representing the
1060// client's request for the DescribeListener operation. The "output" return
1061// value will be populated with the request's response once the request completes
1062// successfully.
1063//
1064// Use "Send" method on the returned Request to send the API call to the service.
1065// the "output" return value is not valid until after Send returns without error.
1066//
1067// See DescribeListener for more information on using the DescribeListener
1068// API call, and error handling.
1069//
1070// This method is useful when you want to inject custom logic or configuration
1071// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1072//
1073//
1074//    // Example sending a request using the DescribeListenerRequest method.
1075//    req, resp := client.DescribeListenerRequest(params)
1076//
1077//    err := req.Send()
1078//    if err == nil { // resp is now filled
1079//        fmt.Println(resp)
1080//    }
1081//
1082// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeListener
1083func (c *GlobalAccelerator) DescribeListenerRequest(input *DescribeListenerInput) (req *request.Request, output *DescribeListenerOutput) {
1084	op := &request.Operation{
1085		Name:       opDescribeListener,
1086		HTTPMethod: "POST",
1087		HTTPPath:   "/",
1088	}
1089
1090	if input == nil {
1091		input = &DescribeListenerInput{}
1092	}
1093
1094	output = &DescribeListenerOutput{}
1095	req = c.newRequest(op, input, output)
1096	return
1097}
1098
1099// DescribeListener API operation for AWS Global Accelerator.
1100//
1101// Describe a listener. To see an AWS CLI example of describing a listener,
1102// scroll down to Example.
1103//
1104// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1105// with awserr.Error's Code and Message methods to get detailed information about
1106// the error.
1107//
1108// See the AWS API reference guide for AWS Global Accelerator's
1109// API operation DescribeListener for usage and error information.
1110//
1111// Returned Error Types:
1112//   * InvalidArgumentException
1113//   An argument that you specified is invalid.
1114//
1115//   * ListenerNotFoundException
1116//   The listener that you specified doesn't exist.
1117//
1118//   * InternalServiceErrorException
1119//   There was an internal error for AWS Global Accelerator.
1120//
1121// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/DescribeListener
1122func (c *GlobalAccelerator) DescribeListener(input *DescribeListenerInput) (*DescribeListenerOutput, error) {
1123	req, out := c.DescribeListenerRequest(input)
1124	return out, req.Send()
1125}
1126
1127// DescribeListenerWithContext is the same as DescribeListener with the addition of
1128// the ability to pass a context and additional request options.
1129//
1130// See DescribeListener for details on how to use this API operation.
1131//
1132// The context must be non-nil and will be used for request cancellation. If
1133// the context is nil a panic will occur. In the future the SDK may create
1134// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1135// for more information on using Contexts.
1136func (c *GlobalAccelerator) DescribeListenerWithContext(ctx aws.Context, input *DescribeListenerInput, opts ...request.Option) (*DescribeListenerOutput, error) {
1137	req, out := c.DescribeListenerRequest(input)
1138	req.SetContext(ctx)
1139	req.ApplyOptions(opts...)
1140	return out, req.Send()
1141}
1142
1143const opListAccelerators = "ListAccelerators"
1144
1145// ListAcceleratorsRequest generates a "aws/request.Request" representing the
1146// client's request for the ListAccelerators operation. The "output" return
1147// value will be populated with the request's response once the request completes
1148// successfully.
1149//
1150// Use "Send" method on the returned Request to send the API call to the service.
1151// the "output" return value is not valid until after Send returns without error.
1152//
1153// See ListAccelerators for more information on using the ListAccelerators
1154// API call, and error handling.
1155//
1156// This method is useful when you want to inject custom logic or configuration
1157// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1158//
1159//
1160//    // Example sending a request using the ListAcceleratorsRequest method.
1161//    req, resp := client.ListAcceleratorsRequest(params)
1162//
1163//    err := req.Send()
1164//    if err == nil { // resp is now filled
1165//        fmt.Println(resp)
1166//    }
1167//
1168// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListAccelerators
1169func (c *GlobalAccelerator) ListAcceleratorsRequest(input *ListAcceleratorsInput) (req *request.Request, output *ListAcceleratorsOutput) {
1170	op := &request.Operation{
1171		Name:       opListAccelerators,
1172		HTTPMethod: "POST",
1173		HTTPPath:   "/",
1174	}
1175
1176	if input == nil {
1177		input = &ListAcceleratorsInput{}
1178	}
1179
1180	output = &ListAcceleratorsOutput{}
1181	req = c.newRequest(op, input, output)
1182	return
1183}
1184
1185// ListAccelerators API operation for AWS Global Accelerator.
1186//
1187// List the accelerators for an AWS account. To see an AWS CLI example of listing
1188// the accelerators for an AWS account, scroll down to Example.
1189//
1190// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1191// with awserr.Error's Code and Message methods to get detailed information about
1192// the error.
1193//
1194// See the AWS API reference guide for AWS Global Accelerator's
1195// API operation ListAccelerators for usage and error information.
1196//
1197// Returned Error Types:
1198//   * InvalidArgumentException
1199//   An argument that you specified is invalid.
1200//
1201//   * InvalidNextTokenException
1202//   There isn't another item to return.
1203//
1204//   * InternalServiceErrorException
1205//   There was an internal error for AWS Global Accelerator.
1206//
1207// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListAccelerators
1208func (c *GlobalAccelerator) ListAccelerators(input *ListAcceleratorsInput) (*ListAcceleratorsOutput, error) {
1209	req, out := c.ListAcceleratorsRequest(input)
1210	return out, req.Send()
1211}
1212
1213// ListAcceleratorsWithContext is the same as ListAccelerators with the addition of
1214// the ability to pass a context and additional request options.
1215//
1216// See ListAccelerators for details on how to use this API operation.
1217//
1218// The context must be non-nil and will be used for request cancellation. If
1219// the context is nil a panic will occur. In the future the SDK may create
1220// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1221// for more information on using Contexts.
1222func (c *GlobalAccelerator) ListAcceleratorsWithContext(ctx aws.Context, input *ListAcceleratorsInput, opts ...request.Option) (*ListAcceleratorsOutput, error) {
1223	req, out := c.ListAcceleratorsRequest(input)
1224	req.SetContext(ctx)
1225	req.ApplyOptions(opts...)
1226	return out, req.Send()
1227}
1228
1229const opListByoipCidrs = "ListByoipCidrs"
1230
1231// ListByoipCidrsRequest generates a "aws/request.Request" representing the
1232// client's request for the ListByoipCidrs operation. The "output" return
1233// value will be populated with the request's response once the request completes
1234// successfully.
1235//
1236// Use "Send" method on the returned Request to send the API call to the service.
1237// the "output" return value is not valid until after Send returns without error.
1238//
1239// See ListByoipCidrs for more information on using the ListByoipCidrs
1240// API call, and error handling.
1241//
1242// This method is useful when you want to inject custom logic or configuration
1243// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1244//
1245//
1246//    // Example sending a request using the ListByoipCidrsRequest method.
1247//    req, resp := client.ListByoipCidrsRequest(params)
1248//
1249//    err := req.Send()
1250//    if err == nil { // resp is now filled
1251//        fmt.Println(resp)
1252//    }
1253//
1254// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListByoipCidrs
1255func (c *GlobalAccelerator) ListByoipCidrsRequest(input *ListByoipCidrsInput) (req *request.Request, output *ListByoipCidrsOutput) {
1256	op := &request.Operation{
1257		Name:       opListByoipCidrs,
1258		HTTPMethod: "POST",
1259		HTTPPath:   "/",
1260	}
1261
1262	if input == nil {
1263		input = &ListByoipCidrsInput{}
1264	}
1265
1266	output = &ListByoipCidrsOutput{}
1267	req = c.newRequest(op, input, output)
1268	return
1269}
1270
1271// ListByoipCidrs API operation for AWS Global Accelerator.
1272//
1273// Lists the IP address ranges that were specified in calls to ProvisionByoipCidr
1274// (https://docs.aws.amazon.com/global-accelerator/latest/api/ProvisionByoipCidr.html).
1275//
1276// To see an AWS CLI example of listing BYOIP CIDR addresses, scroll down to
1277// Example.
1278//
1279// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1280// with awserr.Error's Code and Message methods to get detailed information about
1281// the error.
1282//
1283// See the AWS API reference guide for AWS Global Accelerator's
1284// API operation ListByoipCidrs for usage and error information.
1285//
1286// Returned Error Types:
1287//   * InternalServiceErrorException
1288//   There was an internal error for AWS Global Accelerator.
1289//
1290//   * InvalidArgumentException
1291//   An argument that you specified is invalid.
1292//
1293//   * AccessDeniedException
1294//   You don't have access permission.
1295//
1296//   * InvalidNextTokenException
1297//   There isn't another item to return.
1298//
1299// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListByoipCidrs
1300func (c *GlobalAccelerator) ListByoipCidrs(input *ListByoipCidrsInput) (*ListByoipCidrsOutput, error) {
1301	req, out := c.ListByoipCidrsRequest(input)
1302	return out, req.Send()
1303}
1304
1305// ListByoipCidrsWithContext is the same as ListByoipCidrs with the addition of
1306// the ability to pass a context and additional request options.
1307//
1308// See ListByoipCidrs for details on how to use this API operation.
1309//
1310// The context must be non-nil and will be used for request cancellation. If
1311// the context is nil a panic will occur. In the future the SDK may create
1312// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1313// for more information on using Contexts.
1314func (c *GlobalAccelerator) ListByoipCidrsWithContext(ctx aws.Context, input *ListByoipCidrsInput, opts ...request.Option) (*ListByoipCidrsOutput, error) {
1315	req, out := c.ListByoipCidrsRequest(input)
1316	req.SetContext(ctx)
1317	req.ApplyOptions(opts...)
1318	return out, req.Send()
1319}
1320
1321const opListEndpointGroups = "ListEndpointGroups"
1322
1323// ListEndpointGroupsRequest generates a "aws/request.Request" representing the
1324// client's request for the ListEndpointGroups operation. The "output" return
1325// value will be populated with the request's response once the request completes
1326// successfully.
1327//
1328// Use "Send" method on the returned Request to send the API call to the service.
1329// the "output" return value is not valid until after Send returns without error.
1330//
1331// See ListEndpointGroups for more information on using the ListEndpointGroups
1332// API call, and error handling.
1333//
1334// This method is useful when you want to inject custom logic or configuration
1335// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1336//
1337//
1338//    // Example sending a request using the ListEndpointGroupsRequest method.
1339//    req, resp := client.ListEndpointGroupsRequest(params)
1340//
1341//    err := req.Send()
1342//    if err == nil { // resp is now filled
1343//        fmt.Println(resp)
1344//    }
1345//
1346// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListEndpointGroups
1347func (c *GlobalAccelerator) ListEndpointGroupsRequest(input *ListEndpointGroupsInput) (req *request.Request, output *ListEndpointGroupsOutput) {
1348	op := &request.Operation{
1349		Name:       opListEndpointGroups,
1350		HTTPMethod: "POST",
1351		HTTPPath:   "/",
1352	}
1353
1354	if input == nil {
1355		input = &ListEndpointGroupsInput{}
1356	}
1357
1358	output = &ListEndpointGroupsOutput{}
1359	req = c.newRequest(op, input, output)
1360	return
1361}
1362
1363// ListEndpointGroups API operation for AWS Global Accelerator.
1364//
1365// List the endpoint groups that are associated with a listener. To see an AWS
1366// CLI example of listing the endpoint groups for listener, scroll down to Example.
1367//
1368// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1369// with awserr.Error's Code and Message methods to get detailed information about
1370// the error.
1371//
1372// See the AWS API reference guide for AWS Global Accelerator's
1373// API operation ListEndpointGroups for usage and error information.
1374//
1375// Returned Error Types:
1376//   * ListenerNotFoundException
1377//   The listener that you specified doesn't exist.
1378//
1379//   * InvalidNextTokenException
1380//   There isn't another item to return.
1381//
1382//   * InvalidArgumentException
1383//   An argument that you specified is invalid.
1384//
1385//   * InternalServiceErrorException
1386//   There was an internal error for AWS Global Accelerator.
1387//
1388// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListEndpointGroups
1389func (c *GlobalAccelerator) ListEndpointGroups(input *ListEndpointGroupsInput) (*ListEndpointGroupsOutput, error) {
1390	req, out := c.ListEndpointGroupsRequest(input)
1391	return out, req.Send()
1392}
1393
1394// ListEndpointGroupsWithContext is the same as ListEndpointGroups with the addition of
1395// the ability to pass a context and additional request options.
1396//
1397// See ListEndpointGroups for details on how to use this API operation.
1398//
1399// The context must be non-nil and will be used for request cancellation. If
1400// the context is nil a panic will occur. In the future the SDK may create
1401// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1402// for more information on using Contexts.
1403func (c *GlobalAccelerator) ListEndpointGroupsWithContext(ctx aws.Context, input *ListEndpointGroupsInput, opts ...request.Option) (*ListEndpointGroupsOutput, error) {
1404	req, out := c.ListEndpointGroupsRequest(input)
1405	req.SetContext(ctx)
1406	req.ApplyOptions(opts...)
1407	return out, req.Send()
1408}
1409
1410const opListListeners = "ListListeners"
1411
1412// ListListenersRequest generates a "aws/request.Request" representing the
1413// client's request for the ListListeners operation. The "output" return
1414// value will be populated with the request's response once the request completes
1415// successfully.
1416//
1417// Use "Send" method on the returned Request to send the API call to the service.
1418// the "output" return value is not valid until after Send returns without error.
1419//
1420// See ListListeners for more information on using the ListListeners
1421// API call, and error handling.
1422//
1423// This method is useful when you want to inject custom logic or configuration
1424// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1425//
1426//
1427//    // Example sending a request using the ListListenersRequest method.
1428//    req, resp := client.ListListenersRequest(params)
1429//
1430//    err := req.Send()
1431//    if err == nil { // resp is now filled
1432//        fmt.Println(resp)
1433//    }
1434//
1435// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListListeners
1436func (c *GlobalAccelerator) ListListenersRequest(input *ListListenersInput) (req *request.Request, output *ListListenersOutput) {
1437	op := &request.Operation{
1438		Name:       opListListeners,
1439		HTTPMethod: "POST",
1440		HTTPPath:   "/",
1441	}
1442
1443	if input == nil {
1444		input = &ListListenersInput{}
1445	}
1446
1447	output = &ListListenersOutput{}
1448	req = c.newRequest(op, input, output)
1449	return
1450}
1451
1452// ListListeners API operation for AWS Global Accelerator.
1453//
1454// List the listeners for an accelerator. To see an AWS CLI example of listing
1455// the listeners for an accelerator, scroll down to Example.
1456//
1457// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1458// with awserr.Error's Code and Message methods to get detailed information about
1459// the error.
1460//
1461// See the AWS API reference guide for AWS Global Accelerator's
1462// API operation ListListeners for usage and error information.
1463//
1464// Returned Error Types:
1465//   * InvalidArgumentException
1466//   An argument that you specified is invalid.
1467//
1468//   * AcceleratorNotFoundException
1469//   The accelerator that you specified doesn't exist.
1470//
1471//   * InvalidNextTokenException
1472//   There isn't another item to return.
1473//
1474//   * InternalServiceErrorException
1475//   There was an internal error for AWS Global Accelerator.
1476//
1477// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListListeners
1478func (c *GlobalAccelerator) ListListeners(input *ListListenersInput) (*ListListenersOutput, error) {
1479	req, out := c.ListListenersRequest(input)
1480	return out, req.Send()
1481}
1482
1483// ListListenersWithContext is the same as ListListeners with the addition of
1484// the ability to pass a context and additional request options.
1485//
1486// See ListListeners for details on how to use this API operation.
1487//
1488// The context must be non-nil and will be used for request cancellation. If
1489// the context is nil a panic will occur. In the future the SDK may create
1490// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1491// for more information on using Contexts.
1492func (c *GlobalAccelerator) ListListenersWithContext(ctx aws.Context, input *ListListenersInput, opts ...request.Option) (*ListListenersOutput, error) {
1493	req, out := c.ListListenersRequest(input)
1494	req.SetContext(ctx)
1495	req.ApplyOptions(opts...)
1496	return out, req.Send()
1497}
1498
1499const opListTagsForResource = "ListTagsForResource"
1500
1501// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1502// client's request for the ListTagsForResource operation. The "output" return
1503// value will be populated with the request's response once the request completes
1504// successfully.
1505//
1506// Use "Send" method on the returned Request to send the API call to the service.
1507// the "output" return value is not valid until after Send returns without error.
1508//
1509// See ListTagsForResource for more information on using the ListTagsForResource
1510// API call, and error handling.
1511//
1512// This method is useful when you want to inject custom logic or configuration
1513// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1514//
1515//
1516//    // Example sending a request using the ListTagsForResourceRequest method.
1517//    req, resp := client.ListTagsForResourceRequest(params)
1518//
1519//    err := req.Send()
1520//    if err == nil { // resp is now filled
1521//        fmt.Println(resp)
1522//    }
1523//
1524// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListTagsForResource
1525func (c *GlobalAccelerator) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1526	op := &request.Operation{
1527		Name:       opListTagsForResource,
1528		HTTPMethod: "POST",
1529		HTTPPath:   "/",
1530	}
1531
1532	if input == nil {
1533		input = &ListTagsForResourceInput{}
1534	}
1535
1536	output = &ListTagsForResourceOutput{}
1537	req = c.newRequest(op, input, output)
1538	return
1539}
1540
1541// ListTagsForResource API operation for AWS Global Accelerator.
1542//
1543// List all tags for an accelerator. To see an AWS CLI example of listing tags
1544// for an accelerator, scroll down to Example.
1545//
1546// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
1547// in the AWS Global Accelerator Developer Guide.
1548//
1549// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1550// with awserr.Error's Code and Message methods to get detailed information about
1551// the error.
1552//
1553// See the AWS API reference guide for AWS Global Accelerator's
1554// API operation ListTagsForResource for usage and error information.
1555//
1556// Returned Error Types:
1557//   * AcceleratorNotFoundException
1558//   The accelerator that you specified doesn't exist.
1559//
1560//   * InternalServiceErrorException
1561//   There was an internal error for AWS Global Accelerator.
1562//
1563//   * InvalidArgumentException
1564//   An argument that you specified is invalid.
1565//
1566// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ListTagsForResource
1567func (c *GlobalAccelerator) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1568	req, out := c.ListTagsForResourceRequest(input)
1569	return out, req.Send()
1570}
1571
1572// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1573// the ability to pass a context and additional request options.
1574//
1575// See ListTagsForResource for details on how to use this API operation.
1576//
1577// The context must be non-nil and will be used for request cancellation. If
1578// the context is nil a panic will occur. In the future the SDK may create
1579// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1580// for more information on using Contexts.
1581func (c *GlobalAccelerator) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1582	req, out := c.ListTagsForResourceRequest(input)
1583	req.SetContext(ctx)
1584	req.ApplyOptions(opts...)
1585	return out, req.Send()
1586}
1587
1588const opProvisionByoipCidr = "ProvisionByoipCidr"
1589
1590// ProvisionByoipCidrRequest generates a "aws/request.Request" representing the
1591// client's request for the ProvisionByoipCidr operation. The "output" return
1592// value will be populated with the request's response once the request completes
1593// successfully.
1594//
1595// Use "Send" method on the returned Request to send the API call to the service.
1596// the "output" return value is not valid until after Send returns without error.
1597//
1598// See ProvisionByoipCidr for more information on using the ProvisionByoipCidr
1599// API call, and error handling.
1600//
1601// This method is useful when you want to inject custom logic or configuration
1602// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1603//
1604//
1605//    // Example sending a request using the ProvisionByoipCidrRequest method.
1606//    req, resp := client.ProvisionByoipCidrRequest(params)
1607//
1608//    err := req.Send()
1609//    if err == nil { // resp is now filled
1610//        fmt.Println(resp)
1611//    }
1612//
1613// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ProvisionByoipCidr
1614func (c *GlobalAccelerator) ProvisionByoipCidrRequest(input *ProvisionByoipCidrInput) (req *request.Request, output *ProvisionByoipCidrOutput) {
1615	op := &request.Operation{
1616		Name:       opProvisionByoipCidr,
1617		HTTPMethod: "POST",
1618		HTTPPath:   "/",
1619	}
1620
1621	if input == nil {
1622		input = &ProvisionByoipCidrInput{}
1623	}
1624
1625	output = &ProvisionByoipCidrOutput{}
1626	req = c.newRequest(op, input, output)
1627	return
1628}
1629
1630// ProvisionByoipCidr API operation for AWS Global Accelerator.
1631//
1632// Provisions an IP address range to use with your AWS resources through bring
1633// your own IP addresses (BYOIP) and creates a corresponding address pool. After
1634// the address range is provisioned, it is ready to be advertised using AdvertiseByoipCidr
1635// (https://docs.aws.amazon.com/global-accelerator/latest/api/AdvertiseByoipCidr.html).
1636//
1637// To see an AWS CLI example of provisioning an address range for BYOIP, scroll
1638// down to Example.
1639//
1640// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
1641// in the AWS Global Accelerator Developer Guide.
1642//
1643// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1644// with awserr.Error's Code and Message methods to get detailed information about
1645// the error.
1646//
1647// See the AWS API reference guide for AWS Global Accelerator's
1648// API operation ProvisionByoipCidr for usage and error information.
1649//
1650// Returned Error Types:
1651//   * InternalServiceErrorException
1652//   There was an internal error for AWS Global Accelerator.
1653//
1654//   * InvalidArgumentException
1655//   An argument that you specified is invalid.
1656//
1657//   * LimitExceededException
1658//   Processing your request would cause you to exceed an AWS Global Accelerator
1659//   limit.
1660//
1661//   * AccessDeniedException
1662//   You don't have access permission.
1663//
1664//   * IncorrectCidrStateException
1665//   The CIDR that you specified is not valid for this action. For example, the
1666//   state of the CIDR might be incorrect for this action.
1667//
1668// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ProvisionByoipCidr
1669func (c *GlobalAccelerator) ProvisionByoipCidr(input *ProvisionByoipCidrInput) (*ProvisionByoipCidrOutput, error) {
1670	req, out := c.ProvisionByoipCidrRequest(input)
1671	return out, req.Send()
1672}
1673
1674// ProvisionByoipCidrWithContext is the same as ProvisionByoipCidr with the addition of
1675// the ability to pass a context and additional request options.
1676//
1677// See ProvisionByoipCidr for details on how to use this API operation.
1678//
1679// The context must be non-nil and will be used for request cancellation. If
1680// the context is nil a panic will occur. In the future the SDK may create
1681// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1682// for more information on using Contexts.
1683func (c *GlobalAccelerator) ProvisionByoipCidrWithContext(ctx aws.Context, input *ProvisionByoipCidrInput, opts ...request.Option) (*ProvisionByoipCidrOutput, error) {
1684	req, out := c.ProvisionByoipCidrRequest(input)
1685	req.SetContext(ctx)
1686	req.ApplyOptions(opts...)
1687	return out, req.Send()
1688}
1689
1690const opTagResource = "TagResource"
1691
1692// TagResourceRequest generates a "aws/request.Request" representing the
1693// client's request for the TagResource operation. The "output" return
1694// value will be populated with the request's response once the request completes
1695// successfully.
1696//
1697// Use "Send" method on the returned Request to send the API call to the service.
1698// the "output" return value is not valid until after Send returns without error.
1699//
1700// See TagResource for more information on using the TagResource
1701// API call, and error handling.
1702//
1703// This method is useful when you want to inject custom logic or configuration
1704// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1705//
1706//
1707//    // Example sending a request using the TagResourceRequest method.
1708//    req, resp := client.TagResourceRequest(params)
1709//
1710//    err := req.Send()
1711//    if err == nil { // resp is now filled
1712//        fmt.Println(resp)
1713//    }
1714//
1715// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/TagResource
1716func (c *GlobalAccelerator) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
1717	op := &request.Operation{
1718		Name:       opTagResource,
1719		HTTPMethod: "POST",
1720		HTTPPath:   "/",
1721	}
1722
1723	if input == nil {
1724		input = &TagResourceInput{}
1725	}
1726
1727	output = &TagResourceOutput{}
1728	req = c.newRequest(op, input, output)
1729	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1730	return
1731}
1732
1733// TagResource API operation for AWS Global Accelerator.
1734//
1735// Add tags to an accelerator resource. To see an AWS CLI example of adding
1736// tags to an accelerator, scroll down to Example.
1737//
1738// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
1739// in the AWS Global Accelerator Developer Guide.
1740//
1741// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1742// with awserr.Error's Code and Message methods to get detailed information about
1743// the error.
1744//
1745// See the AWS API reference guide for AWS Global Accelerator's
1746// API operation TagResource for usage and error information.
1747//
1748// Returned Error Types:
1749//   * AcceleratorNotFoundException
1750//   The accelerator that you specified doesn't exist.
1751//
1752//   * InternalServiceErrorException
1753//   There was an internal error for AWS Global Accelerator.
1754//
1755//   * InvalidArgumentException
1756//   An argument that you specified is invalid.
1757//
1758// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/TagResource
1759func (c *GlobalAccelerator) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
1760	req, out := c.TagResourceRequest(input)
1761	return out, req.Send()
1762}
1763
1764// TagResourceWithContext is the same as TagResource with the addition of
1765// the ability to pass a context and additional request options.
1766//
1767// See TagResource for details on how to use this API operation.
1768//
1769// The context must be non-nil and will be used for request cancellation. If
1770// the context is nil a panic will occur. In the future the SDK may create
1771// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1772// for more information on using Contexts.
1773func (c *GlobalAccelerator) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
1774	req, out := c.TagResourceRequest(input)
1775	req.SetContext(ctx)
1776	req.ApplyOptions(opts...)
1777	return out, req.Send()
1778}
1779
1780const opUntagResource = "UntagResource"
1781
1782// UntagResourceRequest generates a "aws/request.Request" representing the
1783// client's request for the UntagResource operation. The "output" return
1784// value will be populated with the request's response once the request completes
1785// successfully.
1786//
1787// Use "Send" method on the returned Request to send the API call to the service.
1788// the "output" return value is not valid until after Send returns without error.
1789//
1790// See UntagResource for more information on using the UntagResource
1791// API call, and error handling.
1792//
1793// This method is useful when you want to inject custom logic or configuration
1794// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1795//
1796//
1797//    // Example sending a request using the UntagResourceRequest method.
1798//    req, resp := client.UntagResourceRequest(params)
1799//
1800//    err := req.Send()
1801//    if err == nil { // resp is now filled
1802//        fmt.Println(resp)
1803//    }
1804//
1805// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UntagResource
1806func (c *GlobalAccelerator) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
1807	op := &request.Operation{
1808		Name:       opUntagResource,
1809		HTTPMethod: "POST",
1810		HTTPPath:   "/",
1811	}
1812
1813	if input == nil {
1814		input = &UntagResourceInput{}
1815	}
1816
1817	output = &UntagResourceOutput{}
1818	req = c.newRequest(op, input, output)
1819	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1820	return
1821}
1822
1823// UntagResource API operation for AWS Global Accelerator.
1824//
1825// Remove tags from a Global Accelerator resource. When you specify a tag key,
1826// the action removes both that key and its associated value. To see an AWS
1827// CLI example of removing tags from an accelerator, scroll down to Example.
1828// The operation succeeds even if you attempt to remove tags from an accelerator
1829// that was already removed.
1830//
1831// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
1832// in the AWS Global Accelerator Developer Guide.
1833//
1834// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1835// with awserr.Error's Code and Message methods to get detailed information about
1836// the error.
1837//
1838// See the AWS API reference guide for AWS Global Accelerator's
1839// API operation UntagResource for usage and error information.
1840//
1841// Returned Error Types:
1842//   * AcceleratorNotFoundException
1843//   The accelerator that you specified doesn't exist.
1844//
1845//   * InternalServiceErrorException
1846//   There was an internal error for AWS Global Accelerator.
1847//
1848//   * InvalidArgumentException
1849//   An argument that you specified is invalid.
1850//
1851// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UntagResource
1852func (c *GlobalAccelerator) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
1853	req, out := c.UntagResourceRequest(input)
1854	return out, req.Send()
1855}
1856
1857// UntagResourceWithContext is the same as UntagResource with the addition of
1858// the ability to pass a context and additional request options.
1859//
1860// See UntagResource for details on how to use this API operation.
1861//
1862// The context must be non-nil and will be used for request cancellation. If
1863// the context is nil a panic will occur. In the future the SDK may create
1864// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1865// for more information on using Contexts.
1866func (c *GlobalAccelerator) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
1867	req, out := c.UntagResourceRequest(input)
1868	req.SetContext(ctx)
1869	req.ApplyOptions(opts...)
1870	return out, req.Send()
1871}
1872
1873const opUpdateAccelerator = "UpdateAccelerator"
1874
1875// UpdateAcceleratorRequest generates a "aws/request.Request" representing the
1876// client's request for the UpdateAccelerator operation. The "output" return
1877// value will be populated with the request's response once the request completes
1878// successfully.
1879//
1880// Use "Send" method on the returned Request to send the API call to the service.
1881// the "output" return value is not valid until after Send returns without error.
1882//
1883// See UpdateAccelerator for more information on using the UpdateAccelerator
1884// API call, and error handling.
1885//
1886// This method is useful when you want to inject custom logic or configuration
1887// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1888//
1889//
1890//    // Example sending a request using the UpdateAcceleratorRequest method.
1891//    req, resp := client.UpdateAcceleratorRequest(params)
1892//
1893//    err := req.Send()
1894//    if err == nil { // resp is now filled
1895//        fmt.Println(resp)
1896//    }
1897//
1898// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateAccelerator
1899func (c *GlobalAccelerator) UpdateAcceleratorRequest(input *UpdateAcceleratorInput) (req *request.Request, output *UpdateAcceleratorOutput) {
1900	op := &request.Operation{
1901		Name:       opUpdateAccelerator,
1902		HTTPMethod: "POST",
1903		HTTPPath:   "/",
1904	}
1905
1906	if input == nil {
1907		input = &UpdateAcceleratorInput{}
1908	}
1909
1910	output = &UpdateAcceleratorOutput{}
1911	req = c.newRequest(op, input, output)
1912	return
1913}
1914
1915// UpdateAccelerator API operation for AWS Global Accelerator.
1916//
1917// Update an accelerator. To see an AWS CLI example of updating an accelerator,
1918// scroll down to Example.
1919//
1920// You must specify the US West (Oregon) Region to create or update accelerators.
1921//
1922// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1923// with awserr.Error's Code and Message methods to get detailed information about
1924// the error.
1925//
1926// See the AWS API reference guide for AWS Global Accelerator's
1927// API operation UpdateAccelerator for usage and error information.
1928//
1929// Returned Error Types:
1930//   * AcceleratorNotFoundException
1931//   The accelerator that you specified doesn't exist.
1932//
1933//   * InternalServiceErrorException
1934//   There was an internal error for AWS Global Accelerator.
1935//
1936//   * InvalidArgumentException
1937//   An argument that you specified is invalid.
1938//
1939// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateAccelerator
1940func (c *GlobalAccelerator) UpdateAccelerator(input *UpdateAcceleratorInput) (*UpdateAcceleratorOutput, error) {
1941	req, out := c.UpdateAcceleratorRequest(input)
1942	return out, req.Send()
1943}
1944
1945// UpdateAcceleratorWithContext is the same as UpdateAccelerator with the addition of
1946// the ability to pass a context and additional request options.
1947//
1948// See UpdateAccelerator for details on how to use this API operation.
1949//
1950// The context must be non-nil and will be used for request cancellation. If
1951// the context is nil a panic will occur. In the future the SDK may create
1952// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1953// for more information on using Contexts.
1954func (c *GlobalAccelerator) UpdateAcceleratorWithContext(ctx aws.Context, input *UpdateAcceleratorInput, opts ...request.Option) (*UpdateAcceleratorOutput, error) {
1955	req, out := c.UpdateAcceleratorRequest(input)
1956	req.SetContext(ctx)
1957	req.ApplyOptions(opts...)
1958	return out, req.Send()
1959}
1960
1961const opUpdateAcceleratorAttributes = "UpdateAcceleratorAttributes"
1962
1963// UpdateAcceleratorAttributesRequest generates a "aws/request.Request" representing the
1964// client's request for the UpdateAcceleratorAttributes operation. The "output" return
1965// value will be populated with the request's response once the request completes
1966// successfully.
1967//
1968// Use "Send" method on the returned Request to send the API call to the service.
1969// the "output" return value is not valid until after Send returns without error.
1970//
1971// See UpdateAcceleratorAttributes for more information on using the UpdateAcceleratorAttributes
1972// API call, and error handling.
1973//
1974// This method is useful when you want to inject custom logic or configuration
1975// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1976//
1977//
1978//    // Example sending a request using the UpdateAcceleratorAttributesRequest method.
1979//    req, resp := client.UpdateAcceleratorAttributesRequest(params)
1980//
1981//    err := req.Send()
1982//    if err == nil { // resp is now filled
1983//        fmt.Println(resp)
1984//    }
1985//
1986// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateAcceleratorAttributes
1987func (c *GlobalAccelerator) UpdateAcceleratorAttributesRequest(input *UpdateAcceleratorAttributesInput) (req *request.Request, output *UpdateAcceleratorAttributesOutput) {
1988	op := &request.Operation{
1989		Name:       opUpdateAcceleratorAttributes,
1990		HTTPMethod: "POST",
1991		HTTPPath:   "/",
1992	}
1993
1994	if input == nil {
1995		input = &UpdateAcceleratorAttributesInput{}
1996	}
1997
1998	output = &UpdateAcceleratorAttributesOutput{}
1999	req = c.newRequest(op, input, output)
2000	return
2001}
2002
2003// UpdateAcceleratorAttributes API operation for AWS Global Accelerator.
2004//
2005// Update the attributes for an accelerator. To see an AWS CLI example of updating
2006// an accelerator to enable flow logs, scroll down to Example.
2007//
2008// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2009// with awserr.Error's Code and Message methods to get detailed information about
2010// the error.
2011//
2012// See the AWS API reference guide for AWS Global Accelerator's
2013// API operation UpdateAcceleratorAttributes for usage and error information.
2014//
2015// Returned Error Types:
2016//   * AcceleratorNotFoundException
2017//   The accelerator that you specified doesn't exist.
2018//
2019//   * InternalServiceErrorException
2020//   There was an internal error for AWS Global Accelerator.
2021//
2022//   * InvalidArgumentException
2023//   An argument that you specified is invalid.
2024//
2025//   * AccessDeniedException
2026//   You don't have access permission.
2027//
2028// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateAcceleratorAttributes
2029func (c *GlobalAccelerator) UpdateAcceleratorAttributes(input *UpdateAcceleratorAttributesInput) (*UpdateAcceleratorAttributesOutput, error) {
2030	req, out := c.UpdateAcceleratorAttributesRequest(input)
2031	return out, req.Send()
2032}
2033
2034// UpdateAcceleratorAttributesWithContext is the same as UpdateAcceleratorAttributes with the addition of
2035// the ability to pass a context and additional request options.
2036//
2037// See UpdateAcceleratorAttributes for details on how to use this API operation.
2038//
2039// The context must be non-nil and will be used for request cancellation. If
2040// the context is nil a panic will occur. In the future the SDK may create
2041// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2042// for more information on using Contexts.
2043func (c *GlobalAccelerator) UpdateAcceleratorAttributesWithContext(ctx aws.Context, input *UpdateAcceleratorAttributesInput, opts ...request.Option) (*UpdateAcceleratorAttributesOutput, error) {
2044	req, out := c.UpdateAcceleratorAttributesRequest(input)
2045	req.SetContext(ctx)
2046	req.ApplyOptions(opts...)
2047	return out, req.Send()
2048}
2049
2050const opUpdateEndpointGroup = "UpdateEndpointGroup"
2051
2052// UpdateEndpointGroupRequest generates a "aws/request.Request" representing the
2053// client's request for the UpdateEndpointGroup operation. The "output" return
2054// value will be populated with the request's response once the request completes
2055// successfully.
2056//
2057// Use "Send" method on the returned Request to send the API call to the service.
2058// the "output" return value is not valid until after Send returns without error.
2059//
2060// See UpdateEndpointGroup for more information on using the UpdateEndpointGroup
2061// API call, and error handling.
2062//
2063// This method is useful when you want to inject custom logic or configuration
2064// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2065//
2066//
2067//    // Example sending a request using the UpdateEndpointGroupRequest method.
2068//    req, resp := client.UpdateEndpointGroupRequest(params)
2069//
2070//    err := req.Send()
2071//    if err == nil { // resp is now filled
2072//        fmt.Println(resp)
2073//    }
2074//
2075// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateEndpointGroup
2076func (c *GlobalAccelerator) UpdateEndpointGroupRequest(input *UpdateEndpointGroupInput) (req *request.Request, output *UpdateEndpointGroupOutput) {
2077	op := &request.Operation{
2078		Name:       opUpdateEndpointGroup,
2079		HTTPMethod: "POST",
2080		HTTPPath:   "/",
2081	}
2082
2083	if input == nil {
2084		input = &UpdateEndpointGroupInput{}
2085	}
2086
2087	output = &UpdateEndpointGroupOutput{}
2088	req = c.newRequest(op, input, output)
2089	return
2090}
2091
2092// UpdateEndpointGroup API operation for AWS Global Accelerator.
2093//
2094// Update an endpoint group. To see an AWS CLI example of updating an endpoint
2095// group, scroll down to Example.
2096//
2097// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2098// with awserr.Error's Code and Message methods to get detailed information about
2099// the error.
2100//
2101// See the AWS API reference guide for AWS Global Accelerator's
2102// API operation UpdateEndpointGroup for usage and error information.
2103//
2104// Returned Error Types:
2105//   * InvalidArgumentException
2106//   An argument that you specified is invalid.
2107//
2108//   * EndpointGroupNotFoundException
2109//   The endpoint group that you specified doesn't exist.
2110//
2111//   * InternalServiceErrorException
2112//   There was an internal error for AWS Global Accelerator.
2113//
2114//   * LimitExceededException
2115//   Processing your request would cause you to exceed an AWS Global Accelerator
2116//   limit.
2117//
2118//   * AccessDeniedException
2119//   You don't have access permission.
2120//
2121// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateEndpointGroup
2122func (c *GlobalAccelerator) UpdateEndpointGroup(input *UpdateEndpointGroupInput) (*UpdateEndpointGroupOutput, error) {
2123	req, out := c.UpdateEndpointGroupRequest(input)
2124	return out, req.Send()
2125}
2126
2127// UpdateEndpointGroupWithContext is the same as UpdateEndpointGroup with the addition of
2128// the ability to pass a context and additional request options.
2129//
2130// See UpdateEndpointGroup for details on how to use this API operation.
2131//
2132// The context must be non-nil and will be used for request cancellation. If
2133// the context is nil a panic will occur. In the future the SDK may create
2134// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2135// for more information on using Contexts.
2136func (c *GlobalAccelerator) UpdateEndpointGroupWithContext(ctx aws.Context, input *UpdateEndpointGroupInput, opts ...request.Option) (*UpdateEndpointGroupOutput, error) {
2137	req, out := c.UpdateEndpointGroupRequest(input)
2138	req.SetContext(ctx)
2139	req.ApplyOptions(opts...)
2140	return out, req.Send()
2141}
2142
2143const opUpdateListener = "UpdateListener"
2144
2145// UpdateListenerRequest generates a "aws/request.Request" representing the
2146// client's request for the UpdateListener operation. The "output" return
2147// value will be populated with the request's response once the request completes
2148// successfully.
2149//
2150// Use "Send" method on the returned Request to send the API call to the service.
2151// the "output" return value is not valid until after Send returns without error.
2152//
2153// See UpdateListener for more information on using the UpdateListener
2154// API call, and error handling.
2155//
2156// This method is useful when you want to inject custom logic or configuration
2157// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2158//
2159//
2160//    // Example sending a request using the UpdateListenerRequest method.
2161//    req, resp := client.UpdateListenerRequest(params)
2162//
2163//    err := req.Send()
2164//    if err == nil { // resp is now filled
2165//        fmt.Println(resp)
2166//    }
2167//
2168// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateListener
2169func (c *GlobalAccelerator) UpdateListenerRequest(input *UpdateListenerInput) (req *request.Request, output *UpdateListenerOutput) {
2170	op := &request.Operation{
2171		Name:       opUpdateListener,
2172		HTTPMethod: "POST",
2173		HTTPPath:   "/",
2174	}
2175
2176	if input == nil {
2177		input = &UpdateListenerInput{}
2178	}
2179
2180	output = &UpdateListenerOutput{}
2181	req = c.newRequest(op, input, output)
2182	return
2183}
2184
2185// UpdateListener API operation for AWS Global Accelerator.
2186//
2187// Update a listener. To see an AWS CLI example of updating listener, scroll
2188// down to Example.
2189//
2190// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2191// with awserr.Error's Code and Message methods to get detailed information about
2192// the error.
2193//
2194// See the AWS API reference guide for AWS Global Accelerator's
2195// API operation UpdateListener for usage and error information.
2196//
2197// Returned Error Types:
2198//   * InvalidArgumentException
2199//   An argument that you specified is invalid.
2200//
2201//   * InvalidPortRangeException
2202//   The port numbers that you specified are not valid numbers or are not unique
2203//   for this accelerator.
2204//
2205//   * ListenerNotFoundException
2206//   The listener that you specified doesn't exist.
2207//
2208//   * InternalServiceErrorException
2209//   There was an internal error for AWS Global Accelerator.
2210//
2211//   * LimitExceededException
2212//   Processing your request would cause you to exceed an AWS Global Accelerator
2213//   limit.
2214//
2215// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/UpdateListener
2216func (c *GlobalAccelerator) UpdateListener(input *UpdateListenerInput) (*UpdateListenerOutput, error) {
2217	req, out := c.UpdateListenerRequest(input)
2218	return out, req.Send()
2219}
2220
2221// UpdateListenerWithContext is the same as UpdateListener with the addition of
2222// the ability to pass a context and additional request options.
2223//
2224// See UpdateListener for details on how to use this API operation.
2225//
2226// The context must be non-nil and will be used for request cancellation. If
2227// the context is nil a panic will occur. In the future the SDK may create
2228// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2229// for more information on using Contexts.
2230func (c *GlobalAccelerator) UpdateListenerWithContext(ctx aws.Context, input *UpdateListenerInput, opts ...request.Option) (*UpdateListenerOutput, error) {
2231	req, out := c.UpdateListenerRequest(input)
2232	req.SetContext(ctx)
2233	req.ApplyOptions(opts...)
2234	return out, req.Send()
2235}
2236
2237const opWithdrawByoipCidr = "WithdrawByoipCidr"
2238
2239// WithdrawByoipCidrRequest generates a "aws/request.Request" representing the
2240// client's request for the WithdrawByoipCidr operation. The "output" return
2241// value will be populated with the request's response once the request completes
2242// successfully.
2243//
2244// Use "Send" method on the returned Request to send the API call to the service.
2245// the "output" return value is not valid until after Send returns without error.
2246//
2247// See WithdrawByoipCidr for more information on using the WithdrawByoipCidr
2248// API call, and error handling.
2249//
2250// This method is useful when you want to inject custom logic or configuration
2251// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2252//
2253//
2254//    // Example sending a request using the WithdrawByoipCidrRequest method.
2255//    req, resp := client.WithdrawByoipCidrRequest(params)
2256//
2257//    err := req.Send()
2258//    if err == nil { // resp is now filled
2259//        fmt.Println(resp)
2260//    }
2261//
2262// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/WithdrawByoipCidr
2263func (c *GlobalAccelerator) WithdrawByoipCidrRequest(input *WithdrawByoipCidrInput) (req *request.Request, output *WithdrawByoipCidrOutput) {
2264	op := &request.Operation{
2265		Name:       opWithdrawByoipCidr,
2266		HTTPMethod: "POST",
2267		HTTPPath:   "/",
2268	}
2269
2270	if input == nil {
2271		input = &WithdrawByoipCidrInput{}
2272	}
2273
2274	output = &WithdrawByoipCidrOutput{}
2275	req = c.newRequest(op, input, output)
2276	return
2277}
2278
2279// WithdrawByoipCidr API operation for AWS Global Accelerator.
2280//
2281// Stops advertising an address range that is provisioned as an address pool.
2282// You can perform this operation at most once every 10 seconds, even if you
2283// specify different address ranges each time. To see an AWS CLI example of
2284// withdrawing an address range for BYOIP so it will no longer be advertised
2285// by AWS, scroll down to Example.
2286//
2287// It can take a few minutes before traffic to the specified addresses stops
2288// routing to AWS because of propagation delays.
2289//
2290// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
2291// in the AWS Global Accelerator Developer Guide.
2292//
2293// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2294// with awserr.Error's Code and Message methods to get detailed information about
2295// the error.
2296//
2297// See the AWS API reference guide for AWS Global Accelerator's
2298// API operation WithdrawByoipCidr for usage and error information.
2299//
2300// Returned Error Types:
2301//   * InternalServiceErrorException
2302//   There was an internal error for AWS Global Accelerator.
2303//
2304//   * InvalidArgumentException
2305//   An argument that you specified is invalid.
2306//
2307//   * AccessDeniedException
2308//   You don't have access permission.
2309//
2310//   * ByoipCidrNotFoundException
2311//   The CIDR that you specified was not found or is incorrect.
2312//
2313//   * IncorrectCidrStateException
2314//   The CIDR that you specified is not valid for this action. For example, the
2315//   state of the CIDR might be incorrect for this action.
2316//
2317// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/WithdrawByoipCidr
2318func (c *GlobalAccelerator) WithdrawByoipCidr(input *WithdrawByoipCidrInput) (*WithdrawByoipCidrOutput, error) {
2319	req, out := c.WithdrawByoipCidrRequest(input)
2320	return out, req.Send()
2321}
2322
2323// WithdrawByoipCidrWithContext is the same as WithdrawByoipCidr with the addition of
2324// the ability to pass a context and additional request options.
2325//
2326// See WithdrawByoipCidr for details on how to use this API operation.
2327//
2328// The context must be non-nil and will be used for request cancellation. If
2329// the context is nil a panic will occur. In the future the SDK may create
2330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2331// for more information on using Contexts.
2332func (c *GlobalAccelerator) WithdrawByoipCidrWithContext(ctx aws.Context, input *WithdrawByoipCidrInput, opts ...request.Option) (*WithdrawByoipCidrOutput, error) {
2333	req, out := c.WithdrawByoipCidrRequest(input)
2334	req.SetContext(ctx)
2335	req.ApplyOptions(opts...)
2336	return out, req.Send()
2337}
2338
2339// An accelerator is a complex type that includes one or more listeners that
2340// process inbound connections and then direct traffic to one or more endpoint
2341// groups, each of which includes endpoints, such as load balancers.
2342type Accelerator struct {
2343	_ struct{} `type:"structure"`
2344
2345	// The Amazon Resource Name (ARN) of the accelerator.
2346	AcceleratorArn *string `type:"string"`
2347
2348	// The date and time that the accelerator was created.
2349	CreatedTime *time.Time `type:"timestamp"`
2350
2351	// The Domain Name System (DNS) name that Global Accelerator creates that points
2352	// to your accelerator's static IP addresses.
2353	//
2354	// The naming convention for the DNS name is the following: A lowercase letter
2355	// a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com.
2356	// For example: a1234567890abcdef.awsglobalaccelerator.com.
2357	//
2358	// For more information about the default DNS name, see Support for DNS Addressing
2359	// in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing)
2360	// in the AWS Global Accelerator Developer Guide.
2361	DnsName *string `type:"string"`
2362
2363	// Indicates whether the accelerator is enabled. The value is true or false.
2364	// The default value is true.
2365	//
2366	// If the value is set to true, the accelerator cannot be deleted. If set to
2367	// false, accelerator can be deleted.
2368	Enabled *bool `type:"boolean"`
2369
2370	// The value for the address type must be IPv4.
2371	IpAddressType *string `type:"string" enum:"IpAddressType"`
2372
2373	// The static IP addresses that Global Accelerator associates with the accelerator.
2374	IpSets []*IpSet `type:"list"`
2375
2376	// The date and time that the accelerator was last modified.
2377	LastModifiedTime *time.Time `type:"timestamp"`
2378
2379	// The name of the accelerator. The name must contain only alphanumeric characters
2380	// or hyphens (-), and must not begin or end with a hyphen.
2381	Name *string `type:"string"`
2382
2383	// Describes the deployment status of the accelerator.
2384	Status *string `type:"string" enum:"AcceleratorStatus"`
2385}
2386
2387// String returns the string representation
2388func (s Accelerator) String() string {
2389	return awsutil.Prettify(s)
2390}
2391
2392// GoString returns the string representation
2393func (s Accelerator) GoString() string {
2394	return s.String()
2395}
2396
2397// SetAcceleratorArn sets the AcceleratorArn field's value.
2398func (s *Accelerator) SetAcceleratorArn(v string) *Accelerator {
2399	s.AcceleratorArn = &v
2400	return s
2401}
2402
2403// SetCreatedTime sets the CreatedTime field's value.
2404func (s *Accelerator) SetCreatedTime(v time.Time) *Accelerator {
2405	s.CreatedTime = &v
2406	return s
2407}
2408
2409// SetDnsName sets the DnsName field's value.
2410func (s *Accelerator) SetDnsName(v string) *Accelerator {
2411	s.DnsName = &v
2412	return s
2413}
2414
2415// SetEnabled sets the Enabled field's value.
2416func (s *Accelerator) SetEnabled(v bool) *Accelerator {
2417	s.Enabled = &v
2418	return s
2419}
2420
2421// SetIpAddressType sets the IpAddressType field's value.
2422func (s *Accelerator) SetIpAddressType(v string) *Accelerator {
2423	s.IpAddressType = &v
2424	return s
2425}
2426
2427// SetIpSets sets the IpSets field's value.
2428func (s *Accelerator) SetIpSets(v []*IpSet) *Accelerator {
2429	s.IpSets = v
2430	return s
2431}
2432
2433// SetLastModifiedTime sets the LastModifiedTime field's value.
2434func (s *Accelerator) SetLastModifiedTime(v time.Time) *Accelerator {
2435	s.LastModifiedTime = &v
2436	return s
2437}
2438
2439// SetName sets the Name field's value.
2440func (s *Accelerator) SetName(v string) *Accelerator {
2441	s.Name = &v
2442	return s
2443}
2444
2445// SetStatus sets the Status field's value.
2446func (s *Accelerator) SetStatus(v string) *Accelerator {
2447	s.Status = &v
2448	return s
2449}
2450
2451// Attributes of an accelerator.
2452type AcceleratorAttributes struct {
2453	_ struct{} `type:"structure"`
2454
2455	// Indicates whether flow logs are enabled. The default value is false. If the
2456	// value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.
2457	//
2458	// For more information, see Flow Logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html)
2459	// in the AWS Global Accelerator Developer Guide.
2460	FlowLogsEnabled *bool `type:"boolean"`
2461
2462	// The name of the Amazon S3 bucket for the flow logs. Attribute is required
2463	// if FlowLogsEnabled is true. The bucket must exist and have a bucket policy
2464	// that grants AWS Global Accelerator permission to write to the bucket.
2465	FlowLogsS3Bucket *string `type:"string"`
2466
2467	// The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute
2468	// is required if FlowLogsEnabled is true.
2469	//
2470	// If you don’t specify a prefix, the flow logs are stored in the root of
2471	// the bucket. If you specify slash (/) for the S3 bucket prefix, the log file
2472	// bucket folder structure will include a double slash (//), like the following:
2473	//
2474	// s3-bucket_name//AWSLogs/aws_account_id
2475	FlowLogsS3Prefix *string `type:"string"`
2476}
2477
2478// String returns the string representation
2479func (s AcceleratorAttributes) String() string {
2480	return awsutil.Prettify(s)
2481}
2482
2483// GoString returns the string representation
2484func (s AcceleratorAttributes) GoString() string {
2485	return s.String()
2486}
2487
2488// SetFlowLogsEnabled sets the FlowLogsEnabled field's value.
2489func (s *AcceleratorAttributes) SetFlowLogsEnabled(v bool) *AcceleratorAttributes {
2490	s.FlowLogsEnabled = &v
2491	return s
2492}
2493
2494// SetFlowLogsS3Bucket sets the FlowLogsS3Bucket field's value.
2495func (s *AcceleratorAttributes) SetFlowLogsS3Bucket(v string) *AcceleratorAttributes {
2496	s.FlowLogsS3Bucket = &v
2497	return s
2498}
2499
2500// SetFlowLogsS3Prefix sets the FlowLogsS3Prefix field's value.
2501func (s *AcceleratorAttributes) SetFlowLogsS3Prefix(v string) *AcceleratorAttributes {
2502	s.FlowLogsS3Prefix = &v
2503	return s
2504}
2505
2506// The accelerator that you specified could not be disabled.
2507type AcceleratorNotDisabledException struct {
2508	_            struct{} `type:"structure"`
2509	respMetadata protocol.ResponseMetadata
2510
2511	Message_ *string `locationName:"Message" type:"string"`
2512}
2513
2514// String returns the string representation
2515func (s AcceleratorNotDisabledException) String() string {
2516	return awsutil.Prettify(s)
2517}
2518
2519// GoString returns the string representation
2520func (s AcceleratorNotDisabledException) GoString() string {
2521	return s.String()
2522}
2523
2524func newErrorAcceleratorNotDisabledException(v protocol.ResponseMetadata) error {
2525	return &AcceleratorNotDisabledException{
2526		respMetadata: v,
2527	}
2528}
2529
2530// Code returns the exception type name.
2531func (s AcceleratorNotDisabledException) Code() string {
2532	return "AcceleratorNotDisabledException"
2533}
2534
2535// Message returns the exception's message.
2536func (s AcceleratorNotDisabledException) Message() string {
2537	if s.Message_ != nil {
2538		return *s.Message_
2539	}
2540	return ""
2541}
2542
2543// OrigErr always returns nil, satisfies awserr.Error interface.
2544func (s AcceleratorNotDisabledException) OrigErr() error {
2545	return nil
2546}
2547
2548func (s AcceleratorNotDisabledException) Error() string {
2549	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2550}
2551
2552// Status code returns the HTTP status code for the request's response error.
2553func (s AcceleratorNotDisabledException) StatusCode() int {
2554	return s.respMetadata.StatusCode
2555}
2556
2557// RequestID returns the service's response RequestID for request.
2558func (s AcceleratorNotDisabledException) RequestID() string {
2559	return s.respMetadata.RequestID
2560}
2561
2562// The accelerator that you specified doesn't exist.
2563type AcceleratorNotFoundException struct {
2564	_            struct{} `type:"structure"`
2565	respMetadata protocol.ResponseMetadata
2566
2567	Message_ *string `locationName:"Message" type:"string"`
2568}
2569
2570// String returns the string representation
2571func (s AcceleratorNotFoundException) String() string {
2572	return awsutil.Prettify(s)
2573}
2574
2575// GoString returns the string representation
2576func (s AcceleratorNotFoundException) GoString() string {
2577	return s.String()
2578}
2579
2580func newErrorAcceleratorNotFoundException(v protocol.ResponseMetadata) error {
2581	return &AcceleratorNotFoundException{
2582		respMetadata: v,
2583	}
2584}
2585
2586// Code returns the exception type name.
2587func (s AcceleratorNotFoundException) Code() string {
2588	return "AcceleratorNotFoundException"
2589}
2590
2591// Message returns the exception's message.
2592func (s AcceleratorNotFoundException) Message() string {
2593	if s.Message_ != nil {
2594		return *s.Message_
2595	}
2596	return ""
2597}
2598
2599// OrigErr always returns nil, satisfies awserr.Error interface.
2600func (s AcceleratorNotFoundException) OrigErr() error {
2601	return nil
2602}
2603
2604func (s AcceleratorNotFoundException) Error() string {
2605	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2606}
2607
2608// Status code returns the HTTP status code for the request's response error.
2609func (s AcceleratorNotFoundException) StatusCode() int {
2610	return s.respMetadata.StatusCode
2611}
2612
2613// RequestID returns the service's response RequestID for request.
2614func (s AcceleratorNotFoundException) RequestID() string {
2615	return s.respMetadata.RequestID
2616}
2617
2618// You don't have access permission.
2619type AccessDeniedException struct {
2620	_            struct{} `type:"structure"`
2621	respMetadata protocol.ResponseMetadata
2622
2623	Message_ *string `locationName:"Message" type:"string"`
2624}
2625
2626// String returns the string representation
2627func (s AccessDeniedException) String() string {
2628	return awsutil.Prettify(s)
2629}
2630
2631// GoString returns the string representation
2632func (s AccessDeniedException) GoString() string {
2633	return s.String()
2634}
2635
2636func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
2637	return &AccessDeniedException{
2638		respMetadata: v,
2639	}
2640}
2641
2642// Code returns the exception type name.
2643func (s AccessDeniedException) Code() string {
2644	return "AccessDeniedException"
2645}
2646
2647// Message returns the exception's message.
2648func (s AccessDeniedException) Message() string {
2649	if s.Message_ != nil {
2650		return *s.Message_
2651	}
2652	return ""
2653}
2654
2655// OrigErr always returns nil, satisfies awserr.Error interface.
2656func (s AccessDeniedException) OrigErr() error {
2657	return nil
2658}
2659
2660func (s AccessDeniedException) Error() string {
2661	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2662}
2663
2664// Status code returns the HTTP status code for the request's response error.
2665func (s AccessDeniedException) StatusCode() int {
2666	return s.respMetadata.StatusCode
2667}
2668
2669// RequestID returns the service's response RequestID for request.
2670func (s AccessDeniedException) RequestID() string {
2671	return s.respMetadata.RequestID
2672}
2673
2674type AdvertiseByoipCidrInput struct {
2675	_ struct{} `type:"structure"`
2676
2677	// The address range, in CIDR notation. This must be the exact range that you
2678	// provisioned. You can't advertise only a portion of the provisioned range.
2679	//
2680	// Cidr is a required field
2681	Cidr *string `type:"string" required:"true"`
2682}
2683
2684// String returns the string representation
2685func (s AdvertiseByoipCidrInput) String() string {
2686	return awsutil.Prettify(s)
2687}
2688
2689// GoString returns the string representation
2690func (s AdvertiseByoipCidrInput) GoString() string {
2691	return s.String()
2692}
2693
2694// Validate inspects the fields of the type to determine if they are valid.
2695func (s *AdvertiseByoipCidrInput) Validate() error {
2696	invalidParams := request.ErrInvalidParams{Context: "AdvertiseByoipCidrInput"}
2697	if s.Cidr == nil {
2698		invalidParams.Add(request.NewErrParamRequired("Cidr"))
2699	}
2700
2701	if invalidParams.Len() > 0 {
2702		return invalidParams
2703	}
2704	return nil
2705}
2706
2707// SetCidr sets the Cidr field's value.
2708func (s *AdvertiseByoipCidrInput) SetCidr(v string) *AdvertiseByoipCidrInput {
2709	s.Cidr = &v
2710	return s
2711}
2712
2713type AdvertiseByoipCidrOutput struct {
2714	_ struct{} `type:"structure"`
2715
2716	// Information about the address range.
2717	ByoipCidr *ByoipCidr `type:"structure"`
2718}
2719
2720// String returns the string representation
2721func (s AdvertiseByoipCidrOutput) String() string {
2722	return awsutil.Prettify(s)
2723}
2724
2725// GoString returns the string representation
2726func (s AdvertiseByoipCidrOutput) GoString() string {
2727	return s.String()
2728}
2729
2730// SetByoipCidr sets the ByoipCidr field's value.
2731func (s *AdvertiseByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *AdvertiseByoipCidrOutput {
2732	s.ByoipCidr = v
2733	return s
2734}
2735
2736// The listener that you specified has an endpoint group associated with it.
2737// You must remove all dependent resources from a listener before you can delete
2738// it.
2739type AssociatedEndpointGroupFoundException struct {
2740	_            struct{} `type:"structure"`
2741	respMetadata protocol.ResponseMetadata
2742
2743	Message_ *string `locationName:"Message" type:"string"`
2744}
2745
2746// String returns the string representation
2747func (s AssociatedEndpointGroupFoundException) String() string {
2748	return awsutil.Prettify(s)
2749}
2750
2751// GoString returns the string representation
2752func (s AssociatedEndpointGroupFoundException) GoString() string {
2753	return s.String()
2754}
2755
2756func newErrorAssociatedEndpointGroupFoundException(v protocol.ResponseMetadata) error {
2757	return &AssociatedEndpointGroupFoundException{
2758		respMetadata: v,
2759	}
2760}
2761
2762// Code returns the exception type name.
2763func (s AssociatedEndpointGroupFoundException) Code() string {
2764	return "AssociatedEndpointGroupFoundException"
2765}
2766
2767// Message returns the exception's message.
2768func (s AssociatedEndpointGroupFoundException) Message() string {
2769	if s.Message_ != nil {
2770		return *s.Message_
2771	}
2772	return ""
2773}
2774
2775// OrigErr always returns nil, satisfies awserr.Error interface.
2776func (s AssociatedEndpointGroupFoundException) OrigErr() error {
2777	return nil
2778}
2779
2780func (s AssociatedEndpointGroupFoundException) Error() string {
2781	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2782}
2783
2784// Status code returns the HTTP status code for the request's response error.
2785func (s AssociatedEndpointGroupFoundException) StatusCode() int {
2786	return s.respMetadata.StatusCode
2787}
2788
2789// RequestID returns the service's response RequestID for request.
2790func (s AssociatedEndpointGroupFoundException) RequestID() string {
2791	return s.respMetadata.RequestID
2792}
2793
2794// The accelerator that you specified has a listener associated with it. You
2795// must remove all dependent resources from an accelerator before you can delete
2796// it.
2797type AssociatedListenerFoundException struct {
2798	_            struct{} `type:"structure"`
2799	respMetadata protocol.ResponseMetadata
2800
2801	Message_ *string `locationName:"Message" type:"string"`
2802}
2803
2804// String returns the string representation
2805func (s AssociatedListenerFoundException) String() string {
2806	return awsutil.Prettify(s)
2807}
2808
2809// GoString returns the string representation
2810func (s AssociatedListenerFoundException) GoString() string {
2811	return s.String()
2812}
2813
2814func newErrorAssociatedListenerFoundException(v protocol.ResponseMetadata) error {
2815	return &AssociatedListenerFoundException{
2816		respMetadata: v,
2817	}
2818}
2819
2820// Code returns the exception type name.
2821func (s AssociatedListenerFoundException) Code() string {
2822	return "AssociatedListenerFoundException"
2823}
2824
2825// Message returns the exception's message.
2826func (s AssociatedListenerFoundException) Message() string {
2827	if s.Message_ != nil {
2828		return *s.Message_
2829	}
2830	return ""
2831}
2832
2833// OrigErr always returns nil, satisfies awserr.Error interface.
2834func (s AssociatedListenerFoundException) OrigErr() error {
2835	return nil
2836}
2837
2838func (s AssociatedListenerFoundException) Error() string {
2839	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2840}
2841
2842// Status code returns the HTTP status code for the request's response error.
2843func (s AssociatedListenerFoundException) StatusCode() int {
2844	return s.respMetadata.StatusCode
2845}
2846
2847// RequestID returns the service's response RequestID for request.
2848func (s AssociatedListenerFoundException) RequestID() string {
2849	return s.respMetadata.RequestID
2850}
2851
2852// Information about an IP address range that is provisioned for use with your
2853// AWS resources through bring your own IP addresses (BYOIP).
2854//
2855// The following describes each BYOIP State that your IP address range can be
2856// in.
2857//
2858//    * PENDING_PROVISIONING — You’ve submitted a request to provision an
2859//    IP address range but it is not yet provisioned with AWS Global Accelerator.
2860//
2861//    * READY — The address range is provisioned with AWS Global Accelerator
2862//    and can be advertised.
2863//
2864//    * PENDING_ADVERTISING — You’ve submitted a request for AWS Global
2865//    Accelerator to advertise an address range but it is not yet being advertised.
2866//
2867//    * ADVERTISING — The address range is being advertised by AWS Global
2868//    Accelerator.
2869//
2870//    * PENDING_WITHDRAWING — You’ve submitted a request to withdraw an
2871//    address range from being advertised but it is still being advertised by
2872//    AWS Global Accelerator.
2873//
2874//    * PENDING_DEPROVISIONING — You’ve submitted a request to deprovision
2875//    an address range from AWS Global Accelerator but it is still provisioned.
2876//
2877//    * DEPROVISIONED — The address range is deprovisioned from AWS Global
2878//    Accelerator.
2879//
2880//    * FAILED_PROVISION — The request to provision the address range from
2881//    AWS Global Accelerator was not successful. Please make sure that you provide
2882//    all of the correct information, and try again. If the request fails a
2883//    second time, contact AWS support.
2884//
2885//    * FAILED_ADVERTISING — The request for AWS Global Accelerator to advertise
2886//    the address range was not successful. Please make sure that you provide
2887//    all of the correct information, and try again. If the request fails a
2888//    second time, contact AWS support.
2889//
2890//    * FAILED_WITHDRAW — The request to withdraw the address range from advertising
2891//    by AWS Global Accelerator was not successful. Please make sure that you
2892//    provide all of the correct information, and try again. If the request
2893//    fails a second time, contact AWS support.
2894//
2895//    * FAILED_DEPROVISION — The request to deprovision the address range
2896//    from AWS Global Accelerator was not successful. Please make sure that
2897//    you provide all of the correct information, and try again. If the request
2898//    fails a second time, contact AWS support.
2899type ByoipCidr struct {
2900	_ struct{} `type:"structure"`
2901
2902	// The address range, in CIDR notation.
2903	Cidr *string `type:"string"`
2904
2905	// The state of the address pool.
2906	State *string `type:"string" enum:"ByoipCidrState"`
2907}
2908
2909// String returns the string representation
2910func (s ByoipCidr) String() string {
2911	return awsutil.Prettify(s)
2912}
2913
2914// GoString returns the string representation
2915func (s ByoipCidr) GoString() string {
2916	return s.String()
2917}
2918
2919// SetCidr sets the Cidr field's value.
2920func (s *ByoipCidr) SetCidr(v string) *ByoipCidr {
2921	s.Cidr = &v
2922	return s
2923}
2924
2925// SetState sets the State field's value.
2926func (s *ByoipCidr) SetState(v string) *ByoipCidr {
2927	s.State = &v
2928	return s
2929}
2930
2931// The CIDR that you specified was not found or is incorrect.
2932type ByoipCidrNotFoundException struct {
2933	_            struct{} `type:"structure"`
2934	respMetadata protocol.ResponseMetadata
2935
2936	Message_ *string `locationName:"Message" type:"string"`
2937}
2938
2939// String returns the string representation
2940func (s ByoipCidrNotFoundException) String() string {
2941	return awsutil.Prettify(s)
2942}
2943
2944// GoString returns the string representation
2945func (s ByoipCidrNotFoundException) GoString() string {
2946	return s.String()
2947}
2948
2949func newErrorByoipCidrNotFoundException(v protocol.ResponseMetadata) error {
2950	return &ByoipCidrNotFoundException{
2951		respMetadata: v,
2952	}
2953}
2954
2955// Code returns the exception type name.
2956func (s ByoipCidrNotFoundException) Code() string {
2957	return "ByoipCidrNotFoundException"
2958}
2959
2960// Message returns the exception's message.
2961func (s ByoipCidrNotFoundException) Message() string {
2962	if s.Message_ != nil {
2963		return *s.Message_
2964	}
2965	return ""
2966}
2967
2968// OrigErr always returns nil, satisfies awserr.Error interface.
2969func (s ByoipCidrNotFoundException) OrigErr() error {
2970	return nil
2971}
2972
2973func (s ByoipCidrNotFoundException) Error() string {
2974	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2975}
2976
2977// Status code returns the HTTP status code for the request's response error.
2978func (s ByoipCidrNotFoundException) StatusCode() int {
2979	return s.respMetadata.StatusCode
2980}
2981
2982// RequestID returns the service's response RequestID for request.
2983func (s ByoipCidrNotFoundException) RequestID() string {
2984	return s.respMetadata.RequestID
2985}
2986
2987// Provides authorization for Amazon to bring a specific IP address range to
2988// a specific AWS account using bring your own IP addresses (BYOIP).
2989//
2990// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
2991// in the AWS Global Accelerator Developer Guide.
2992type CidrAuthorizationContext struct {
2993	_ struct{} `type:"structure"`
2994
2995	// The plain-text authorization message for the prefix and account.
2996	//
2997	// Message is a required field
2998	Message *string `type:"string" required:"true"`
2999
3000	// The signed authorization message for the prefix and account.
3001	//
3002	// Signature is a required field
3003	Signature *string `type:"string" required:"true"`
3004}
3005
3006// String returns the string representation
3007func (s CidrAuthorizationContext) String() string {
3008	return awsutil.Prettify(s)
3009}
3010
3011// GoString returns the string representation
3012func (s CidrAuthorizationContext) GoString() string {
3013	return s.String()
3014}
3015
3016// Validate inspects the fields of the type to determine if they are valid.
3017func (s *CidrAuthorizationContext) Validate() error {
3018	invalidParams := request.ErrInvalidParams{Context: "CidrAuthorizationContext"}
3019	if s.Message == nil {
3020		invalidParams.Add(request.NewErrParamRequired("Message"))
3021	}
3022	if s.Signature == nil {
3023		invalidParams.Add(request.NewErrParamRequired("Signature"))
3024	}
3025
3026	if invalidParams.Len() > 0 {
3027		return invalidParams
3028	}
3029	return nil
3030}
3031
3032// SetMessage sets the Message field's value.
3033func (s *CidrAuthorizationContext) SetMessage(v string) *CidrAuthorizationContext {
3034	s.Message = &v
3035	return s
3036}
3037
3038// SetSignature sets the Signature field's value.
3039func (s *CidrAuthorizationContext) SetSignature(v string) *CidrAuthorizationContext {
3040	s.Signature = &v
3041	return s
3042}
3043
3044type CreateAcceleratorInput struct {
3045	_ struct{} `type:"structure"`
3046
3047	// Indicates whether an accelerator is enabled. The value is true or false.
3048	// The default value is true.
3049	//
3050	// If the value is set to true, an accelerator cannot be deleted. If set to
3051	// false, the accelerator can be deleted.
3052	Enabled *bool `type:"boolean"`
3053
3054	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
3055	// is, the uniqueness—of an accelerator.
3056	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
3057
3058	// The value for the address type must be IPv4.
3059	IpAddressType *string `type:"string" enum:"IpAddressType"`
3060
3061	// Optionally, if you've added your own IP address pool to Global Accelerator,
3062	// you can choose IP addresses from your own pool to use for the accelerator's
3063	// static IP addresses. You can specify one or two addresses, separated by a
3064	// comma. Do not include the /32 suffix.
3065	//
3066	// If you specify only one IP address from your IP address range, Global Accelerator
3067	// assigns a second static IP address for the accelerator from the AWS IP address
3068	// pool.
3069	//
3070	// For more information, see Bring Your Own IP Addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html)
3071	// in the AWS Global Accelerator Developer Guide.
3072	IpAddresses []*string `type:"list"`
3073
3074	// The name of an accelerator. The name can have a maximum of 32 characters,
3075	// must contain only alphanumeric characters or hyphens (-), and must not begin
3076	// or end with a hyphen.
3077	//
3078	// Name is a required field
3079	Name *string `type:"string" required:"true"`
3080
3081	// Create tags for an accelerator.
3082	//
3083	// For more information, see Tagging in AWS Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html)
3084	// in the AWS Global Accelerator Developer Guide.
3085	Tags []*Tag `type:"list"`
3086}
3087
3088// String returns the string representation
3089func (s CreateAcceleratorInput) String() string {
3090	return awsutil.Prettify(s)
3091}
3092
3093// GoString returns the string representation
3094func (s CreateAcceleratorInput) GoString() string {
3095	return s.String()
3096}
3097
3098// Validate inspects the fields of the type to determine if they are valid.
3099func (s *CreateAcceleratorInput) Validate() error {
3100	invalidParams := request.ErrInvalidParams{Context: "CreateAcceleratorInput"}
3101	if s.Name == nil {
3102		invalidParams.Add(request.NewErrParamRequired("Name"))
3103	}
3104	if s.Tags != nil {
3105		for i, v := range s.Tags {
3106			if v == nil {
3107				continue
3108			}
3109			if err := v.Validate(); err != nil {
3110				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3111			}
3112		}
3113	}
3114
3115	if invalidParams.Len() > 0 {
3116		return invalidParams
3117	}
3118	return nil
3119}
3120
3121// SetEnabled sets the Enabled field's value.
3122func (s *CreateAcceleratorInput) SetEnabled(v bool) *CreateAcceleratorInput {
3123	s.Enabled = &v
3124	return s
3125}
3126
3127// SetIdempotencyToken sets the IdempotencyToken field's value.
3128func (s *CreateAcceleratorInput) SetIdempotencyToken(v string) *CreateAcceleratorInput {
3129	s.IdempotencyToken = &v
3130	return s
3131}
3132
3133// SetIpAddressType sets the IpAddressType field's value.
3134func (s *CreateAcceleratorInput) SetIpAddressType(v string) *CreateAcceleratorInput {
3135	s.IpAddressType = &v
3136	return s
3137}
3138
3139// SetIpAddresses sets the IpAddresses field's value.
3140func (s *CreateAcceleratorInput) SetIpAddresses(v []*string) *CreateAcceleratorInput {
3141	s.IpAddresses = v
3142	return s
3143}
3144
3145// SetName sets the Name field's value.
3146func (s *CreateAcceleratorInput) SetName(v string) *CreateAcceleratorInput {
3147	s.Name = &v
3148	return s
3149}
3150
3151// SetTags sets the Tags field's value.
3152func (s *CreateAcceleratorInput) SetTags(v []*Tag) *CreateAcceleratorInput {
3153	s.Tags = v
3154	return s
3155}
3156
3157type CreateAcceleratorOutput struct {
3158	_ struct{} `type:"structure"`
3159
3160	// The accelerator that is created by specifying a listener and the supported
3161	// IP address types.
3162	Accelerator *Accelerator `type:"structure"`
3163}
3164
3165// String returns the string representation
3166func (s CreateAcceleratorOutput) String() string {
3167	return awsutil.Prettify(s)
3168}
3169
3170// GoString returns the string representation
3171func (s CreateAcceleratorOutput) GoString() string {
3172	return s.String()
3173}
3174
3175// SetAccelerator sets the Accelerator field's value.
3176func (s *CreateAcceleratorOutput) SetAccelerator(v *Accelerator) *CreateAcceleratorOutput {
3177	s.Accelerator = v
3178	return s
3179}
3180
3181type CreateEndpointGroupInput struct {
3182	_ struct{} `type:"structure"`
3183
3184	// The list of endpoint objects.
3185	EndpointConfigurations []*EndpointConfiguration `type:"list"`
3186
3187	// The name of the AWS Region where the endpoint group is located. A listener
3188	// can have only one endpoint group in a specific Region.
3189	//
3190	// EndpointGroupRegion is a required field
3191	EndpointGroupRegion *string `type:"string" required:"true"`
3192
3193	// The time—10 seconds or 30 seconds—between each health check for an endpoint.
3194	// The default value is 30.
3195	HealthCheckIntervalSeconds *int64 `min:"10" type:"integer"`
3196
3197	// If the protocol is HTTP/S, then this specifies the path that is the destination
3198	// for health check targets. The default value is slash (/).
3199	HealthCheckPath *string `type:"string"`
3200
3201	// The port that AWS Global Accelerator uses to check the health of endpoints
3202	// that are part of this endpoint group. The default port is the listener port
3203	// that this endpoint group is associated with. If listener port is a list of
3204	// ports, Global Accelerator uses the first port in the list.
3205	HealthCheckPort *int64 `min:"1" type:"integer"`
3206
3207	// The protocol that AWS Global Accelerator uses to check the health of endpoints
3208	// that are part of this endpoint group. The default value is TCP.
3209	HealthCheckProtocol *string `type:"string" enum:"HealthCheckProtocol"`
3210
3211	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
3212	// is, the uniqueness—of the request.
3213	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
3214
3215	// The Amazon Resource Name (ARN) of the listener.
3216	//
3217	// ListenerArn is a required field
3218	ListenerArn *string `type:"string" required:"true"`
3219
3220	// The number of consecutive health checks required to set the state of a healthy
3221	// endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default
3222	// value is 3.
3223	ThresholdCount *int64 `min:"1" type:"integer"`
3224
3225	// The percentage of traffic to send to an AWS Region. Additional traffic is
3226	// distributed to other endpoint groups for this listener.
3227	//
3228	// Use this action to increase (dial up) or decrease (dial down) traffic to
3229	// a specific Region. The percentage is applied to the traffic that would otherwise
3230	// have been routed to the Region based on optimal routing.
3231	//
3232	// The default value is 100.
3233	TrafficDialPercentage *float64 `type:"float"`
3234}
3235
3236// String returns the string representation
3237func (s CreateEndpointGroupInput) String() string {
3238	return awsutil.Prettify(s)
3239}
3240
3241// GoString returns the string representation
3242func (s CreateEndpointGroupInput) GoString() string {
3243	return s.String()
3244}
3245
3246// Validate inspects the fields of the type to determine if they are valid.
3247func (s *CreateEndpointGroupInput) Validate() error {
3248	invalidParams := request.ErrInvalidParams{Context: "CreateEndpointGroupInput"}
3249	if s.EndpointGroupRegion == nil {
3250		invalidParams.Add(request.NewErrParamRequired("EndpointGroupRegion"))
3251	}
3252	if s.HealthCheckIntervalSeconds != nil && *s.HealthCheckIntervalSeconds < 10 {
3253		invalidParams.Add(request.NewErrParamMinValue("HealthCheckIntervalSeconds", 10))
3254	}
3255	if s.HealthCheckPort != nil && *s.HealthCheckPort < 1 {
3256		invalidParams.Add(request.NewErrParamMinValue("HealthCheckPort", 1))
3257	}
3258	if s.ListenerArn == nil {
3259		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
3260	}
3261	if s.ThresholdCount != nil && *s.ThresholdCount < 1 {
3262		invalidParams.Add(request.NewErrParamMinValue("ThresholdCount", 1))
3263	}
3264
3265	if invalidParams.Len() > 0 {
3266		return invalidParams
3267	}
3268	return nil
3269}
3270
3271// SetEndpointConfigurations sets the EndpointConfigurations field's value.
3272func (s *CreateEndpointGroupInput) SetEndpointConfigurations(v []*EndpointConfiguration) *CreateEndpointGroupInput {
3273	s.EndpointConfigurations = v
3274	return s
3275}
3276
3277// SetEndpointGroupRegion sets the EndpointGroupRegion field's value.
3278func (s *CreateEndpointGroupInput) SetEndpointGroupRegion(v string) *CreateEndpointGroupInput {
3279	s.EndpointGroupRegion = &v
3280	return s
3281}
3282
3283// SetHealthCheckIntervalSeconds sets the HealthCheckIntervalSeconds field's value.
3284func (s *CreateEndpointGroupInput) SetHealthCheckIntervalSeconds(v int64) *CreateEndpointGroupInput {
3285	s.HealthCheckIntervalSeconds = &v
3286	return s
3287}
3288
3289// SetHealthCheckPath sets the HealthCheckPath field's value.
3290func (s *CreateEndpointGroupInput) SetHealthCheckPath(v string) *CreateEndpointGroupInput {
3291	s.HealthCheckPath = &v
3292	return s
3293}
3294
3295// SetHealthCheckPort sets the HealthCheckPort field's value.
3296func (s *CreateEndpointGroupInput) SetHealthCheckPort(v int64) *CreateEndpointGroupInput {
3297	s.HealthCheckPort = &v
3298	return s
3299}
3300
3301// SetHealthCheckProtocol sets the HealthCheckProtocol field's value.
3302func (s *CreateEndpointGroupInput) SetHealthCheckProtocol(v string) *CreateEndpointGroupInput {
3303	s.HealthCheckProtocol = &v
3304	return s
3305}
3306
3307// SetIdempotencyToken sets the IdempotencyToken field's value.
3308func (s *CreateEndpointGroupInput) SetIdempotencyToken(v string) *CreateEndpointGroupInput {
3309	s.IdempotencyToken = &v
3310	return s
3311}
3312
3313// SetListenerArn sets the ListenerArn field's value.
3314func (s *CreateEndpointGroupInput) SetListenerArn(v string) *CreateEndpointGroupInput {
3315	s.ListenerArn = &v
3316	return s
3317}
3318
3319// SetThresholdCount sets the ThresholdCount field's value.
3320func (s *CreateEndpointGroupInput) SetThresholdCount(v int64) *CreateEndpointGroupInput {
3321	s.ThresholdCount = &v
3322	return s
3323}
3324
3325// SetTrafficDialPercentage sets the TrafficDialPercentage field's value.
3326func (s *CreateEndpointGroupInput) SetTrafficDialPercentage(v float64) *CreateEndpointGroupInput {
3327	s.TrafficDialPercentage = &v
3328	return s
3329}
3330
3331type CreateEndpointGroupOutput struct {
3332	_ struct{} `type:"structure"`
3333
3334	// The information about the endpoint group that was created.
3335	EndpointGroup *EndpointGroup `type:"structure"`
3336}
3337
3338// String returns the string representation
3339func (s CreateEndpointGroupOutput) String() string {
3340	return awsutil.Prettify(s)
3341}
3342
3343// GoString returns the string representation
3344func (s CreateEndpointGroupOutput) GoString() string {
3345	return s.String()
3346}
3347
3348// SetEndpointGroup sets the EndpointGroup field's value.
3349func (s *CreateEndpointGroupOutput) SetEndpointGroup(v *EndpointGroup) *CreateEndpointGroupOutput {
3350	s.EndpointGroup = v
3351	return s
3352}
3353
3354type CreateListenerInput struct {
3355	_ struct{} `type:"structure"`
3356
3357	// The Amazon Resource Name (ARN) of your accelerator.
3358	//
3359	// AcceleratorArn is a required field
3360	AcceleratorArn *string `type:"string" required:"true"`
3361
3362	// Client affinity lets you direct all requests from a user to the same endpoint,
3363	// if you have stateful applications, regardless of the port and protocol of
3364	// the client request. Clienty affinity gives you control over whether to always
3365	// route each client to the same specific endpoint.
3366	//
3367	// AWS Global Accelerator uses a consistent-flow hashing algorithm to choose
3368	// the optimal endpoint for a connection. If client affinity is NONE, Global
3369	// Accelerator uses the "five-tuple" (5-tuple) properties—source IP address,
3370	// source port, destination IP address, destination port, and protocol—to
3371	// select the hash value, and then chooses the best endpoint. However, with
3372	// this setting, if someone uses different ports to connect to Global Accelerator,
3373	// their connections might not be always routed to the same endpoint because
3374	// the hash value changes.
3375	//
3376	// If you want a given client to always be routed to the same endpoint, set
3377	// client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting,
3378	// Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client)
3379	// IP address and destination IP address—to select the hash value.
3380	//
3381	// The default value is NONE.
3382	ClientAffinity *string `type:"string" enum:"ClientAffinity"`
3383
3384	// A unique, case-sensitive identifier that you provide to ensure the idempotency—that
3385	// is, the uniqueness—of the request.
3386	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
3387
3388	// The list of port ranges to support for connections from clients to your accelerator.
3389	//
3390	// PortRanges is a required field
3391	PortRanges []*PortRange `min:"1" type:"list" required:"true"`
3392
3393	// The protocol for connections from clients to your accelerator.
3394	//
3395	// Protocol is a required field
3396	Protocol *string `type:"string" required:"true" enum:"Protocol"`
3397}
3398
3399// String returns the string representation
3400func (s CreateListenerInput) String() string {
3401	return awsutil.Prettify(s)
3402}
3403
3404// GoString returns the string representation
3405func (s CreateListenerInput) GoString() string {
3406	return s.String()
3407}
3408
3409// Validate inspects the fields of the type to determine if they are valid.
3410func (s *CreateListenerInput) Validate() error {
3411	invalidParams := request.ErrInvalidParams{Context: "CreateListenerInput"}
3412	if s.AcceleratorArn == nil {
3413		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
3414	}
3415	if s.PortRanges == nil {
3416		invalidParams.Add(request.NewErrParamRequired("PortRanges"))
3417	}
3418	if s.PortRanges != nil && len(s.PortRanges) < 1 {
3419		invalidParams.Add(request.NewErrParamMinLen("PortRanges", 1))
3420	}
3421	if s.Protocol == nil {
3422		invalidParams.Add(request.NewErrParamRequired("Protocol"))
3423	}
3424	if s.PortRanges != nil {
3425		for i, v := range s.PortRanges {
3426			if v == nil {
3427				continue
3428			}
3429			if err := v.Validate(); err != nil {
3430				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortRanges", i), err.(request.ErrInvalidParams))
3431			}
3432		}
3433	}
3434
3435	if invalidParams.Len() > 0 {
3436		return invalidParams
3437	}
3438	return nil
3439}
3440
3441// SetAcceleratorArn sets the AcceleratorArn field's value.
3442func (s *CreateListenerInput) SetAcceleratorArn(v string) *CreateListenerInput {
3443	s.AcceleratorArn = &v
3444	return s
3445}
3446
3447// SetClientAffinity sets the ClientAffinity field's value.
3448func (s *CreateListenerInput) SetClientAffinity(v string) *CreateListenerInput {
3449	s.ClientAffinity = &v
3450	return s
3451}
3452
3453// SetIdempotencyToken sets the IdempotencyToken field's value.
3454func (s *CreateListenerInput) SetIdempotencyToken(v string) *CreateListenerInput {
3455	s.IdempotencyToken = &v
3456	return s
3457}
3458
3459// SetPortRanges sets the PortRanges field's value.
3460func (s *CreateListenerInput) SetPortRanges(v []*PortRange) *CreateListenerInput {
3461	s.PortRanges = v
3462	return s
3463}
3464
3465// SetProtocol sets the Protocol field's value.
3466func (s *CreateListenerInput) SetProtocol(v string) *CreateListenerInput {
3467	s.Protocol = &v
3468	return s
3469}
3470
3471type CreateListenerOutput struct {
3472	_ struct{} `type:"structure"`
3473
3474	// The listener that you've created.
3475	Listener *Listener `type:"structure"`
3476}
3477
3478// String returns the string representation
3479func (s CreateListenerOutput) String() string {
3480	return awsutil.Prettify(s)
3481}
3482
3483// GoString returns the string representation
3484func (s CreateListenerOutput) GoString() string {
3485	return s.String()
3486}
3487
3488// SetListener sets the Listener field's value.
3489func (s *CreateListenerOutput) SetListener(v *Listener) *CreateListenerOutput {
3490	s.Listener = v
3491	return s
3492}
3493
3494type DeleteAcceleratorInput struct {
3495	_ struct{} `type:"structure"`
3496
3497	// The Amazon Resource Name (ARN) of an accelerator.
3498	//
3499	// AcceleratorArn is a required field
3500	AcceleratorArn *string `type:"string" required:"true"`
3501}
3502
3503// String returns the string representation
3504func (s DeleteAcceleratorInput) String() string {
3505	return awsutil.Prettify(s)
3506}
3507
3508// GoString returns the string representation
3509func (s DeleteAcceleratorInput) GoString() string {
3510	return s.String()
3511}
3512
3513// Validate inspects the fields of the type to determine if they are valid.
3514func (s *DeleteAcceleratorInput) Validate() error {
3515	invalidParams := request.ErrInvalidParams{Context: "DeleteAcceleratorInput"}
3516	if s.AcceleratorArn == nil {
3517		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
3518	}
3519
3520	if invalidParams.Len() > 0 {
3521		return invalidParams
3522	}
3523	return nil
3524}
3525
3526// SetAcceleratorArn sets the AcceleratorArn field's value.
3527func (s *DeleteAcceleratorInput) SetAcceleratorArn(v string) *DeleteAcceleratorInput {
3528	s.AcceleratorArn = &v
3529	return s
3530}
3531
3532type DeleteAcceleratorOutput struct {
3533	_ struct{} `type:"structure"`
3534}
3535
3536// String returns the string representation
3537func (s DeleteAcceleratorOutput) String() string {
3538	return awsutil.Prettify(s)
3539}
3540
3541// GoString returns the string representation
3542func (s DeleteAcceleratorOutput) GoString() string {
3543	return s.String()
3544}
3545
3546type DeleteEndpointGroupInput struct {
3547	_ struct{} `type:"structure"`
3548
3549	// The Amazon Resource Name (ARN) of the endpoint group to delete.
3550	//
3551	// EndpointGroupArn is a required field
3552	EndpointGroupArn *string `type:"string" required:"true"`
3553}
3554
3555// String returns the string representation
3556func (s DeleteEndpointGroupInput) String() string {
3557	return awsutil.Prettify(s)
3558}
3559
3560// GoString returns the string representation
3561func (s DeleteEndpointGroupInput) GoString() string {
3562	return s.String()
3563}
3564
3565// Validate inspects the fields of the type to determine if they are valid.
3566func (s *DeleteEndpointGroupInput) Validate() error {
3567	invalidParams := request.ErrInvalidParams{Context: "DeleteEndpointGroupInput"}
3568	if s.EndpointGroupArn == nil {
3569		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
3570	}
3571
3572	if invalidParams.Len() > 0 {
3573		return invalidParams
3574	}
3575	return nil
3576}
3577
3578// SetEndpointGroupArn sets the EndpointGroupArn field's value.
3579func (s *DeleteEndpointGroupInput) SetEndpointGroupArn(v string) *DeleteEndpointGroupInput {
3580	s.EndpointGroupArn = &v
3581	return s
3582}
3583
3584type DeleteEndpointGroupOutput struct {
3585	_ struct{} `type:"structure"`
3586}
3587
3588// String returns the string representation
3589func (s DeleteEndpointGroupOutput) String() string {
3590	return awsutil.Prettify(s)
3591}
3592
3593// GoString returns the string representation
3594func (s DeleteEndpointGroupOutput) GoString() string {
3595	return s.String()
3596}
3597
3598type DeleteListenerInput struct {
3599	_ struct{} `type:"structure"`
3600
3601	// The Amazon Resource Name (ARN) of the listener.
3602	//
3603	// ListenerArn is a required field
3604	ListenerArn *string `type:"string" required:"true"`
3605}
3606
3607// String returns the string representation
3608func (s DeleteListenerInput) String() string {
3609	return awsutil.Prettify(s)
3610}
3611
3612// GoString returns the string representation
3613func (s DeleteListenerInput) GoString() string {
3614	return s.String()
3615}
3616
3617// Validate inspects the fields of the type to determine if they are valid.
3618func (s *DeleteListenerInput) Validate() error {
3619	invalidParams := request.ErrInvalidParams{Context: "DeleteListenerInput"}
3620	if s.ListenerArn == nil {
3621		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
3622	}
3623
3624	if invalidParams.Len() > 0 {
3625		return invalidParams
3626	}
3627	return nil
3628}
3629
3630// SetListenerArn sets the ListenerArn field's value.
3631func (s *DeleteListenerInput) SetListenerArn(v string) *DeleteListenerInput {
3632	s.ListenerArn = &v
3633	return s
3634}
3635
3636type DeleteListenerOutput struct {
3637	_ struct{} `type:"structure"`
3638}
3639
3640// String returns the string representation
3641func (s DeleteListenerOutput) String() string {
3642	return awsutil.Prettify(s)
3643}
3644
3645// GoString returns the string representation
3646func (s DeleteListenerOutput) GoString() string {
3647	return s.String()
3648}
3649
3650type DeprovisionByoipCidrInput struct {
3651	_ struct{} `type:"structure"`
3652
3653	// The address range, in CIDR notation. The prefix must be the same prefix that
3654	// you specified when you provisioned the address range.
3655	//
3656	// Cidr is a required field
3657	Cidr *string `type:"string" required:"true"`
3658}
3659
3660// String returns the string representation
3661func (s DeprovisionByoipCidrInput) String() string {
3662	return awsutil.Prettify(s)
3663}
3664
3665// GoString returns the string representation
3666func (s DeprovisionByoipCidrInput) GoString() string {
3667	return s.String()
3668}
3669
3670// Validate inspects the fields of the type to determine if they are valid.
3671func (s *DeprovisionByoipCidrInput) Validate() error {
3672	invalidParams := request.ErrInvalidParams{Context: "DeprovisionByoipCidrInput"}
3673	if s.Cidr == nil {
3674		invalidParams.Add(request.NewErrParamRequired("Cidr"))
3675	}
3676
3677	if invalidParams.Len() > 0 {
3678		return invalidParams
3679	}
3680	return nil
3681}
3682
3683// SetCidr sets the Cidr field's value.
3684func (s *DeprovisionByoipCidrInput) SetCidr(v string) *DeprovisionByoipCidrInput {
3685	s.Cidr = &v
3686	return s
3687}
3688
3689type DeprovisionByoipCidrOutput struct {
3690	_ struct{} `type:"structure"`
3691
3692	// Information about the address range.
3693	ByoipCidr *ByoipCidr `type:"structure"`
3694}
3695
3696// String returns the string representation
3697func (s DeprovisionByoipCidrOutput) String() string {
3698	return awsutil.Prettify(s)
3699}
3700
3701// GoString returns the string representation
3702func (s DeprovisionByoipCidrOutput) GoString() string {
3703	return s.String()
3704}
3705
3706// SetByoipCidr sets the ByoipCidr field's value.
3707func (s *DeprovisionByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *DeprovisionByoipCidrOutput {
3708	s.ByoipCidr = v
3709	return s
3710}
3711
3712type DescribeAcceleratorAttributesInput struct {
3713	_ struct{} `type:"structure"`
3714
3715	// The Amazon Resource Name (ARN) of the accelerator with the attributes that
3716	// you want to describe.
3717	//
3718	// AcceleratorArn is a required field
3719	AcceleratorArn *string `type:"string" required:"true"`
3720}
3721
3722// String returns the string representation
3723func (s DescribeAcceleratorAttributesInput) String() string {
3724	return awsutil.Prettify(s)
3725}
3726
3727// GoString returns the string representation
3728func (s DescribeAcceleratorAttributesInput) GoString() string {
3729	return s.String()
3730}
3731
3732// Validate inspects the fields of the type to determine if they are valid.
3733func (s *DescribeAcceleratorAttributesInput) Validate() error {
3734	invalidParams := request.ErrInvalidParams{Context: "DescribeAcceleratorAttributesInput"}
3735	if s.AcceleratorArn == nil {
3736		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
3737	}
3738
3739	if invalidParams.Len() > 0 {
3740		return invalidParams
3741	}
3742	return nil
3743}
3744
3745// SetAcceleratorArn sets the AcceleratorArn field's value.
3746func (s *DescribeAcceleratorAttributesInput) SetAcceleratorArn(v string) *DescribeAcceleratorAttributesInput {
3747	s.AcceleratorArn = &v
3748	return s
3749}
3750
3751type DescribeAcceleratorAttributesOutput struct {
3752	_ struct{} `type:"structure"`
3753
3754	// The attributes of the accelerator.
3755	AcceleratorAttributes *AcceleratorAttributes `type:"structure"`
3756}
3757
3758// String returns the string representation
3759func (s DescribeAcceleratorAttributesOutput) String() string {
3760	return awsutil.Prettify(s)
3761}
3762
3763// GoString returns the string representation
3764func (s DescribeAcceleratorAttributesOutput) GoString() string {
3765	return s.String()
3766}
3767
3768// SetAcceleratorAttributes sets the AcceleratorAttributes field's value.
3769func (s *DescribeAcceleratorAttributesOutput) SetAcceleratorAttributes(v *AcceleratorAttributes) *DescribeAcceleratorAttributesOutput {
3770	s.AcceleratorAttributes = v
3771	return s
3772}
3773
3774type DescribeAcceleratorInput struct {
3775	_ struct{} `type:"structure"`
3776
3777	// The Amazon Resource Name (ARN) of the accelerator to describe.
3778	//
3779	// AcceleratorArn is a required field
3780	AcceleratorArn *string `type:"string" required:"true"`
3781}
3782
3783// String returns the string representation
3784func (s DescribeAcceleratorInput) String() string {
3785	return awsutil.Prettify(s)
3786}
3787
3788// GoString returns the string representation
3789func (s DescribeAcceleratorInput) GoString() string {
3790	return s.String()
3791}
3792
3793// Validate inspects the fields of the type to determine if they are valid.
3794func (s *DescribeAcceleratorInput) Validate() error {
3795	invalidParams := request.ErrInvalidParams{Context: "DescribeAcceleratorInput"}
3796	if s.AcceleratorArn == nil {
3797		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
3798	}
3799
3800	if invalidParams.Len() > 0 {
3801		return invalidParams
3802	}
3803	return nil
3804}
3805
3806// SetAcceleratorArn sets the AcceleratorArn field's value.
3807func (s *DescribeAcceleratorInput) SetAcceleratorArn(v string) *DescribeAcceleratorInput {
3808	s.AcceleratorArn = &v
3809	return s
3810}
3811
3812type DescribeAcceleratorOutput struct {
3813	_ struct{} `type:"structure"`
3814
3815	// The description of the accelerator.
3816	Accelerator *Accelerator `type:"structure"`
3817}
3818
3819// String returns the string representation
3820func (s DescribeAcceleratorOutput) String() string {
3821	return awsutil.Prettify(s)
3822}
3823
3824// GoString returns the string representation
3825func (s DescribeAcceleratorOutput) GoString() string {
3826	return s.String()
3827}
3828
3829// SetAccelerator sets the Accelerator field's value.
3830func (s *DescribeAcceleratorOutput) SetAccelerator(v *Accelerator) *DescribeAcceleratorOutput {
3831	s.Accelerator = v
3832	return s
3833}
3834
3835type DescribeEndpointGroupInput struct {
3836	_ struct{} `type:"structure"`
3837
3838	// The Amazon Resource Name (ARN) of the endpoint group to describe.
3839	//
3840	// EndpointGroupArn is a required field
3841	EndpointGroupArn *string `type:"string" required:"true"`
3842}
3843
3844// String returns the string representation
3845func (s DescribeEndpointGroupInput) String() string {
3846	return awsutil.Prettify(s)
3847}
3848
3849// GoString returns the string representation
3850func (s DescribeEndpointGroupInput) GoString() string {
3851	return s.String()
3852}
3853
3854// Validate inspects the fields of the type to determine if they are valid.
3855func (s *DescribeEndpointGroupInput) Validate() error {
3856	invalidParams := request.ErrInvalidParams{Context: "DescribeEndpointGroupInput"}
3857	if s.EndpointGroupArn == nil {
3858		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
3859	}
3860
3861	if invalidParams.Len() > 0 {
3862		return invalidParams
3863	}
3864	return nil
3865}
3866
3867// SetEndpointGroupArn sets the EndpointGroupArn field's value.
3868func (s *DescribeEndpointGroupInput) SetEndpointGroupArn(v string) *DescribeEndpointGroupInput {
3869	s.EndpointGroupArn = &v
3870	return s
3871}
3872
3873type DescribeEndpointGroupOutput struct {
3874	_ struct{} `type:"structure"`
3875
3876	// The description of an endpoint group.
3877	EndpointGroup *EndpointGroup `type:"structure"`
3878}
3879
3880// String returns the string representation
3881func (s DescribeEndpointGroupOutput) String() string {
3882	return awsutil.Prettify(s)
3883}
3884
3885// GoString returns the string representation
3886func (s DescribeEndpointGroupOutput) GoString() string {
3887	return s.String()
3888}
3889
3890// SetEndpointGroup sets the EndpointGroup field's value.
3891func (s *DescribeEndpointGroupOutput) SetEndpointGroup(v *EndpointGroup) *DescribeEndpointGroupOutput {
3892	s.EndpointGroup = v
3893	return s
3894}
3895
3896type DescribeListenerInput struct {
3897	_ struct{} `type:"structure"`
3898
3899	// The Amazon Resource Name (ARN) of the listener to describe.
3900	//
3901	// ListenerArn is a required field
3902	ListenerArn *string `type:"string" required:"true"`
3903}
3904
3905// String returns the string representation
3906func (s DescribeListenerInput) String() string {
3907	return awsutil.Prettify(s)
3908}
3909
3910// GoString returns the string representation
3911func (s DescribeListenerInput) GoString() string {
3912	return s.String()
3913}
3914
3915// Validate inspects the fields of the type to determine if they are valid.
3916func (s *DescribeListenerInput) Validate() error {
3917	invalidParams := request.ErrInvalidParams{Context: "DescribeListenerInput"}
3918	if s.ListenerArn == nil {
3919		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
3920	}
3921
3922	if invalidParams.Len() > 0 {
3923		return invalidParams
3924	}
3925	return nil
3926}
3927
3928// SetListenerArn sets the ListenerArn field's value.
3929func (s *DescribeListenerInput) SetListenerArn(v string) *DescribeListenerInput {
3930	s.ListenerArn = &v
3931	return s
3932}
3933
3934type DescribeListenerOutput struct {
3935	_ struct{} `type:"structure"`
3936
3937	// The description of a listener.
3938	Listener *Listener `type:"structure"`
3939}
3940
3941// String returns the string representation
3942func (s DescribeListenerOutput) String() string {
3943	return awsutil.Prettify(s)
3944}
3945
3946// GoString returns the string representation
3947func (s DescribeListenerOutput) GoString() string {
3948	return s.String()
3949}
3950
3951// SetListener sets the Listener field's value.
3952func (s *DescribeListenerOutput) SetListener(v *Listener) *DescribeListenerOutput {
3953	s.Listener = v
3954	return s
3955}
3956
3957// A complex type for endpoints.
3958type EndpointConfiguration struct {
3959	_ struct{} `type:"structure"`
3960
3961	// Indicates whether client IP address preservation is enabled for an Application
3962	// Load Balancer endpoint. The value is true or false. The default value is
3963	// true for new accelerators.
3964	//
3965	// If the value is set to true, the client's IP address is preserved in the
3966	// X-Forwarded-For request header as traffic travels to applications on the
3967	// Application Load Balancer endpoint fronted by the accelerator.
3968	//
3969	// For more information, see Viewing Client IP Addresses in AWS Global Accelerator
3970	// (https://docs.aws.amazon.com/global-accelerator/latest/dg/introduction-how-it-works-client-ip.html)
3971	// in the AWS Global Accelerator Developer Guide.
3972	ClientIPPreservationEnabled *bool `type:"boolean"`
3973
3974	// An ID for the endpoint. If the endpoint is a Network Load Balancer or Application
3975	// Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If
3976	// the endpoint is an Elastic IP address, this is the Elastic IP address allocation
3977	// ID. For EC2 instances, this is the EC2 instance ID.
3978	//
3979	// An Application Load Balancer can be either internal or internet-facing.
3980	EndpointId *string `type:"string"`
3981
3982	// The weight associated with the endpoint. When you add weights to endpoints,
3983	// you configure AWS Global Accelerator to route traffic based on proportions
3984	// that you specify. For example, you might specify endpoint weights of 4, 5,
3985	// 5, and 6 (sum=20). The result is that 4/20 of your traffic, on average, is
3986	// routed to the first endpoint, 5/20 is routed both to the second and third
3987	// endpoints, and 6/20 is routed to the last endpoint. For more information,
3988	// see Endpoint Weights (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html)
3989	// in the AWS Global Accelerator Developer Guide.
3990	Weight *int64 `type:"integer"`
3991}
3992
3993// String returns the string representation
3994func (s EndpointConfiguration) String() string {
3995	return awsutil.Prettify(s)
3996}
3997
3998// GoString returns the string representation
3999func (s EndpointConfiguration) GoString() string {
4000	return s.String()
4001}
4002
4003// SetClientIPPreservationEnabled sets the ClientIPPreservationEnabled field's value.
4004func (s *EndpointConfiguration) SetClientIPPreservationEnabled(v bool) *EndpointConfiguration {
4005	s.ClientIPPreservationEnabled = &v
4006	return s
4007}
4008
4009// SetEndpointId sets the EndpointId field's value.
4010func (s *EndpointConfiguration) SetEndpointId(v string) *EndpointConfiguration {
4011	s.EndpointId = &v
4012	return s
4013}
4014
4015// SetWeight sets the Weight field's value.
4016func (s *EndpointConfiguration) SetWeight(v int64) *EndpointConfiguration {
4017	s.Weight = &v
4018	return s
4019}
4020
4021// A complex type for an endpoint. Each endpoint group can include one or more
4022// endpoints, such as load balancers.
4023type EndpointDescription struct {
4024	_ struct{} `type:"structure"`
4025
4026	// Indicates whether client IP address preservation is enabled for an Application
4027	// Load Balancer endpoint. The value is true or false. The default value is
4028	// true for new accelerators.
4029	//
4030	// If the value is set to true, the client's IP address is preserved in the
4031	// X-Forwarded-For request header as traffic travels to applications on the
4032	// Application Load Balancer endpoint fronted by the accelerator.
4033	//
4034	// For more information, see Viewing Client IP Addresses in AWS Global Accelerator
4035	// (https://docs.aws.amazon.com/global-accelerator/latest/dg/introduction-how-it-works-client-ip.html)
4036	// in the AWS Global Accelerator Developer Guide.
4037	ClientIPPreservationEnabled *bool `type:"boolean"`
4038
4039	// An ID for the endpoint. If the endpoint is a Network Load Balancer or Application
4040	// Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If
4041	// the endpoint is an Elastic IP address, this is the Elastic IP address allocation
4042	// ID. For EC2 instances, this is the EC2 instance ID.
4043	//
4044	// An Application Load Balancer can be either internal or internet-facing.
4045	EndpointId *string `type:"string"`
4046
4047	// The reason code associated with why the endpoint is not healthy. If the endpoint
4048	// state is healthy, a reason code is not provided.
4049	//
4050	// If the endpoint state is unhealthy, the reason code can be one of the following
4051	// values:
4052	//
4053	//    * Timeout: The health check requests to the endpoint are timing out before
4054	//    returning a status.
4055	//
4056	//    * Failed: The health check failed, for example because the endpoint response
4057	//    was invalid (malformed).
4058	//
4059	// If the endpoint state is initial, the reason code can be one of the following
4060	// values:
4061	//
4062	//    * ProvisioningInProgress: The endpoint is in the process of being provisioned.
4063	//
4064	//    * InitialHealthChecking: Global Accelerator is still setting up the minimum
4065	//    number of health checks for the endpoint that are required to determine
4066	//    its health status.
4067	HealthReason *string `type:"string"`
4068
4069	// The health status of the endpoint.
4070	HealthState *string `type:"string" enum:"HealthState"`
4071
4072	// The weight associated with the endpoint. When you add weights to endpoints,
4073	// you configure AWS Global Accelerator to route traffic based on proportions
4074	// that you specify. For example, you might specify endpoint weights of 4, 5,
4075	// 5, and 6 (sum=20). The result is that 4/20 of your traffic, on average, is
4076	// routed to the first endpoint, 5/20 is routed both to the second and third
4077	// endpoints, and 6/20 is routed to the last endpoint. For more information,
4078	// see Endpoint Weights (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html)
4079	// in the AWS Global Accelerator Developer Guide.
4080	Weight *int64 `type:"integer"`
4081}
4082
4083// String returns the string representation
4084func (s EndpointDescription) String() string {
4085	return awsutil.Prettify(s)
4086}
4087
4088// GoString returns the string representation
4089func (s EndpointDescription) GoString() string {
4090	return s.String()
4091}
4092
4093// SetClientIPPreservationEnabled sets the ClientIPPreservationEnabled field's value.
4094func (s *EndpointDescription) SetClientIPPreservationEnabled(v bool) *EndpointDescription {
4095	s.ClientIPPreservationEnabled = &v
4096	return s
4097}
4098
4099// SetEndpointId sets the EndpointId field's value.
4100func (s *EndpointDescription) SetEndpointId(v string) *EndpointDescription {
4101	s.EndpointId = &v
4102	return s
4103}
4104
4105// SetHealthReason sets the HealthReason field's value.
4106func (s *EndpointDescription) SetHealthReason(v string) *EndpointDescription {
4107	s.HealthReason = &v
4108	return s
4109}
4110
4111// SetHealthState sets the HealthState field's value.
4112func (s *EndpointDescription) SetHealthState(v string) *EndpointDescription {
4113	s.HealthState = &v
4114	return s
4115}
4116
4117// SetWeight sets the Weight field's value.
4118func (s *EndpointDescription) SetWeight(v int64) *EndpointDescription {
4119	s.Weight = &v
4120	return s
4121}
4122
4123// A complex type for the endpoint group. An AWS Region can have only one endpoint
4124// group for a specific listener.
4125type EndpointGroup struct {
4126	_ struct{} `type:"structure"`
4127
4128	// The list of endpoint objects.
4129	EndpointDescriptions []*EndpointDescription `type:"list"`
4130
4131	// The Amazon Resource Name (ARN) of the endpoint group.
4132	EndpointGroupArn *string `type:"string"`
4133
4134	// The AWS Region that this endpoint group belongs.
4135	EndpointGroupRegion *string `type:"string"`
4136
4137	// The time—10 seconds or 30 seconds—between health checks for each endpoint.
4138	// The default value is 30.
4139	HealthCheckIntervalSeconds *int64 `min:"10" type:"integer"`
4140
4141	// If the protocol is HTTP/S, then this value provides the ping path that Global
4142	// Accelerator uses for the destination on the endpoints for health checks.
4143	// The default is slash (/).
4144	HealthCheckPath *string `type:"string"`
4145
4146	// The port that Global Accelerator uses to perform health checks on endpoints
4147	// that are part of this endpoint group.
4148	//
4149	// The default port is the port for the listener that this endpoint group is
4150	// associated with. If the listener port is a list, Global Accelerator uses
4151	// the first specified port in the list of ports.
4152	HealthCheckPort *int64 `min:"1" type:"integer"`
4153
4154	// The protocol that Global Accelerator uses to perform health checks on endpoints
4155	// that are part of this endpoint group. The default value is TCP.
4156	HealthCheckProtocol *string `type:"string" enum:"HealthCheckProtocol"`
4157
4158	// The number of consecutive health checks required to set the state of a healthy
4159	// endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default
4160	// value is 3.
4161	ThresholdCount *int64 `min:"1" type:"integer"`
4162
4163	// The percentage of traffic to send to an AWS Region. Additional traffic is
4164	// distributed to other endpoint groups for this listener.
4165	//
4166	// Use this action to increase (dial up) or decrease (dial down) traffic to
4167	// a specific Region. The percentage is applied to the traffic that would otherwise
4168	// have been routed to the Region based on optimal routing.
4169	//
4170	// The default value is 100.
4171	TrafficDialPercentage *float64 `type:"float"`
4172}
4173
4174// String returns the string representation
4175func (s EndpointGroup) String() string {
4176	return awsutil.Prettify(s)
4177}
4178
4179// GoString returns the string representation
4180func (s EndpointGroup) GoString() string {
4181	return s.String()
4182}
4183
4184// SetEndpointDescriptions sets the EndpointDescriptions field's value.
4185func (s *EndpointGroup) SetEndpointDescriptions(v []*EndpointDescription) *EndpointGroup {
4186	s.EndpointDescriptions = v
4187	return s
4188}
4189
4190// SetEndpointGroupArn sets the EndpointGroupArn field's value.
4191func (s *EndpointGroup) SetEndpointGroupArn(v string) *EndpointGroup {
4192	s.EndpointGroupArn = &v
4193	return s
4194}
4195
4196// SetEndpointGroupRegion sets the EndpointGroupRegion field's value.
4197func (s *EndpointGroup) SetEndpointGroupRegion(v string) *EndpointGroup {
4198	s.EndpointGroupRegion = &v
4199	return s
4200}
4201
4202// SetHealthCheckIntervalSeconds sets the HealthCheckIntervalSeconds field's value.
4203func (s *EndpointGroup) SetHealthCheckIntervalSeconds(v int64) *EndpointGroup {
4204	s.HealthCheckIntervalSeconds = &v
4205	return s
4206}
4207
4208// SetHealthCheckPath sets the HealthCheckPath field's value.
4209func (s *EndpointGroup) SetHealthCheckPath(v string) *EndpointGroup {
4210	s.HealthCheckPath = &v
4211	return s
4212}
4213
4214// SetHealthCheckPort sets the HealthCheckPort field's value.
4215func (s *EndpointGroup) SetHealthCheckPort(v int64) *EndpointGroup {
4216	s.HealthCheckPort = &v
4217	return s
4218}
4219
4220// SetHealthCheckProtocol sets the HealthCheckProtocol field's value.
4221func (s *EndpointGroup) SetHealthCheckProtocol(v string) *EndpointGroup {
4222	s.HealthCheckProtocol = &v
4223	return s
4224}
4225
4226// SetThresholdCount sets the ThresholdCount field's value.
4227func (s *EndpointGroup) SetThresholdCount(v int64) *EndpointGroup {
4228	s.ThresholdCount = &v
4229	return s
4230}
4231
4232// SetTrafficDialPercentage sets the TrafficDialPercentage field's value.
4233func (s *EndpointGroup) SetTrafficDialPercentage(v float64) *EndpointGroup {
4234	s.TrafficDialPercentage = &v
4235	return s
4236}
4237
4238// The endpoint group that you specified already exists.
4239type EndpointGroupAlreadyExistsException struct {
4240	_            struct{} `type:"structure"`
4241	respMetadata protocol.ResponseMetadata
4242
4243	Message_ *string `locationName:"Message" type:"string"`
4244}
4245
4246// String returns the string representation
4247func (s EndpointGroupAlreadyExistsException) String() string {
4248	return awsutil.Prettify(s)
4249}
4250
4251// GoString returns the string representation
4252func (s EndpointGroupAlreadyExistsException) GoString() string {
4253	return s.String()
4254}
4255
4256func newErrorEndpointGroupAlreadyExistsException(v protocol.ResponseMetadata) error {
4257	return &EndpointGroupAlreadyExistsException{
4258		respMetadata: v,
4259	}
4260}
4261
4262// Code returns the exception type name.
4263func (s EndpointGroupAlreadyExistsException) Code() string {
4264	return "EndpointGroupAlreadyExistsException"
4265}
4266
4267// Message returns the exception's message.
4268func (s EndpointGroupAlreadyExistsException) Message() string {
4269	if s.Message_ != nil {
4270		return *s.Message_
4271	}
4272	return ""
4273}
4274
4275// OrigErr always returns nil, satisfies awserr.Error interface.
4276func (s EndpointGroupAlreadyExistsException) OrigErr() error {
4277	return nil
4278}
4279
4280func (s EndpointGroupAlreadyExistsException) Error() string {
4281	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4282}
4283
4284// Status code returns the HTTP status code for the request's response error.
4285func (s EndpointGroupAlreadyExistsException) StatusCode() int {
4286	return s.respMetadata.StatusCode
4287}
4288
4289// RequestID returns the service's response RequestID for request.
4290func (s EndpointGroupAlreadyExistsException) RequestID() string {
4291	return s.respMetadata.RequestID
4292}
4293
4294// The endpoint group that you specified doesn't exist.
4295type EndpointGroupNotFoundException struct {
4296	_            struct{} `type:"structure"`
4297	respMetadata protocol.ResponseMetadata
4298
4299	Message_ *string `locationName:"Message" type:"string"`
4300}
4301
4302// String returns the string representation
4303func (s EndpointGroupNotFoundException) String() string {
4304	return awsutil.Prettify(s)
4305}
4306
4307// GoString returns the string representation
4308func (s EndpointGroupNotFoundException) GoString() string {
4309	return s.String()
4310}
4311
4312func newErrorEndpointGroupNotFoundException(v protocol.ResponseMetadata) error {
4313	return &EndpointGroupNotFoundException{
4314		respMetadata: v,
4315	}
4316}
4317
4318// Code returns the exception type name.
4319func (s EndpointGroupNotFoundException) Code() string {
4320	return "EndpointGroupNotFoundException"
4321}
4322
4323// Message returns the exception's message.
4324func (s EndpointGroupNotFoundException) Message() string {
4325	if s.Message_ != nil {
4326		return *s.Message_
4327	}
4328	return ""
4329}
4330
4331// OrigErr always returns nil, satisfies awserr.Error interface.
4332func (s EndpointGroupNotFoundException) OrigErr() error {
4333	return nil
4334}
4335
4336func (s EndpointGroupNotFoundException) Error() string {
4337	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4338}
4339
4340// Status code returns the HTTP status code for the request's response error.
4341func (s EndpointGroupNotFoundException) StatusCode() int {
4342	return s.respMetadata.StatusCode
4343}
4344
4345// RequestID returns the service's response RequestID for request.
4346func (s EndpointGroupNotFoundException) RequestID() string {
4347	return s.respMetadata.RequestID
4348}
4349
4350// The CIDR that you specified is not valid for this action. For example, the
4351// state of the CIDR might be incorrect for this action.
4352type IncorrectCidrStateException struct {
4353	_            struct{} `type:"structure"`
4354	respMetadata protocol.ResponseMetadata
4355
4356	Message_ *string `locationName:"Message" type:"string"`
4357}
4358
4359// String returns the string representation
4360func (s IncorrectCidrStateException) String() string {
4361	return awsutil.Prettify(s)
4362}
4363
4364// GoString returns the string representation
4365func (s IncorrectCidrStateException) GoString() string {
4366	return s.String()
4367}
4368
4369func newErrorIncorrectCidrStateException(v protocol.ResponseMetadata) error {
4370	return &IncorrectCidrStateException{
4371		respMetadata: v,
4372	}
4373}
4374
4375// Code returns the exception type name.
4376func (s IncorrectCidrStateException) Code() string {
4377	return "IncorrectCidrStateException"
4378}
4379
4380// Message returns the exception's message.
4381func (s IncorrectCidrStateException) Message() string {
4382	if s.Message_ != nil {
4383		return *s.Message_
4384	}
4385	return ""
4386}
4387
4388// OrigErr always returns nil, satisfies awserr.Error interface.
4389func (s IncorrectCidrStateException) OrigErr() error {
4390	return nil
4391}
4392
4393func (s IncorrectCidrStateException) Error() string {
4394	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4395}
4396
4397// Status code returns the HTTP status code for the request's response error.
4398func (s IncorrectCidrStateException) StatusCode() int {
4399	return s.respMetadata.StatusCode
4400}
4401
4402// RequestID returns the service's response RequestID for request.
4403func (s IncorrectCidrStateException) RequestID() string {
4404	return s.respMetadata.RequestID
4405}
4406
4407// There was an internal error for AWS Global Accelerator.
4408type InternalServiceErrorException struct {
4409	_            struct{} `type:"structure"`
4410	respMetadata protocol.ResponseMetadata
4411
4412	Message_ *string `locationName:"Message" type:"string"`
4413}
4414
4415// String returns the string representation
4416func (s InternalServiceErrorException) String() string {
4417	return awsutil.Prettify(s)
4418}
4419
4420// GoString returns the string representation
4421func (s InternalServiceErrorException) GoString() string {
4422	return s.String()
4423}
4424
4425func newErrorInternalServiceErrorException(v protocol.ResponseMetadata) error {
4426	return &InternalServiceErrorException{
4427		respMetadata: v,
4428	}
4429}
4430
4431// Code returns the exception type name.
4432func (s InternalServiceErrorException) Code() string {
4433	return "InternalServiceErrorException"
4434}
4435
4436// Message returns the exception's message.
4437func (s InternalServiceErrorException) Message() string {
4438	if s.Message_ != nil {
4439		return *s.Message_
4440	}
4441	return ""
4442}
4443
4444// OrigErr always returns nil, satisfies awserr.Error interface.
4445func (s InternalServiceErrorException) OrigErr() error {
4446	return nil
4447}
4448
4449func (s InternalServiceErrorException) Error() string {
4450	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4451}
4452
4453// Status code returns the HTTP status code for the request's response error.
4454func (s InternalServiceErrorException) StatusCode() int {
4455	return s.respMetadata.StatusCode
4456}
4457
4458// RequestID returns the service's response RequestID for request.
4459func (s InternalServiceErrorException) RequestID() string {
4460	return s.respMetadata.RequestID
4461}
4462
4463// An argument that you specified is invalid.
4464type InvalidArgumentException struct {
4465	_            struct{} `type:"structure"`
4466	respMetadata protocol.ResponseMetadata
4467
4468	Message_ *string `locationName:"Message" type:"string"`
4469}
4470
4471// String returns the string representation
4472func (s InvalidArgumentException) String() string {
4473	return awsutil.Prettify(s)
4474}
4475
4476// GoString returns the string representation
4477func (s InvalidArgumentException) GoString() string {
4478	return s.String()
4479}
4480
4481func newErrorInvalidArgumentException(v protocol.ResponseMetadata) error {
4482	return &InvalidArgumentException{
4483		respMetadata: v,
4484	}
4485}
4486
4487// Code returns the exception type name.
4488func (s InvalidArgumentException) Code() string {
4489	return "InvalidArgumentException"
4490}
4491
4492// Message returns the exception's message.
4493func (s InvalidArgumentException) Message() string {
4494	if s.Message_ != nil {
4495		return *s.Message_
4496	}
4497	return ""
4498}
4499
4500// OrigErr always returns nil, satisfies awserr.Error interface.
4501func (s InvalidArgumentException) OrigErr() error {
4502	return nil
4503}
4504
4505func (s InvalidArgumentException) Error() string {
4506	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4507}
4508
4509// Status code returns the HTTP status code for the request's response error.
4510func (s InvalidArgumentException) StatusCode() int {
4511	return s.respMetadata.StatusCode
4512}
4513
4514// RequestID returns the service's response RequestID for request.
4515func (s InvalidArgumentException) RequestID() string {
4516	return s.respMetadata.RequestID
4517}
4518
4519// There isn't another item to return.
4520type InvalidNextTokenException struct {
4521	_            struct{} `type:"structure"`
4522	respMetadata protocol.ResponseMetadata
4523
4524	Message_ *string `locationName:"Message" type:"string"`
4525}
4526
4527// String returns the string representation
4528func (s InvalidNextTokenException) String() string {
4529	return awsutil.Prettify(s)
4530}
4531
4532// GoString returns the string representation
4533func (s InvalidNextTokenException) GoString() string {
4534	return s.String()
4535}
4536
4537func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
4538	return &InvalidNextTokenException{
4539		respMetadata: v,
4540	}
4541}
4542
4543// Code returns the exception type name.
4544func (s InvalidNextTokenException) Code() string {
4545	return "InvalidNextTokenException"
4546}
4547
4548// Message returns the exception's message.
4549func (s InvalidNextTokenException) Message() string {
4550	if s.Message_ != nil {
4551		return *s.Message_
4552	}
4553	return ""
4554}
4555
4556// OrigErr always returns nil, satisfies awserr.Error interface.
4557func (s InvalidNextTokenException) OrigErr() error {
4558	return nil
4559}
4560
4561func (s InvalidNextTokenException) Error() string {
4562	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4563}
4564
4565// Status code returns the HTTP status code for the request's response error.
4566func (s InvalidNextTokenException) StatusCode() int {
4567	return s.respMetadata.StatusCode
4568}
4569
4570// RequestID returns the service's response RequestID for request.
4571func (s InvalidNextTokenException) RequestID() string {
4572	return s.respMetadata.RequestID
4573}
4574
4575// The port numbers that you specified are not valid numbers or are not unique
4576// for this accelerator.
4577type InvalidPortRangeException struct {
4578	_            struct{} `type:"structure"`
4579	respMetadata protocol.ResponseMetadata
4580
4581	Message_ *string `locationName:"Message" type:"string"`
4582}
4583
4584// String returns the string representation
4585func (s InvalidPortRangeException) String() string {
4586	return awsutil.Prettify(s)
4587}
4588
4589// GoString returns the string representation
4590func (s InvalidPortRangeException) GoString() string {
4591	return s.String()
4592}
4593
4594func newErrorInvalidPortRangeException(v protocol.ResponseMetadata) error {
4595	return &InvalidPortRangeException{
4596		respMetadata: v,
4597	}
4598}
4599
4600// Code returns the exception type name.
4601func (s InvalidPortRangeException) Code() string {
4602	return "InvalidPortRangeException"
4603}
4604
4605// Message returns the exception's message.
4606func (s InvalidPortRangeException) Message() string {
4607	if s.Message_ != nil {
4608		return *s.Message_
4609	}
4610	return ""
4611}
4612
4613// OrigErr always returns nil, satisfies awserr.Error interface.
4614func (s InvalidPortRangeException) OrigErr() error {
4615	return nil
4616}
4617
4618func (s InvalidPortRangeException) Error() string {
4619	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4620}
4621
4622// Status code returns the HTTP status code for the request's response error.
4623func (s InvalidPortRangeException) StatusCode() int {
4624	return s.respMetadata.StatusCode
4625}
4626
4627// RequestID returns the service's response RequestID for request.
4628func (s InvalidPortRangeException) RequestID() string {
4629	return s.respMetadata.RequestID
4630}
4631
4632// A complex type for the set of IP addresses for an accelerator.
4633type IpSet struct {
4634	_ struct{} `type:"structure"`
4635
4636	// The array of IP addresses in the IP address set. An IP address set can have
4637	// a maximum of two IP addresses.
4638	IpAddresses []*string `type:"list"`
4639
4640	// The types of IP addresses included in this IP set.
4641	IpFamily *string `type:"string"`
4642}
4643
4644// String returns the string representation
4645func (s IpSet) String() string {
4646	return awsutil.Prettify(s)
4647}
4648
4649// GoString returns the string representation
4650func (s IpSet) GoString() string {
4651	return s.String()
4652}
4653
4654// SetIpAddresses sets the IpAddresses field's value.
4655func (s *IpSet) SetIpAddresses(v []*string) *IpSet {
4656	s.IpAddresses = v
4657	return s
4658}
4659
4660// SetIpFamily sets the IpFamily field's value.
4661func (s *IpSet) SetIpFamily(v string) *IpSet {
4662	s.IpFamily = &v
4663	return s
4664}
4665
4666// Processing your request would cause you to exceed an AWS Global Accelerator
4667// limit.
4668type LimitExceededException struct {
4669	_            struct{} `type:"structure"`
4670	respMetadata protocol.ResponseMetadata
4671
4672	Message_ *string `locationName:"Message" type:"string"`
4673}
4674
4675// String returns the string representation
4676func (s LimitExceededException) String() string {
4677	return awsutil.Prettify(s)
4678}
4679
4680// GoString returns the string representation
4681func (s LimitExceededException) GoString() string {
4682	return s.String()
4683}
4684
4685func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
4686	return &LimitExceededException{
4687		respMetadata: v,
4688	}
4689}
4690
4691// Code returns the exception type name.
4692func (s LimitExceededException) Code() string {
4693	return "LimitExceededException"
4694}
4695
4696// Message returns the exception's message.
4697func (s LimitExceededException) Message() string {
4698	if s.Message_ != nil {
4699		return *s.Message_
4700	}
4701	return ""
4702}
4703
4704// OrigErr always returns nil, satisfies awserr.Error interface.
4705func (s LimitExceededException) OrigErr() error {
4706	return nil
4707}
4708
4709func (s LimitExceededException) Error() string {
4710	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4711}
4712
4713// Status code returns the HTTP status code for the request's response error.
4714func (s LimitExceededException) StatusCode() int {
4715	return s.respMetadata.StatusCode
4716}
4717
4718// RequestID returns the service's response RequestID for request.
4719func (s LimitExceededException) RequestID() string {
4720	return s.respMetadata.RequestID
4721}
4722
4723type ListAcceleratorsInput struct {
4724	_ struct{} `type:"structure"`
4725
4726	// The number of Global Accelerator objects that you want to return with this
4727	// call. The default value is 10.
4728	MaxResults *int64 `min:"1" type:"integer"`
4729
4730	// The token for the next set of results. You receive this token from a previous
4731	// call.
4732	NextToken *string `type:"string"`
4733}
4734
4735// String returns the string representation
4736func (s ListAcceleratorsInput) String() string {
4737	return awsutil.Prettify(s)
4738}
4739
4740// GoString returns the string representation
4741func (s ListAcceleratorsInput) GoString() string {
4742	return s.String()
4743}
4744
4745// Validate inspects the fields of the type to determine if they are valid.
4746func (s *ListAcceleratorsInput) Validate() error {
4747	invalidParams := request.ErrInvalidParams{Context: "ListAcceleratorsInput"}
4748	if s.MaxResults != nil && *s.MaxResults < 1 {
4749		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4750	}
4751
4752	if invalidParams.Len() > 0 {
4753		return invalidParams
4754	}
4755	return nil
4756}
4757
4758// SetMaxResults sets the MaxResults field's value.
4759func (s *ListAcceleratorsInput) SetMaxResults(v int64) *ListAcceleratorsInput {
4760	s.MaxResults = &v
4761	return s
4762}
4763
4764// SetNextToken sets the NextToken field's value.
4765func (s *ListAcceleratorsInput) SetNextToken(v string) *ListAcceleratorsInput {
4766	s.NextToken = &v
4767	return s
4768}
4769
4770type ListAcceleratorsOutput struct {
4771	_ struct{} `type:"structure"`
4772
4773	// The list of accelerators for a customer account.
4774	Accelerators []*Accelerator `type:"list"`
4775
4776	// The token for the next set of results. You receive this token from a previous
4777	// call.
4778	NextToken *string `type:"string"`
4779}
4780
4781// String returns the string representation
4782func (s ListAcceleratorsOutput) String() string {
4783	return awsutil.Prettify(s)
4784}
4785
4786// GoString returns the string representation
4787func (s ListAcceleratorsOutput) GoString() string {
4788	return s.String()
4789}
4790
4791// SetAccelerators sets the Accelerators field's value.
4792func (s *ListAcceleratorsOutput) SetAccelerators(v []*Accelerator) *ListAcceleratorsOutput {
4793	s.Accelerators = v
4794	return s
4795}
4796
4797// SetNextToken sets the NextToken field's value.
4798func (s *ListAcceleratorsOutput) SetNextToken(v string) *ListAcceleratorsOutput {
4799	s.NextToken = &v
4800	return s
4801}
4802
4803type ListByoipCidrsInput struct {
4804	_ struct{} `type:"structure"`
4805
4806	// The maximum number of results to return with a single call. To retrieve the
4807	// remaining results, make another call with the returned nextToken value.
4808	MaxResults *int64 `min:"1" type:"integer"`
4809
4810	// The token for the next page of results.
4811	NextToken *string `type:"string"`
4812}
4813
4814// String returns the string representation
4815func (s ListByoipCidrsInput) String() string {
4816	return awsutil.Prettify(s)
4817}
4818
4819// GoString returns the string representation
4820func (s ListByoipCidrsInput) GoString() string {
4821	return s.String()
4822}
4823
4824// Validate inspects the fields of the type to determine if they are valid.
4825func (s *ListByoipCidrsInput) Validate() error {
4826	invalidParams := request.ErrInvalidParams{Context: "ListByoipCidrsInput"}
4827	if s.MaxResults != nil && *s.MaxResults < 1 {
4828		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4829	}
4830
4831	if invalidParams.Len() > 0 {
4832		return invalidParams
4833	}
4834	return nil
4835}
4836
4837// SetMaxResults sets the MaxResults field's value.
4838func (s *ListByoipCidrsInput) SetMaxResults(v int64) *ListByoipCidrsInput {
4839	s.MaxResults = &v
4840	return s
4841}
4842
4843// SetNextToken sets the NextToken field's value.
4844func (s *ListByoipCidrsInput) SetNextToken(v string) *ListByoipCidrsInput {
4845	s.NextToken = &v
4846	return s
4847}
4848
4849type ListByoipCidrsOutput struct {
4850	_ struct{} `type:"structure"`
4851
4852	// Information about your address ranges.
4853	ByoipCidrs []*ByoipCidr `type:"list"`
4854
4855	// The token for the next page of results.
4856	NextToken *string `type:"string"`
4857}
4858
4859// String returns the string representation
4860func (s ListByoipCidrsOutput) String() string {
4861	return awsutil.Prettify(s)
4862}
4863
4864// GoString returns the string representation
4865func (s ListByoipCidrsOutput) GoString() string {
4866	return s.String()
4867}
4868
4869// SetByoipCidrs sets the ByoipCidrs field's value.
4870func (s *ListByoipCidrsOutput) SetByoipCidrs(v []*ByoipCidr) *ListByoipCidrsOutput {
4871	s.ByoipCidrs = v
4872	return s
4873}
4874
4875// SetNextToken sets the NextToken field's value.
4876func (s *ListByoipCidrsOutput) SetNextToken(v string) *ListByoipCidrsOutput {
4877	s.NextToken = &v
4878	return s
4879}
4880
4881type ListEndpointGroupsInput struct {
4882	_ struct{} `type:"structure"`
4883
4884	// The Amazon Resource Name (ARN) of the listener.
4885	//
4886	// ListenerArn is a required field
4887	ListenerArn *string `type:"string" required:"true"`
4888
4889	// The number of endpoint group objects that you want to return with this call.
4890	// The default value is 10.
4891	MaxResults *int64 `min:"1" type:"integer"`
4892
4893	// The token for the next set of results. You receive this token from a previous
4894	// call.
4895	NextToken *string `type:"string"`
4896}
4897
4898// String returns the string representation
4899func (s ListEndpointGroupsInput) String() string {
4900	return awsutil.Prettify(s)
4901}
4902
4903// GoString returns the string representation
4904func (s ListEndpointGroupsInput) GoString() string {
4905	return s.String()
4906}
4907
4908// Validate inspects the fields of the type to determine if they are valid.
4909func (s *ListEndpointGroupsInput) Validate() error {
4910	invalidParams := request.ErrInvalidParams{Context: "ListEndpointGroupsInput"}
4911	if s.ListenerArn == nil {
4912		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
4913	}
4914	if s.MaxResults != nil && *s.MaxResults < 1 {
4915		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4916	}
4917
4918	if invalidParams.Len() > 0 {
4919		return invalidParams
4920	}
4921	return nil
4922}
4923
4924// SetListenerArn sets the ListenerArn field's value.
4925func (s *ListEndpointGroupsInput) SetListenerArn(v string) *ListEndpointGroupsInput {
4926	s.ListenerArn = &v
4927	return s
4928}
4929
4930// SetMaxResults sets the MaxResults field's value.
4931func (s *ListEndpointGroupsInput) SetMaxResults(v int64) *ListEndpointGroupsInput {
4932	s.MaxResults = &v
4933	return s
4934}
4935
4936// SetNextToken sets the NextToken field's value.
4937func (s *ListEndpointGroupsInput) SetNextToken(v string) *ListEndpointGroupsInput {
4938	s.NextToken = &v
4939	return s
4940}
4941
4942type ListEndpointGroupsOutput struct {
4943	_ struct{} `type:"structure"`
4944
4945	// The list of the endpoint groups associated with a listener.
4946	EndpointGroups []*EndpointGroup `type:"list"`
4947
4948	// The token for the next set of results. You receive this token from a previous
4949	// call.
4950	NextToken *string `type:"string"`
4951}
4952
4953// String returns the string representation
4954func (s ListEndpointGroupsOutput) String() string {
4955	return awsutil.Prettify(s)
4956}
4957
4958// GoString returns the string representation
4959func (s ListEndpointGroupsOutput) GoString() string {
4960	return s.String()
4961}
4962
4963// SetEndpointGroups sets the EndpointGroups field's value.
4964func (s *ListEndpointGroupsOutput) SetEndpointGroups(v []*EndpointGroup) *ListEndpointGroupsOutput {
4965	s.EndpointGroups = v
4966	return s
4967}
4968
4969// SetNextToken sets the NextToken field's value.
4970func (s *ListEndpointGroupsOutput) SetNextToken(v string) *ListEndpointGroupsOutput {
4971	s.NextToken = &v
4972	return s
4973}
4974
4975type ListListenersInput struct {
4976	_ struct{} `type:"structure"`
4977
4978	// The Amazon Resource Name (ARN) of the accelerator for which you want to list
4979	// listener objects.
4980	//
4981	// AcceleratorArn is a required field
4982	AcceleratorArn *string `type:"string" required:"true"`
4983
4984	// The number of listener objects that you want to return with this call. The
4985	// default value is 10.
4986	MaxResults *int64 `min:"1" type:"integer"`
4987
4988	// The token for the next set of results. You receive this token from a previous
4989	// call.
4990	NextToken *string `type:"string"`
4991}
4992
4993// String returns the string representation
4994func (s ListListenersInput) String() string {
4995	return awsutil.Prettify(s)
4996}
4997
4998// GoString returns the string representation
4999func (s ListListenersInput) GoString() string {
5000	return s.String()
5001}
5002
5003// Validate inspects the fields of the type to determine if they are valid.
5004func (s *ListListenersInput) Validate() error {
5005	invalidParams := request.ErrInvalidParams{Context: "ListListenersInput"}
5006	if s.AcceleratorArn == nil {
5007		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
5008	}
5009	if s.MaxResults != nil && *s.MaxResults < 1 {
5010		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5011	}
5012
5013	if invalidParams.Len() > 0 {
5014		return invalidParams
5015	}
5016	return nil
5017}
5018
5019// SetAcceleratorArn sets the AcceleratorArn field's value.
5020func (s *ListListenersInput) SetAcceleratorArn(v string) *ListListenersInput {
5021	s.AcceleratorArn = &v
5022	return s
5023}
5024
5025// SetMaxResults sets the MaxResults field's value.
5026func (s *ListListenersInput) SetMaxResults(v int64) *ListListenersInput {
5027	s.MaxResults = &v
5028	return s
5029}
5030
5031// SetNextToken sets the NextToken field's value.
5032func (s *ListListenersInput) SetNextToken(v string) *ListListenersInput {
5033	s.NextToken = &v
5034	return s
5035}
5036
5037type ListListenersOutput struct {
5038	_ struct{} `type:"structure"`
5039
5040	// The list of listeners for an accelerator.
5041	Listeners []*Listener `type:"list"`
5042
5043	// The token for the next set of results. You receive this token from a previous
5044	// call.
5045	NextToken *string `type:"string"`
5046}
5047
5048// String returns the string representation
5049func (s ListListenersOutput) String() string {
5050	return awsutil.Prettify(s)
5051}
5052
5053// GoString returns the string representation
5054func (s ListListenersOutput) GoString() string {
5055	return s.String()
5056}
5057
5058// SetListeners sets the Listeners field's value.
5059func (s *ListListenersOutput) SetListeners(v []*Listener) *ListListenersOutput {
5060	s.Listeners = v
5061	return s
5062}
5063
5064// SetNextToken sets the NextToken field's value.
5065func (s *ListListenersOutput) SetNextToken(v string) *ListListenersOutput {
5066	s.NextToken = &v
5067	return s
5068}
5069
5070type ListTagsForResourceInput struct {
5071	_ struct{} `type:"structure"`
5072
5073	// The Amazon Resource Name (ARN) of the accelerator to list tags for. An ARN
5074	// uniquely identifies an accelerator.
5075	//
5076	// ResourceArn is a required field
5077	ResourceArn *string `min:"1" type:"string" required:"true"`
5078}
5079
5080// String returns the string representation
5081func (s ListTagsForResourceInput) String() string {
5082	return awsutil.Prettify(s)
5083}
5084
5085// GoString returns the string representation
5086func (s ListTagsForResourceInput) GoString() string {
5087	return s.String()
5088}
5089
5090// Validate inspects the fields of the type to determine if they are valid.
5091func (s *ListTagsForResourceInput) Validate() error {
5092	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
5093	if s.ResourceArn == nil {
5094		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
5095	}
5096	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
5097		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
5098	}
5099
5100	if invalidParams.Len() > 0 {
5101		return invalidParams
5102	}
5103	return nil
5104}
5105
5106// SetResourceArn sets the ResourceArn field's value.
5107func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
5108	s.ResourceArn = &v
5109	return s
5110}
5111
5112type ListTagsForResourceOutput struct {
5113	_ struct{} `type:"structure"`
5114
5115	// Root level tag for the Tags parameters.
5116	Tags []*Tag `type:"list"`
5117}
5118
5119// String returns the string representation
5120func (s ListTagsForResourceOutput) String() string {
5121	return awsutil.Prettify(s)
5122}
5123
5124// GoString returns the string representation
5125func (s ListTagsForResourceOutput) GoString() string {
5126	return s.String()
5127}
5128
5129// SetTags sets the Tags field's value.
5130func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
5131	s.Tags = v
5132	return s
5133}
5134
5135// A complex type for a listener.
5136type Listener struct {
5137	_ struct{} `type:"structure"`
5138
5139	// Client affinity lets you direct all requests from a user to the same endpoint,
5140	// if you have stateful applications, regardless of the port and protocol of
5141	// the client request. Clienty affinity gives you control over whether to always
5142	// route each client to the same specific endpoint.
5143	//
5144	// AWS Global Accelerator uses a consistent-flow hashing algorithm to choose
5145	// the optimal endpoint for a connection. If client affinity is NONE, Global
5146	// Accelerator uses the "five-tuple" (5-tuple) properties—source IP address,
5147	// source port, destination IP address, destination port, and protocol—to
5148	// select the hash value, and then chooses the best endpoint. However, with
5149	// this setting, if someone uses different ports to connect to Global Accelerator,
5150	// their connections might not be always routed to the same endpoint because
5151	// the hash value changes.
5152	//
5153	// If you want a given client to always be routed to the same endpoint, set
5154	// client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting,
5155	// Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client)
5156	// IP address and destination IP address—to select the hash value.
5157	//
5158	// The default value is NONE.
5159	ClientAffinity *string `type:"string" enum:"ClientAffinity"`
5160
5161	// The Amazon Resource Name (ARN) of the listener.
5162	ListenerArn *string `type:"string"`
5163
5164	// The list of port ranges for the connections from clients to the accelerator.
5165	PortRanges []*PortRange `min:"1" type:"list"`
5166
5167	// The protocol for the connections from clients to the accelerator.
5168	Protocol *string `type:"string" enum:"Protocol"`
5169}
5170
5171// String returns the string representation
5172func (s Listener) String() string {
5173	return awsutil.Prettify(s)
5174}
5175
5176// GoString returns the string representation
5177func (s Listener) GoString() string {
5178	return s.String()
5179}
5180
5181// SetClientAffinity sets the ClientAffinity field's value.
5182func (s *Listener) SetClientAffinity(v string) *Listener {
5183	s.ClientAffinity = &v
5184	return s
5185}
5186
5187// SetListenerArn sets the ListenerArn field's value.
5188func (s *Listener) SetListenerArn(v string) *Listener {
5189	s.ListenerArn = &v
5190	return s
5191}
5192
5193// SetPortRanges sets the PortRanges field's value.
5194func (s *Listener) SetPortRanges(v []*PortRange) *Listener {
5195	s.PortRanges = v
5196	return s
5197}
5198
5199// SetProtocol sets the Protocol field's value.
5200func (s *Listener) SetProtocol(v string) *Listener {
5201	s.Protocol = &v
5202	return s
5203}
5204
5205// The listener that you specified doesn't exist.
5206type ListenerNotFoundException struct {
5207	_            struct{} `type:"structure"`
5208	respMetadata protocol.ResponseMetadata
5209
5210	Message_ *string `locationName:"Message" type:"string"`
5211}
5212
5213// String returns the string representation
5214func (s ListenerNotFoundException) String() string {
5215	return awsutil.Prettify(s)
5216}
5217
5218// GoString returns the string representation
5219func (s ListenerNotFoundException) GoString() string {
5220	return s.String()
5221}
5222
5223func newErrorListenerNotFoundException(v protocol.ResponseMetadata) error {
5224	return &ListenerNotFoundException{
5225		respMetadata: v,
5226	}
5227}
5228
5229// Code returns the exception type name.
5230func (s ListenerNotFoundException) Code() string {
5231	return "ListenerNotFoundException"
5232}
5233
5234// Message returns the exception's message.
5235func (s ListenerNotFoundException) Message() string {
5236	if s.Message_ != nil {
5237		return *s.Message_
5238	}
5239	return ""
5240}
5241
5242// OrigErr always returns nil, satisfies awserr.Error interface.
5243func (s ListenerNotFoundException) OrigErr() error {
5244	return nil
5245}
5246
5247func (s ListenerNotFoundException) Error() string {
5248	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5249}
5250
5251// Status code returns the HTTP status code for the request's response error.
5252func (s ListenerNotFoundException) StatusCode() int {
5253	return s.respMetadata.StatusCode
5254}
5255
5256// RequestID returns the service's response RequestID for request.
5257func (s ListenerNotFoundException) RequestID() string {
5258	return s.respMetadata.RequestID
5259}
5260
5261// A complex type for a range of ports for a listener.
5262type PortRange struct {
5263	_ struct{} `type:"structure"`
5264
5265	// The first port in the range of ports, inclusive.
5266	FromPort *int64 `min:"1" type:"integer"`
5267
5268	// The last port in the range of ports, inclusive.
5269	ToPort *int64 `min:"1" type:"integer"`
5270}
5271
5272// String returns the string representation
5273func (s PortRange) String() string {
5274	return awsutil.Prettify(s)
5275}
5276
5277// GoString returns the string representation
5278func (s PortRange) GoString() string {
5279	return s.String()
5280}
5281
5282// Validate inspects the fields of the type to determine if they are valid.
5283func (s *PortRange) Validate() error {
5284	invalidParams := request.ErrInvalidParams{Context: "PortRange"}
5285	if s.FromPort != nil && *s.FromPort < 1 {
5286		invalidParams.Add(request.NewErrParamMinValue("FromPort", 1))
5287	}
5288	if s.ToPort != nil && *s.ToPort < 1 {
5289		invalidParams.Add(request.NewErrParamMinValue("ToPort", 1))
5290	}
5291
5292	if invalidParams.Len() > 0 {
5293		return invalidParams
5294	}
5295	return nil
5296}
5297
5298// SetFromPort sets the FromPort field's value.
5299func (s *PortRange) SetFromPort(v int64) *PortRange {
5300	s.FromPort = &v
5301	return s
5302}
5303
5304// SetToPort sets the ToPort field's value.
5305func (s *PortRange) SetToPort(v int64) *PortRange {
5306	s.ToPort = &v
5307	return s
5308}
5309
5310type ProvisionByoipCidrInput struct {
5311	_ struct{} `type:"structure"`
5312
5313	// The public IPv4 address range, in CIDR notation. The most specific IP prefix
5314	// that you can specify is /24. The address range cannot overlap with another
5315	// address range that you've brought to this or another Region.
5316	//
5317	// Cidr is a required field
5318	Cidr *string `type:"string" required:"true"`
5319
5320	// A signed document that proves that you are authorized to bring the specified
5321	// IP address range to Amazon using BYOIP.
5322	//
5323	// CidrAuthorizationContext is a required field
5324	CidrAuthorizationContext *CidrAuthorizationContext `type:"structure" required:"true"`
5325}
5326
5327// String returns the string representation
5328func (s ProvisionByoipCidrInput) String() string {
5329	return awsutil.Prettify(s)
5330}
5331
5332// GoString returns the string representation
5333func (s ProvisionByoipCidrInput) GoString() string {
5334	return s.String()
5335}
5336
5337// Validate inspects the fields of the type to determine if they are valid.
5338func (s *ProvisionByoipCidrInput) Validate() error {
5339	invalidParams := request.ErrInvalidParams{Context: "ProvisionByoipCidrInput"}
5340	if s.Cidr == nil {
5341		invalidParams.Add(request.NewErrParamRequired("Cidr"))
5342	}
5343	if s.CidrAuthorizationContext == nil {
5344		invalidParams.Add(request.NewErrParamRequired("CidrAuthorizationContext"))
5345	}
5346	if s.CidrAuthorizationContext != nil {
5347		if err := s.CidrAuthorizationContext.Validate(); err != nil {
5348			invalidParams.AddNested("CidrAuthorizationContext", err.(request.ErrInvalidParams))
5349		}
5350	}
5351
5352	if invalidParams.Len() > 0 {
5353		return invalidParams
5354	}
5355	return nil
5356}
5357
5358// SetCidr sets the Cidr field's value.
5359func (s *ProvisionByoipCidrInput) SetCidr(v string) *ProvisionByoipCidrInput {
5360	s.Cidr = &v
5361	return s
5362}
5363
5364// SetCidrAuthorizationContext sets the CidrAuthorizationContext field's value.
5365func (s *ProvisionByoipCidrInput) SetCidrAuthorizationContext(v *CidrAuthorizationContext) *ProvisionByoipCidrInput {
5366	s.CidrAuthorizationContext = v
5367	return s
5368}
5369
5370type ProvisionByoipCidrOutput struct {
5371	_ struct{} `type:"structure"`
5372
5373	// Information about the address range.
5374	ByoipCidr *ByoipCidr `type:"structure"`
5375}
5376
5377// String returns the string representation
5378func (s ProvisionByoipCidrOutput) String() string {
5379	return awsutil.Prettify(s)
5380}
5381
5382// GoString returns the string representation
5383func (s ProvisionByoipCidrOutput) GoString() string {
5384	return s.String()
5385}
5386
5387// SetByoipCidr sets the ByoipCidr field's value.
5388func (s *ProvisionByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *ProvisionByoipCidrOutput {
5389	s.ByoipCidr = v
5390	return s
5391}
5392
5393// A complex type that contains a Tag key and Tag value.
5394type Tag struct {
5395	_ struct{} `type:"structure"`
5396
5397	// A string that contains a Tag key.
5398	//
5399	// Key is a required field
5400	Key *string `min:"1" type:"string" required:"true"`
5401
5402	// A string that contains a Tag value.
5403	//
5404	// Value is a required field
5405	Value *string `type:"string" required:"true"`
5406}
5407
5408// String returns the string representation
5409func (s Tag) String() string {
5410	return awsutil.Prettify(s)
5411}
5412
5413// GoString returns the string representation
5414func (s Tag) GoString() string {
5415	return s.String()
5416}
5417
5418// Validate inspects the fields of the type to determine if they are valid.
5419func (s *Tag) Validate() error {
5420	invalidParams := request.ErrInvalidParams{Context: "Tag"}
5421	if s.Key == nil {
5422		invalidParams.Add(request.NewErrParamRequired("Key"))
5423	}
5424	if s.Key != nil && len(*s.Key) < 1 {
5425		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
5426	}
5427	if s.Value == nil {
5428		invalidParams.Add(request.NewErrParamRequired("Value"))
5429	}
5430
5431	if invalidParams.Len() > 0 {
5432		return invalidParams
5433	}
5434	return nil
5435}
5436
5437// SetKey sets the Key field's value.
5438func (s *Tag) SetKey(v string) *Tag {
5439	s.Key = &v
5440	return s
5441}
5442
5443// SetValue sets the Value field's value.
5444func (s *Tag) SetValue(v string) *Tag {
5445	s.Value = &v
5446	return s
5447}
5448
5449type TagResourceInput struct {
5450	_ struct{} `type:"structure"`
5451
5452	// The Amazon Resource Name (ARN) of the Global Accelerator resource to add
5453	// tags to. An ARN uniquely identifies a resource.
5454	//
5455	// ResourceArn is a required field
5456	ResourceArn *string `min:"1" type:"string" required:"true"`
5457
5458	// The tags to add to a resource. A tag consists of a key and a value that you
5459	// define.
5460	//
5461	// Tags is a required field
5462	Tags []*Tag `type:"list" required:"true"`
5463}
5464
5465// String returns the string representation
5466func (s TagResourceInput) String() string {
5467	return awsutil.Prettify(s)
5468}
5469
5470// GoString returns the string representation
5471func (s TagResourceInput) GoString() string {
5472	return s.String()
5473}
5474
5475// Validate inspects the fields of the type to determine if they are valid.
5476func (s *TagResourceInput) Validate() error {
5477	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
5478	if s.ResourceArn == nil {
5479		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
5480	}
5481	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
5482		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
5483	}
5484	if s.Tags == nil {
5485		invalidParams.Add(request.NewErrParamRequired("Tags"))
5486	}
5487	if s.Tags != nil {
5488		for i, v := range s.Tags {
5489			if v == nil {
5490				continue
5491			}
5492			if err := v.Validate(); err != nil {
5493				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5494			}
5495		}
5496	}
5497
5498	if invalidParams.Len() > 0 {
5499		return invalidParams
5500	}
5501	return nil
5502}
5503
5504// SetResourceArn sets the ResourceArn field's value.
5505func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
5506	s.ResourceArn = &v
5507	return s
5508}
5509
5510// SetTags sets the Tags field's value.
5511func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
5512	s.Tags = v
5513	return s
5514}
5515
5516type TagResourceOutput struct {
5517	_ struct{} `type:"structure"`
5518}
5519
5520// String returns the string representation
5521func (s TagResourceOutput) String() string {
5522	return awsutil.Prettify(s)
5523}
5524
5525// GoString returns the string representation
5526func (s TagResourceOutput) GoString() string {
5527	return s.String()
5528}
5529
5530type UntagResourceInput struct {
5531	_ struct{} `type:"structure"`
5532
5533	// The Amazon Resource Name (ARN) of the Global Accelerator resource to remove
5534	// tags from. An ARN uniquely identifies a resource.
5535	//
5536	// ResourceArn is a required field
5537	ResourceArn *string `min:"1" type:"string" required:"true"`
5538
5539	// The tag key pairs that you want to remove from the specified resources.
5540	//
5541	// TagKeys is a required field
5542	TagKeys []*string `type:"list" required:"true"`
5543}
5544
5545// String returns the string representation
5546func (s UntagResourceInput) String() string {
5547	return awsutil.Prettify(s)
5548}
5549
5550// GoString returns the string representation
5551func (s UntagResourceInput) GoString() string {
5552	return s.String()
5553}
5554
5555// Validate inspects the fields of the type to determine if they are valid.
5556func (s *UntagResourceInput) Validate() error {
5557	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
5558	if s.ResourceArn == nil {
5559		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
5560	}
5561	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
5562		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
5563	}
5564	if s.TagKeys == nil {
5565		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
5566	}
5567
5568	if invalidParams.Len() > 0 {
5569		return invalidParams
5570	}
5571	return nil
5572}
5573
5574// SetResourceArn sets the ResourceArn field's value.
5575func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
5576	s.ResourceArn = &v
5577	return s
5578}
5579
5580// SetTagKeys sets the TagKeys field's value.
5581func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
5582	s.TagKeys = v
5583	return s
5584}
5585
5586type UntagResourceOutput struct {
5587	_ struct{} `type:"structure"`
5588}
5589
5590// String returns the string representation
5591func (s UntagResourceOutput) String() string {
5592	return awsutil.Prettify(s)
5593}
5594
5595// GoString returns the string representation
5596func (s UntagResourceOutput) GoString() string {
5597	return s.String()
5598}
5599
5600type UpdateAcceleratorAttributesInput struct {
5601	_ struct{} `type:"structure"`
5602
5603	// The Amazon Resource Name (ARN) of the accelerator that you want to update.
5604	//
5605	// AcceleratorArn is a required field
5606	AcceleratorArn *string `type:"string" required:"true"`
5607
5608	// Update whether flow logs are enabled. The default value is false. If the
5609	// value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.
5610	//
5611	// For more information, see Flow Logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html)
5612	// in the AWS Global Accelerator Developer Guide.
5613	FlowLogsEnabled *bool `type:"boolean"`
5614
5615	// The name of the Amazon S3 bucket for the flow logs. Attribute is required
5616	// if FlowLogsEnabled is true. The bucket must exist and have a bucket policy
5617	// that grants AWS Global Accelerator permission to write to the bucket.
5618	FlowLogsS3Bucket *string `type:"string"`
5619
5620	// Update the prefix for the location in the Amazon S3 bucket for the flow logs.
5621	// Attribute is required if FlowLogsEnabled is true.
5622	//
5623	// If you don’t specify a prefix, the flow logs are stored in the root of
5624	// the bucket. If you specify slash (/) for the S3 bucket prefix, the log file
5625	// bucket folder structure will include a double slash (//), like the following:
5626	//
5627	// s3-bucket_name//AWSLogs/aws_account_id
5628	FlowLogsS3Prefix *string `type:"string"`
5629}
5630
5631// String returns the string representation
5632func (s UpdateAcceleratorAttributesInput) String() string {
5633	return awsutil.Prettify(s)
5634}
5635
5636// GoString returns the string representation
5637func (s UpdateAcceleratorAttributesInput) GoString() string {
5638	return s.String()
5639}
5640
5641// Validate inspects the fields of the type to determine if they are valid.
5642func (s *UpdateAcceleratorAttributesInput) Validate() error {
5643	invalidParams := request.ErrInvalidParams{Context: "UpdateAcceleratorAttributesInput"}
5644	if s.AcceleratorArn == nil {
5645		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
5646	}
5647
5648	if invalidParams.Len() > 0 {
5649		return invalidParams
5650	}
5651	return nil
5652}
5653
5654// SetAcceleratorArn sets the AcceleratorArn field's value.
5655func (s *UpdateAcceleratorAttributesInput) SetAcceleratorArn(v string) *UpdateAcceleratorAttributesInput {
5656	s.AcceleratorArn = &v
5657	return s
5658}
5659
5660// SetFlowLogsEnabled sets the FlowLogsEnabled field's value.
5661func (s *UpdateAcceleratorAttributesInput) SetFlowLogsEnabled(v bool) *UpdateAcceleratorAttributesInput {
5662	s.FlowLogsEnabled = &v
5663	return s
5664}
5665
5666// SetFlowLogsS3Bucket sets the FlowLogsS3Bucket field's value.
5667func (s *UpdateAcceleratorAttributesInput) SetFlowLogsS3Bucket(v string) *UpdateAcceleratorAttributesInput {
5668	s.FlowLogsS3Bucket = &v
5669	return s
5670}
5671
5672// SetFlowLogsS3Prefix sets the FlowLogsS3Prefix field's value.
5673func (s *UpdateAcceleratorAttributesInput) SetFlowLogsS3Prefix(v string) *UpdateAcceleratorAttributesInput {
5674	s.FlowLogsS3Prefix = &v
5675	return s
5676}
5677
5678type UpdateAcceleratorAttributesOutput struct {
5679	_ struct{} `type:"structure"`
5680
5681	// Updated attributes for the accelerator.
5682	AcceleratorAttributes *AcceleratorAttributes `type:"structure"`
5683}
5684
5685// String returns the string representation
5686func (s UpdateAcceleratorAttributesOutput) String() string {
5687	return awsutil.Prettify(s)
5688}
5689
5690// GoString returns the string representation
5691func (s UpdateAcceleratorAttributesOutput) GoString() string {
5692	return s.String()
5693}
5694
5695// SetAcceleratorAttributes sets the AcceleratorAttributes field's value.
5696func (s *UpdateAcceleratorAttributesOutput) SetAcceleratorAttributes(v *AcceleratorAttributes) *UpdateAcceleratorAttributesOutput {
5697	s.AcceleratorAttributes = v
5698	return s
5699}
5700
5701type UpdateAcceleratorInput struct {
5702	_ struct{} `type:"structure"`
5703
5704	// The Amazon Resource Name (ARN) of the accelerator to update.
5705	//
5706	// AcceleratorArn is a required field
5707	AcceleratorArn *string `type:"string" required:"true"`
5708
5709	// Indicates whether an accelerator is enabled. The value is true or false.
5710	// The default value is true.
5711	//
5712	// If the value is set to true, the accelerator cannot be deleted. If set to
5713	// false, the accelerator can be deleted.
5714	Enabled *bool `type:"boolean"`
5715
5716	// The value for the address type must be IPv4.
5717	IpAddressType *string `type:"string" enum:"IpAddressType"`
5718
5719	// The name of the accelerator. The name can have a maximum of 32 characters,
5720	// must contain only alphanumeric characters or hyphens (-), and must not begin
5721	// or end with a hyphen.
5722	Name *string `type:"string"`
5723}
5724
5725// String returns the string representation
5726func (s UpdateAcceleratorInput) String() string {
5727	return awsutil.Prettify(s)
5728}
5729
5730// GoString returns the string representation
5731func (s UpdateAcceleratorInput) GoString() string {
5732	return s.String()
5733}
5734
5735// Validate inspects the fields of the type to determine if they are valid.
5736func (s *UpdateAcceleratorInput) Validate() error {
5737	invalidParams := request.ErrInvalidParams{Context: "UpdateAcceleratorInput"}
5738	if s.AcceleratorArn == nil {
5739		invalidParams.Add(request.NewErrParamRequired("AcceleratorArn"))
5740	}
5741
5742	if invalidParams.Len() > 0 {
5743		return invalidParams
5744	}
5745	return nil
5746}
5747
5748// SetAcceleratorArn sets the AcceleratorArn field's value.
5749func (s *UpdateAcceleratorInput) SetAcceleratorArn(v string) *UpdateAcceleratorInput {
5750	s.AcceleratorArn = &v
5751	return s
5752}
5753
5754// SetEnabled sets the Enabled field's value.
5755func (s *UpdateAcceleratorInput) SetEnabled(v bool) *UpdateAcceleratorInput {
5756	s.Enabled = &v
5757	return s
5758}
5759
5760// SetIpAddressType sets the IpAddressType field's value.
5761func (s *UpdateAcceleratorInput) SetIpAddressType(v string) *UpdateAcceleratorInput {
5762	s.IpAddressType = &v
5763	return s
5764}
5765
5766// SetName sets the Name field's value.
5767func (s *UpdateAcceleratorInput) SetName(v string) *UpdateAcceleratorInput {
5768	s.Name = &v
5769	return s
5770}
5771
5772type UpdateAcceleratorOutput struct {
5773	_ struct{} `type:"structure"`
5774
5775	// Information about the updated accelerator.
5776	Accelerator *Accelerator `type:"structure"`
5777}
5778
5779// String returns the string representation
5780func (s UpdateAcceleratorOutput) String() string {
5781	return awsutil.Prettify(s)
5782}
5783
5784// GoString returns the string representation
5785func (s UpdateAcceleratorOutput) GoString() string {
5786	return s.String()
5787}
5788
5789// SetAccelerator sets the Accelerator field's value.
5790func (s *UpdateAcceleratorOutput) SetAccelerator(v *Accelerator) *UpdateAcceleratorOutput {
5791	s.Accelerator = v
5792	return s
5793}
5794
5795type UpdateEndpointGroupInput struct {
5796	_ struct{} `type:"structure"`
5797
5798	// The list of endpoint objects.
5799	EndpointConfigurations []*EndpointConfiguration `type:"list"`
5800
5801	// The Amazon Resource Name (ARN) of the endpoint group.
5802	//
5803	// EndpointGroupArn is a required field
5804	EndpointGroupArn *string `type:"string" required:"true"`
5805
5806	// The time—10 seconds or 30 seconds—between each health check for an endpoint.
5807	// The default value is 30.
5808	HealthCheckIntervalSeconds *int64 `min:"10" type:"integer"`
5809
5810	// If the protocol is HTTP/S, then this specifies the path that is the destination
5811	// for health check targets. The default value is slash (/).
5812	HealthCheckPath *string `type:"string"`
5813
5814	// The port that AWS Global Accelerator uses to check the health of endpoints
5815	// that are part of this endpoint group. The default port is the listener port
5816	// that this endpoint group is associated with. If the listener port is a list
5817	// of ports, Global Accelerator uses the first port in the list.
5818	HealthCheckPort *int64 `min:"1" type:"integer"`
5819
5820	// The protocol that AWS Global Accelerator uses to check the health of endpoints
5821	// that are part of this endpoint group. The default value is TCP.
5822	HealthCheckProtocol *string `type:"string" enum:"HealthCheckProtocol"`
5823
5824	// The number of consecutive health checks required to set the state of a healthy
5825	// endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default
5826	// value is 3.
5827	ThresholdCount *int64 `min:"1" type:"integer"`
5828
5829	// The percentage of traffic to send to an AWS Region. Additional traffic is
5830	// distributed to other endpoint groups for this listener.
5831	//
5832	// Use this action to increase (dial up) or decrease (dial down) traffic to
5833	// a specific Region. The percentage is applied to the traffic that would otherwise
5834	// have been routed to the Region based on optimal routing.
5835	//
5836	// The default value is 100.
5837	TrafficDialPercentage *float64 `type:"float"`
5838}
5839
5840// String returns the string representation
5841func (s UpdateEndpointGroupInput) String() string {
5842	return awsutil.Prettify(s)
5843}
5844
5845// GoString returns the string representation
5846func (s UpdateEndpointGroupInput) GoString() string {
5847	return s.String()
5848}
5849
5850// Validate inspects the fields of the type to determine if they are valid.
5851func (s *UpdateEndpointGroupInput) Validate() error {
5852	invalidParams := request.ErrInvalidParams{Context: "UpdateEndpointGroupInput"}
5853	if s.EndpointGroupArn == nil {
5854		invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn"))
5855	}
5856	if s.HealthCheckIntervalSeconds != nil && *s.HealthCheckIntervalSeconds < 10 {
5857		invalidParams.Add(request.NewErrParamMinValue("HealthCheckIntervalSeconds", 10))
5858	}
5859	if s.HealthCheckPort != nil && *s.HealthCheckPort < 1 {
5860		invalidParams.Add(request.NewErrParamMinValue("HealthCheckPort", 1))
5861	}
5862	if s.ThresholdCount != nil && *s.ThresholdCount < 1 {
5863		invalidParams.Add(request.NewErrParamMinValue("ThresholdCount", 1))
5864	}
5865
5866	if invalidParams.Len() > 0 {
5867		return invalidParams
5868	}
5869	return nil
5870}
5871
5872// SetEndpointConfigurations sets the EndpointConfigurations field's value.
5873func (s *UpdateEndpointGroupInput) SetEndpointConfigurations(v []*EndpointConfiguration) *UpdateEndpointGroupInput {
5874	s.EndpointConfigurations = v
5875	return s
5876}
5877
5878// SetEndpointGroupArn sets the EndpointGroupArn field's value.
5879func (s *UpdateEndpointGroupInput) SetEndpointGroupArn(v string) *UpdateEndpointGroupInput {
5880	s.EndpointGroupArn = &v
5881	return s
5882}
5883
5884// SetHealthCheckIntervalSeconds sets the HealthCheckIntervalSeconds field's value.
5885func (s *UpdateEndpointGroupInput) SetHealthCheckIntervalSeconds(v int64) *UpdateEndpointGroupInput {
5886	s.HealthCheckIntervalSeconds = &v
5887	return s
5888}
5889
5890// SetHealthCheckPath sets the HealthCheckPath field's value.
5891func (s *UpdateEndpointGroupInput) SetHealthCheckPath(v string) *UpdateEndpointGroupInput {
5892	s.HealthCheckPath = &v
5893	return s
5894}
5895
5896// SetHealthCheckPort sets the HealthCheckPort field's value.
5897func (s *UpdateEndpointGroupInput) SetHealthCheckPort(v int64) *UpdateEndpointGroupInput {
5898	s.HealthCheckPort = &v
5899	return s
5900}
5901
5902// SetHealthCheckProtocol sets the HealthCheckProtocol field's value.
5903func (s *UpdateEndpointGroupInput) SetHealthCheckProtocol(v string) *UpdateEndpointGroupInput {
5904	s.HealthCheckProtocol = &v
5905	return s
5906}
5907
5908// SetThresholdCount sets the ThresholdCount field's value.
5909func (s *UpdateEndpointGroupInput) SetThresholdCount(v int64) *UpdateEndpointGroupInput {
5910	s.ThresholdCount = &v
5911	return s
5912}
5913
5914// SetTrafficDialPercentage sets the TrafficDialPercentage field's value.
5915func (s *UpdateEndpointGroupInput) SetTrafficDialPercentage(v float64) *UpdateEndpointGroupInput {
5916	s.TrafficDialPercentage = &v
5917	return s
5918}
5919
5920type UpdateEndpointGroupOutput struct {
5921	_ struct{} `type:"structure"`
5922
5923	// The information about the endpoint group that was updated.
5924	EndpointGroup *EndpointGroup `type:"structure"`
5925}
5926
5927// String returns the string representation
5928func (s UpdateEndpointGroupOutput) String() string {
5929	return awsutil.Prettify(s)
5930}
5931
5932// GoString returns the string representation
5933func (s UpdateEndpointGroupOutput) GoString() string {
5934	return s.String()
5935}
5936
5937// SetEndpointGroup sets the EndpointGroup field's value.
5938func (s *UpdateEndpointGroupOutput) SetEndpointGroup(v *EndpointGroup) *UpdateEndpointGroupOutput {
5939	s.EndpointGroup = v
5940	return s
5941}
5942
5943type UpdateListenerInput struct {
5944	_ struct{} `type:"structure"`
5945
5946	// Client affinity lets you direct all requests from a user to the same endpoint,
5947	// if you have stateful applications, regardless of the port and protocol of
5948	// the client request. Clienty affinity gives you control over whether to always
5949	// route each client to the same specific endpoint.
5950	//
5951	// AWS Global Accelerator uses a consistent-flow hashing algorithm to choose
5952	// the optimal endpoint for a connection. If client affinity is NONE, Global
5953	// Accelerator uses the "five-tuple" (5-tuple) properties—source IP address,
5954	// source port, destination IP address, destination port, and protocol—to
5955	// select the hash value, and then chooses the best endpoint. However, with
5956	// this setting, if someone uses different ports to connect to Global Accelerator,
5957	// their connections might not be always routed to the same endpoint because
5958	// the hash value changes.
5959	//
5960	// If you want a given client to always be routed to the same endpoint, set
5961	// client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting,
5962	// Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client)
5963	// IP address and destination IP address—to select the hash value.
5964	//
5965	// The default value is NONE.
5966	ClientAffinity *string `type:"string" enum:"ClientAffinity"`
5967
5968	// The Amazon Resource Name (ARN) of the listener to update.
5969	//
5970	// ListenerArn is a required field
5971	ListenerArn *string `type:"string" required:"true"`
5972
5973	// The updated list of port ranges for the connections from clients to the accelerator.
5974	PortRanges []*PortRange `min:"1" type:"list"`
5975
5976	// The updated protocol for the connections from clients to the accelerator.
5977	Protocol *string `type:"string" enum:"Protocol"`
5978}
5979
5980// String returns the string representation
5981func (s UpdateListenerInput) String() string {
5982	return awsutil.Prettify(s)
5983}
5984
5985// GoString returns the string representation
5986func (s UpdateListenerInput) GoString() string {
5987	return s.String()
5988}
5989
5990// Validate inspects the fields of the type to determine if they are valid.
5991func (s *UpdateListenerInput) Validate() error {
5992	invalidParams := request.ErrInvalidParams{Context: "UpdateListenerInput"}
5993	if s.ListenerArn == nil {
5994		invalidParams.Add(request.NewErrParamRequired("ListenerArn"))
5995	}
5996	if s.PortRanges != nil && len(s.PortRanges) < 1 {
5997		invalidParams.Add(request.NewErrParamMinLen("PortRanges", 1))
5998	}
5999	if s.PortRanges != nil {
6000		for i, v := range s.PortRanges {
6001			if v == nil {
6002				continue
6003			}
6004			if err := v.Validate(); err != nil {
6005				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PortRanges", i), err.(request.ErrInvalidParams))
6006			}
6007		}
6008	}
6009
6010	if invalidParams.Len() > 0 {
6011		return invalidParams
6012	}
6013	return nil
6014}
6015
6016// SetClientAffinity sets the ClientAffinity field's value.
6017func (s *UpdateListenerInput) SetClientAffinity(v string) *UpdateListenerInput {
6018	s.ClientAffinity = &v
6019	return s
6020}
6021
6022// SetListenerArn sets the ListenerArn field's value.
6023func (s *UpdateListenerInput) SetListenerArn(v string) *UpdateListenerInput {
6024	s.ListenerArn = &v
6025	return s
6026}
6027
6028// SetPortRanges sets the PortRanges field's value.
6029func (s *UpdateListenerInput) SetPortRanges(v []*PortRange) *UpdateListenerInput {
6030	s.PortRanges = v
6031	return s
6032}
6033
6034// SetProtocol sets the Protocol field's value.
6035func (s *UpdateListenerInput) SetProtocol(v string) *UpdateListenerInput {
6036	s.Protocol = &v
6037	return s
6038}
6039
6040type UpdateListenerOutput struct {
6041	_ struct{} `type:"structure"`
6042
6043	// Information for the updated listener.
6044	Listener *Listener `type:"structure"`
6045}
6046
6047// String returns the string representation
6048func (s UpdateListenerOutput) String() string {
6049	return awsutil.Prettify(s)
6050}
6051
6052// GoString returns the string representation
6053func (s UpdateListenerOutput) GoString() string {
6054	return s.String()
6055}
6056
6057// SetListener sets the Listener field's value.
6058func (s *UpdateListenerOutput) SetListener(v *Listener) *UpdateListenerOutput {
6059	s.Listener = v
6060	return s
6061}
6062
6063type WithdrawByoipCidrInput struct {
6064	_ struct{} `type:"structure"`
6065
6066	// The address range, in CIDR notation.
6067	//
6068	// Cidr is a required field
6069	Cidr *string `type:"string" required:"true"`
6070}
6071
6072// String returns the string representation
6073func (s WithdrawByoipCidrInput) String() string {
6074	return awsutil.Prettify(s)
6075}
6076
6077// GoString returns the string representation
6078func (s WithdrawByoipCidrInput) GoString() string {
6079	return s.String()
6080}
6081
6082// Validate inspects the fields of the type to determine if they are valid.
6083func (s *WithdrawByoipCidrInput) Validate() error {
6084	invalidParams := request.ErrInvalidParams{Context: "WithdrawByoipCidrInput"}
6085	if s.Cidr == nil {
6086		invalidParams.Add(request.NewErrParamRequired("Cidr"))
6087	}
6088
6089	if invalidParams.Len() > 0 {
6090		return invalidParams
6091	}
6092	return nil
6093}
6094
6095// SetCidr sets the Cidr field's value.
6096func (s *WithdrawByoipCidrInput) SetCidr(v string) *WithdrawByoipCidrInput {
6097	s.Cidr = &v
6098	return s
6099}
6100
6101type WithdrawByoipCidrOutput struct {
6102	_ struct{} `type:"structure"`
6103
6104	// Information about the address pool.
6105	ByoipCidr *ByoipCidr `type:"structure"`
6106}
6107
6108// String returns the string representation
6109func (s WithdrawByoipCidrOutput) String() string {
6110	return awsutil.Prettify(s)
6111}
6112
6113// GoString returns the string representation
6114func (s WithdrawByoipCidrOutput) GoString() string {
6115	return s.String()
6116}
6117
6118// SetByoipCidr sets the ByoipCidr field's value.
6119func (s *WithdrawByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *WithdrawByoipCidrOutput {
6120	s.ByoipCidr = v
6121	return s
6122}
6123
6124const (
6125	// AcceleratorStatusDeployed is a AcceleratorStatus enum value
6126	AcceleratorStatusDeployed = "DEPLOYED"
6127
6128	// AcceleratorStatusInProgress is a AcceleratorStatus enum value
6129	AcceleratorStatusInProgress = "IN_PROGRESS"
6130)
6131
6132const (
6133	// ByoipCidrStatePendingProvisioning is a ByoipCidrState enum value
6134	ByoipCidrStatePendingProvisioning = "PENDING_PROVISIONING"
6135
6136	// ByoipCidrStateReady is a ByoipCidrState enum value
6137	ByoipCidrStateReady = "READY"
6138
6139	// ByoipCidrStatePendingAdvertising is a ByoipCidrState enum value
6140	ByoipCidrStatePendingAdvertising = "PENDING_ADVERTISING"
6141
6142	// ByoipCidrStateAdvertising is a ByoipCidrState enum value
6143	ByoipCidrStateAdvertising = "ADVERTISING"
6144
6145	// ByoipCidrStatePendingWithdrawing is a ByoipCidrState enum value
6146	ByoipCidrStatePendingWithdrawing = "PENDING_WITHDRAWING"
6147
6148	// ByoipCidrStatePendingDeprovisioning is a ByoipCidrState enum value
6149	ByoipCidrStatePendingDeprovisioning = "PENDING_DEPROVISIONING"
6150
6151	// ByoipCidrStateDeprovisioned is a ByoipCidrState enum value
6152	ByoipCidrStateDeprovisioned = "DEPROVISIONED"
6153
6154	// ByoipCidrStateFailedProvision is a ByoipCidrState enum value
6155	ByoipCidrStateFailedProvision = "FAILED_PROVISION"
6156
6157	// ByoipCidrStateFailedAdvertising is a ByoipCidrState enum value
6158	ByoipCidrStateFailedAdvertising = "FAILED_ADVERTISING"
6159
6160	// ByoipCidrStateFailedWithdraw is a ByoipCidrState enum value
6161	ByoipCidrStateFailedWithdraw = "FAILED_WITHDRAW"
6162
6163	// ByoipCidrStateFailedDeprovision is a ByoipCidrState enum value
6164	ByoipCidrStateFailedDeprovision = "FAILED_DEPROVISION"
6165)
6166
6167const (
6168	// ClientAffinityNone is a ClientAffinity enum value
6169	ClientAffinityNone = "NONE"
6170
6171	// ClientAffinitySourceIp is a ClientAffinity enum value
6172	ClientAffinitySourceIp = "SOURCE_IP"
6173)
6174
6175const (
6176	// HealthCheckProtocolTcp is a HealthCheckProtocol enum value
6177	HealthCheckProtocolTcp = "TCP"
6178
6179	// HealthCheckProtocolHttp is a HealthCheckProtocol enum value
6180	HealthCheckProtocolHttp = "HTTP"
6181
6182	// HealthCheckProtocolHttps is a HealthCheckProtocol enum value
6183	HealthCheckProtocolHttps = "HTTPS"
6184)
6185
6186const (
6187	// HealthStateInitial is a HealthState enum value
6188	HealthStateInitial = "INITIAL"
6189
6190	// HealthStateHealthy is a HealthState enum value
6191	HealthStateHealthy = "HEALTHY"
6192
6193	// HealthStateUnhealthy is a HealthState enum value
6194	HealthStateUnhealthy = "UNHEALTHY"
6195)
6196
6197const (
6198	// IpAddressTypeIpv4 is a IpAddressType enum value
6199	IpAddressTypeIpv4 = "IPV4"
6200)
6201
6202const (
6203	// ProtocolTcp is a Protocol enum value
6204	ProtocolTcp = "TCP"
6205
6206	// ProtocolUdp is a Protocol enum value
6207	ProtocolUdp = "UDP"
6208)
6209