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