github.com/aavshr/aws-sdk-go@v1.41.3/service/elbv2/api.go (about)

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