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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package elb
     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 opAddTags = "AddTags"
    17  
    18  // AddTagsRequest generates a "aws/request.Request" representing the
    19  // client's request for the AddTags 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 AddTags for more information on using the AddTags
    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 AddTagsRequest method.
    34  //    req, resp := client.AddTagsRequest(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/elasticloadbalancing-2012-06-01/AddTags
    42  func (c *ELB) AddTagsRequest(input *AddTagsInput) (req *request.Request, output *AddTagsOutput) {
    43  	op := &request.Operation{
    44  		Name:       opAddTags,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &AddTagsInput{}
    51  	}
    52  
    53  	output = &AddTagsOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
    56  	return
    57  }
    58  
    59  // AddTags API operation for Elastic Load Balancing.
    60  //
    61  // Adds the specified tags to the specified load balancer. Each load balancer
    62  // can have a maximum of 10 tags.
    63  //
    64  // Each tag consists of a key and an optional value. If a tag with the same
    65  // key is already associated with the load balancer, AddTags updates its value.
    66  //
    67  // For more information, see Tag Your Classic Load Balancer (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/add-remove-tags.html)
    68  // in the Classic 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 AddTags for usage and error information.
    76  //
    77  // Returned Error Codes:
    78  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
    79  //   The specified load balancer does not exist.
    80  //
    81  //   * ErrCodeTooManyTagsException "TooManyTags"
    82  //   The quota for the number of tags that can be assigned to a load balancer
    83  //   has been reached.
    84  //
    85  //   * ErrCodeDuplicateTagKeysException "DuplicateTagKeys"
    86  //   A tag key was specified more than once.
    87  //
    88  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/AddTags
    89  func (c *ELB) AddTags(input *AddTagsInput) (*AddTagsOutput, error) {
    90  	req, out := c.AddTagsRequest(input)
    91  	return out, req.Send()
    92  }
    93  
    94  // AddTagsWithContext is the same as AddTags with the addition of
    95  // the ability to pass a context and additional request options.
    96  //
    97  // See AddTags for details on how to use this API operation.
    98  //
    99  // The context must be non-nil and will be used for request cancellation. If
   100  // the context is nil a panic will occur. In the future the SDK may create
   101  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   102  // for more information on using Contexts.
   103  func (c *ELB) AddTagsWithContext(ctx aws.Context, input *AddTagsInput, opts ...request.Option) (*AddTagsOutput, error) {
   104  	req, out := c.AddTagsRequest(input)
   105  	req.SetContext(ctx)
   106  	req.ApplyOptions(opts...)
   107  	return out, req.Send()
   108  }
   109  
   110  const opApplySecurityGroupsToLoadBalancer = "ApplySecurityGroupsToLoadBalancer"
   111  
   112  // ApplySecurityGroupsToLoadBalancerRequest generates a "aws/request.Request" representing the
   113  // client's request for the ApplySecurityGroupsToLoadBalancer operation. The "output" return
   114  // value will be populated with the request's response once the request completes
   115  // successfully.
   116  //
   117  // Use "Send" method on the returned Request to send the API call to the service.
   118  // the "output" return value is not valid until after Send returns without error.
   119  //
   120  // See ApplySecurityGroupsToLoadBalancer for more information on using the ApplySecurityGroupsToLoadBalancer
   121  // API call, and error handling.
   122  //
   123  // This method is useful when you want to inject custom logic or configuration
   124  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   125  //
   126  //
   127  //    // Example sending a request using the ApplySecurityGroupsToLoadBalancerRequest method.
   128  //    req, resp := client.ApplySecurityGroupsToLoadBalancerRequest(params)
   129  //
   130  //    err := req.Send()
   131  //    if err == nil { // resp is now filled
   132  //        fmt.Println(resp)
   133  //    }
   134  //
   135  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ApplySecurityGroupsToLoadBalancer
   136  func (c *ELB) ApplySecurityGroupsToLoadBalancerRequest(input *ApplySecurityGroupsToLoadBalancerInput) (req *request.Request, output *ApplySecurityGroupsToLoadBalancerOutput) {
   137  	op := &request.Operation{
   138  		Name:       opApplySecurityGroupsToLoadBalancer,
   139  		HTTPMethod: "POST",
   140  		HTTPPath:   "/",
   141  	}
   142  
   143  	if input == nil {
   144  		input = &ApplySecurityGroupsToLoadBalancerInput{}
   145  	}
   146  
   147  	output = &ApplySecurityGroupsToLoadBalancerOutput{}
   148  	req = c.newRequest(op, input, output)
   149  	return
   150  }
   151  
   152  // ApplySecurityGroupsToLoadBalancer API operation for Elastic Load Balancing.
   153  //
   154  // Associates one or more security groups with your load balancer in a virtual
   155  // private cloud (VPC). The specified security groups override the previously
   156  // associated security groups.
   157  //
   158  // For more information, see Security Groups for Load Balancers in a VPC (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-security-groups.html#elb-vpc-security-groups)
   159  // in the Classic Load Balancers Guide.
   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 ApplySecurityGroupsToLoadBalancer for usage and error information.
   167  //
   168  // Returned Error Codes:
   169  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
   170  //   The specified load balancer does not exist.
   171  //
   172  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
   173  //   The requested configuration change is not valid.
   174  //
   175  //   * ErrCodeInvalidSecurityGroupException "InvalidSecurityGroup"
   176  //   One or more of the specified security groups do not exist.
   177  //
   178  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ApplySecurityGroupsToLoadBalancer
   179  func (c *ELB) ApplySecurityGroupsToLoadBalancer(input *ApplySecurityGroupsToLoadBalancerInput) (*ApplySecurityGroupsToLoadBalancerOutput, error) {
   180  	req, out := c.ApplySecurityGroupsToLoadBalancerRequest(input)
   181  	return out, req.Send()
   182  }
   183  
   184  // ApplySecurityGroupsToLoadBalancerWithContext is the same as ApplySecurityGroupsToLoadBalancer with the addition of
   185  // the ability to pass a context and additional request options.
   186  //
   187  // See ApplySecurityGroupsToLoadBalancer for details on how to use this API operation.
   188  //
   189  // The context must be non-nil and will be used for request cancellation. If
   190  // the context is nil a panic will occur. In the future the SDK may create
   191  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   192  // for more information on using Contexts.
   193  func (c *ELB) ApplySecurityGroupsToLoadBalancerWithContext(ctx aws.Context, input *ApplySecurityGroupsToLoadBalancerInput, opts ...request.Option) (*ApplySecurityGroupsToLoadBalancerOutput, error) {
   194  	req, out := c.ApplySecurityGroupsToLoadBalancerRequest(input)
   195  	req.SetContext(ctx)
   196  	req.ApplyOptions(opts...)
   197  	return out, req.Send()
   198  }
   199  
   200  const opAttachLoadBalancerToSubnets = "AttachLoadBalancerToSubnets"
   201  
   202  // AttachLoadBalancerToSubnetsRequest generates a "aws/request.Request" representing the
   203  // client's request for the AttachLoadBalancerToSubnets operation. The "output" return
   204  // value will be populated with the request's response once the request completes
   205  // successfully.
   206  //
   207  // Use "Send" method on the returned Request to send the API call to the service.
   208  // the "output" return value is not valid until after Send returns without error.
   209  //
   210  // See AttachLoadBalancerToSubnets for more information on using the AttachLoadBalancerToSubnets
   211  // API call, and error handling.
   212  //
   213  // This method is useful when you want to inject custom logic or configuration
   214  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   215  //
   216  //
   217  //    // Example sending a request using the AttachLoadBalancerToSubnetsRequest method.
   218  //    req, resp := client.AttachLoadBalancerToSubnetsRequest(params)
   219  //
   220  //    err := req.Send()
   221  //    if err == nil { // resp is now filled
   222  //        fmt.Println(resp)
   223  //    }
   224  //
   225  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/AttachLoadBalancerToSubnets
   226  func (c *ELB) AttachLoadBalancerToSubnetsRequest(input *AttachLoadBalancerToSubnetsInput) (req *request.Request, output *AttachLoadBalancerToSubnetsOutput) {
   227  	op := &request.Operation{
   228  		Name:       opAttachLoadBalancerToSubnets,
   229  		HTTPMethod: "POST",
   230  		HTTPPath:   "/",
   231  	}
   232  
   233  	if input == nil {
   234  		input = &AttachLoadBalancerToSubnetsInput{}
   235  	}
   236  
   237  	output = &AttachLoadBalancerToSubnetsOutput{}
   238  	req = c.newRequest(op, input, output)
   239  	return
   240  }
   241  
   242  // AttachLoadBalancerToSubnets API operation for Elastic Load Balancing.
   243  //
   244  // Adds one or more subnets to the set of configured subnets for the specified
   245  // load balancer.
   246  //
   247  // The load balancer evenly distributes requests across all registered subnets.
   248  // For more information, see Add or Remove Subnets for Your Load Balancer in
   249  // a VPC (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-manage-subnets.html)
   250  // in the Classic Load Balancers Guide.
   251  //
   252  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   253  // with awserr.Error's Code and Message methods to get detailed information about
   254  // the error.
   255  //
   256  // See the AWS API reference guide for Elastic Load Balancing's
   257  // API operation AttachLoadBalancerToSubnets for usage and error information.
   258  //
   259  // Returned Error Codes:
   260  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
   261  //   The specified load balancer does not exist.
   262  //
   263  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
   264  //   The requested configuration change is not valid.
   265  //
   266  //   * ErrCodeSubnetNotFoundException "SubnetNotFound"
   267  //   One or more of the specified subnets do not exist.
   268  //
   269  //   * ErrCodeInvalidSubnetException "InvalidSubnet"
   270  //   The specified VPC has no associated Internet gateway.
   271  //
   272  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/AttachLoadBalancerToSubnets
   273  func (c *ELB) AttachLoadBalancerToSubnets(input *AttachLoadBalancerToSubnetsInput) (*AttachLoadBalancerToSubnetsOutput, error) {
   274  	req, out := c.AttachLoadBalancerToSubnetsRequest(input)
   275  	return out, req.Send()
   276  }
   277  
   278  // AttachLoadBalancerToSubnetsWithContext is the same as AttachLoadBalancerToSubnets with the addition of
   279  // the ability to pass a context and additional request options.
   280  //
   281  // See AttachLoadBalancerToSubnets for details on how to use this API operation.
   282  //
   283  // The context must be non-nil and will be used for request cancellation. If
   284  // the context is nil a panic will occur. In the future the SDK may create
   285  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   286  // for more information on using Contexts.
   287  func (c *ELB) AttachLoadBalancerToSubnetsWithContext(ctx aws.Context, input *AttachLoadBalancerToSubnetsInput, opts ...request.Option) (*AttachLoadBalancerToSubnetsOutput, error) {
   288  	req, out := c.AttachLoadBalancerToSubnetsRequest(input)
   289  	req.SetContext(ctx)
   290  	req.ApplyOptions(opts...)
   291  	return out, req.Send()
   292  }
   293  
   294  const opConfigureHealthCheck = "ConfigureHealthCheck"
   295  
   296  // ConfigureHealthCheckRequest generates a "aws/request.Request" representing the
   297  // client's request for the ConfigureHealthCheck operation. The "output" return
   298  // value will be populated with the request's response once the request completes
   299  // successfully.
   300  //
   301  // Use "Send" method on the returned Request to send the API call to the service.
   302  // the "output" return value is not valid until after Send returns without error.
   303  //
   304  // See ConfigureHealthCheck for more information on using the ConfigureHealthCheck
   305  // API call, and error handling.
   306  //
   307  // This method is useful when you want to inject custom logic or configuration
   308  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   309  //
   310  //
   311  //    // Example sending a request using the ConfigureHealthCheckRequest method.
   312  //    req, resp := client.ConfigureHealthCheckRequest(params)
   313  //
   314  //    err := req.Send()
   315  //    if err == nil { // resp is now filled
   316  //        fmt.Println(resp)
   317  //    }
   318  //
   319  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ConfigureHealthCheck
   320  func (c *ELB) ConfigureHealthCheckRequest(input *ConfigureHealthCheckInput) (req *request.Request, output *ConfigureHealthCheckOutput) {
   321  	op := &request.Operation{
   322  		Name:       opConfigureHealthCheck,
   323  		HTTPMethod: "POST",
   324  		HTTPPath:   "/",
   325  	}
   326  
   327  	if input == nil {
   328  		input = &ConfigureHealthCheckInput{}
   329  	}
   330  
   331  	output = &ConfigureHealthCheckOutput{}
   332  	req = c.newRequest(op, input, output)
   333  	return
   334  }
   335  
   336  // ConfigureHealthCheck API operation for Elastic Load Balancing.
   337  //
   338  // Specifies the health check settings to use when evaluating the health state
   339  // of your EC2 instances.
   340  //
   341  // For more information, see Configure Health Checks for Your Load Balancer
   342  // (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-healthchecks.html)
   343  // in the Classic Load Balancers Guide.
   344  //
   345  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   346  // with awserr.Error's Code and Message methods to get detailed information about
   347  // the error.
   348  //
   349  // See the AWS API reference guide for Elastic Load Balancing's
   350  // API operation ConfigureHealthCheck for usage and error information.
   351  //
   352  // Returned Error Codes:
   353  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
   354  //   The specified load balancer does not exist.
   355  //
   356  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ConfigureHealthCheck
   357  func (c *ELB) ConfigureHealthCheck(input *ConfigureHealthCheckInput) (*ConfigureHealthCheckOutput, error) {
   358  	req, out := c.ConfigureHealthCheckRequest(input)
   359  	return out, req.Send()
   360  }
   361  
   362  // ConfigureHealthCheckWithContext is the same as ConfigureHealthCheck with the addition of
   363  // the ability to pass a context and additional request options.
   364  //
   365  // See ConfigureHealthCheck for details on how to use this API operation.
   366  //
   367  // The context must be non-nil and will be used for request cancellation. If
   368  // the context is nil a panic will occur. In the future the SDK may create
   369  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   370  // for more information on using Contexts.
   371  func (c *ELB) ConfigureHealthCheckWithContext(ctx aws.Context, input *ConfigureHealthCheckInput, opts ...request.Option) (*ConfigureHealthCheckOutput, error) {
   372  	req, out := c.ConfigureHealthCheckRequest(input)
   373  	req.SetContext(ctx)
   374  	req.ApplyOptions(opts...)
   375  	return out, req.Send()
   376  }
   377  
   378  const opCreateAppCookieStickinessPolicy = "CreateAppCookieStickinessPolicy"
   379  
   380  // CreateAppCookieStickinessPolicyRequest generates a "aws/request.Request" representing the
   381  // client's request for the CreateAppCookieStickinessPolicy operation. The "output" return
   382  // value will be populated with the request's response once the request completes
   383  // successfully.
   384  //
   385  // Use "Send" method on the returned Request to send the API call to the service.
   386  // the "output" return value is not valid until after Send returns without error.
   387  //
   388  // See CreateAppCookieStickinessPolicy for more information on using the CreateAppCookieStickinessPolicy
   389  // API call, and error handling.
   390  //
   391  // This method is useful when you want to inject custom logic or configuration
   392  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   393  //
   394  //
   395  //    // Example sending a request using the CreateAppCookieStickinessPolicyRequest method.
   396  //    req, resp := client.CreateAppCookieStickinessPolicyRequest(params)
   397  //
   398  //    err := req.Send()
   399  //    if err == nil { // resp is now filled
   400  //        fmt.Println(resp)
   401  //    }
   402  //
   403  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateAppCookieStickinessPolicy
   404  func (c *ELB) CreateAppCookieStickinessPolicyRequest(input *CreateAppCookieStickinessPolicyInput) (req *request.Request, output *CreateAppCookieStickinessPolicyOutput) {
   405  	op := &request.Operation{
   406  		Name:       opCreateAppCookieStickinessPolicy,
   407  		HTTPMethod: "POST",
   408  		HTTPPath:   "/",
   409  	}
   410  
   411  	if input == nil {
   412  		input = &CreateAppCookieStickinessPolicyInput{}
   413  	}
   414  
   415  	output = &CreateAppCookieStickinessPolicyOutput{}
   416  	req = c.newRequest(op, input, output)
   417  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   418  	return
   419  }
   420  
   421  // CreateAppCookieStickinessPolicy API operation for Elastic Load Balancing.
   422  //
   423  // Generates a stickiness policy with sticky session lifetimes that follow that
   424  // of an application-generated cookie. This policy can be associated only with
   425  // HTTP/HTTPS listeners.
   426  //
   427  // This policy is similar to the policy created by CreateLBCookieStickinessPolicy,
   428  // except that the lifetime of the special Elastic Load Balancing cookie, AWSELB,
   429  // follows the lifetime of the application-generated cookie specified in the
   430  // policy configuration. The load balancer only inserts a new stickiness cookie
   431  // when the application response includes a new application cookie.
   432  //
   433  // If the application cookie is explicitly removed or expires, the session stops
   434  // being sticky until a new application cookie is issued.
   435  //
   436  // For more information, see Application-Controlled Session Stickiness (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-application)
   437  // in the Classic Load Balancers Guide.
   438  //
   439  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   440  // with awserr.Error's Code and Message methods to get detailed information about
   441  // the error.
   442  //
   443  // See the AWS API reference guide for Elastic Load Balancing's
   444  // API operation CreateAppCookieStickinessPolicy for usage and error information.
   445  //
   446  // Returned Error Codes:
   447  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
   448  //   The specified load balancer does not exist.
   449  //
   450  //   * ErrCodeDuplicatePolicyNameException "DuplicatePolicyName"
   451  //   A policy with the specified name already exists for this load balancer.
   452  //
   453  //   * ErrCodeTooManyPoliciesException "TooManyPolicies"
   454  //   The quota for the number of policies for this load balancer has been reached.
   455  //
   456  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
   457  //   The requested configuration change is not valid.
   458  //
   459  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateAppCookieStickinessPolicy
   460  func (c *ELB) CreateAppCookieStickinessPolicy(input *CreateAppCookieStickinessPolicyInput) (*CreateAppCookieStickinessPolicyOutput, error) {
   461  	req, out := c.CreateAppCookieStickinessPolicyRequest(input)
   462  	return out, req.Send()
   463  }
   464  
   465  // CreateAppCookieStickinessPolicyWithContext is the same as CreateAppCookieStickinessPolicy with the addition of
   466  // the ability to pass a context and additional request options.
   467  //
   468  // See CreateAppCookieStickinessPolicy for details on how to use this API operation.
   469  //
   470  // The context must be non-nil and will be used for request cancellation. If
   471  // the context is nil a panic will occur. In the future the SDK may create
   472  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   473  // for more information on using Contexts.
   474  func (c *ELB) CreateAppCookieStickinessPolicyWithContext(ctx aws.Context, input *CreateAppCookieStickinessPolicyInput, opts ...request.Option) (*CreateAppCookieStickinessPolicyOutput, error) {
   475  	req, out := c.CreateAppCookieStickinessPolicyRequest(input)
   476  	req.SetContext(ctx)
   477  	req.ApplyOptions(opts...)
   478  	return out, req.Send()
   479  }
   480  
   481  const opCreateLBCookieStickinessPolicy = "CreateLBCookieStickinessPolicy"
   482  
   483  // CreateLBCookieStickinessPolicyRequest generates a "aws/request.Request" representing the
   484  // client's request for the CreateLBCookieStickinessPolicy operation. The "output" return
   485  // value will be populated with the request's response once the request completes
   486  // successfully.
   487  //
   488  // Use "Send" method on the returned Request to send the API call to the service.
   489  // the "output" return value is not valid until after Send returns without error.
   490  //
   491  // See CreateLBCookieStickinessPolicy for more information on using the CreateLBCookieStickinessPolicy
   492  // API call, and error handling.
   493  //
   494  // This method is useful when you want to inject custom logic or configuration
   495  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   496  //
   497  //
   498  //    // Example sending a request using the CreateLBCookieStickinessPolicyRequest method.
   499  //    req, resp := client.CreateLBCookieStickinessPolicyRequest(params)
   500  //
   501  //    err := req.Send()
   502  //    if err == nil { // resp is now filled
   503  //        fmt.Println(resp)
   504  //    }
   505  //
   506  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLBCookieStickinessPolicy
   507  func (c *ELB) CreateLBCookieStickinessPolicyRequest(input *CreateLBCookieStickinessPolicyInput) (req *request.Request, output *CreateLBCookieStickinessPolicyOutput) {
   508  	op := &request.Operation{
   509  		Name:       opCreateLBCookieStickinessPolicy,
   510  		HTTPMethod: "POST",
   511  		HTTPPath:   "/",
   512  	}
   513  
   514  	if input == nil {
   515  		input = &CreateLBCookieStickinessPolicyInput{}
   516  	}
   517  
   518  	output = &CreateLBCookieStickinessPolicyOutput{}
   519  	req = c.newRequest(op, input, output)
   520  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   521  	return
   522  }
   523  
   524  // CreateLBCookieStickinessPolicy API operation for Elastic Load Balancing.
   525  //
   526  // Generates a stickiness policy with sticky session lifetimes controlled by
   527  // the lifetime of the browser (user-agent) or a specified expiration period.
   528  // This policy can be associated only with HTTP/HTTPS listeners.
   529  //
   530  // When a load balancer implements this policy, the load balancer uses a special
   531  // cookie to track the instance for each request. When the load balancer receives
   532  // a request, it first checks to see if this cookie is present in the request.
   533  // If so, the load balancer sends the request to the application server specified
   534  // in the cookie. If not, the load balancer sends the request to a server that
   535  // is chosen based on the existing load-balancing algorithm.
   536  //
   537  // A cookie is inserted into the response for binding subsequent requests from
   538  // the same user to that server. The validity of the cookie is based on the
   539  // cookie expiration time, which is specified in the policy configuration.
   540  //
   541  // For more information, see Duration-Based Session Stickiness (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-duration)
   542  // in the Classic Load Balancers Guide.
   543  //
   544  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   545  // with awserr.Error's Code and Message methods to get detailed information about
   546  // the error.
   547  //
   548  // See the AWS API reference guide for Elastic Load Balancing's
   549  // API operation CreateLBCookieStickinessPolicy for usage and error information.
   550  //
   551  // Returned Error Codes:
   552  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
   553  //   The specified load balancer does not exist.
   554  //
   555  //   * ErrCodeDuplicatePolicyNameException "DuplicatePolicyName"
   556  //   A policy with the specified name already exists for this load balancer.
   557  //
   558  //   * ErrCodeTooManyPoliciesException "TooManyPolicies"
   559  //   The quota for the number of policies for this load balancer has been reached.
   560  //
   561  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
   562  //   The requested configuration change is not valid.
   563  //
   564  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLBCookieStickinessPolicy
   565  func (c *ELB) CreateLBCookieStickinessPolicy(input *CreateLBCookieStickinessPolicyInput) (*CreateLBCookieStickinessPolicyOutput, error) {
   566  	req, out := c.CreateLBCookieStickinessPolicyRequest(input)
   567  	return out, req.Send()
   568  }
   569  
   570  // CreateLBCookieStickinessPolicyWithContext is the same as CreateLBCookieStickinessPolicy with the addition of
   571  // the ability to pass a context and additional request options.
   572  //
   573  // See CreateLBCookieStickinessPolicy for details on how to use this API operation.
   574  //
   575  // The context must be non-nil and will be used for request cancellation. If
   576  // the context is nil a panic will occur. In the future the SDK may create
   577  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   578  // for more information on using Contexts.
   579  func (c *ELB) CreateLBCookieStickinessPolicyWithContext(ctx aws.Context, input *CreateLBCookieStickinessPolicyInput, opts ...request.Option) (*CreateLBCookieStickinessPolicyOutput, error) {
   580  	req, out := c.CreateLBCookieStickinessPolicyRequest(input)
   581  	req.SetContext(ctx)
   582  	req.ApplyOptions(opts...)
   583  	return out, req.Send()
   584  }
   585  
   586  const opCreateLoadBalancer = "CreateLoadBalancer"
   587  
   588  // CreateLoadBalancerRequest generates a "aws/request.Request" representing the
   589  // client's request for the CreateLoadBalancer operation. The "output" return
   590  // value will be populated with the request's response once the request completes
   591  // successfully.
   592  //
   593  // Use "Send" method on the returned Request to send the API call to the service.
   594  // the "output" return value is not valid until after Send returns without error.
   595  //
   596  // See CreateLoadBalancer for more information on using the CreateLoadBalancer
   597  // API call, and error handling.
   598  //
   599  // This method is useful when you want to inject custom logic or configuration
   600  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   601  //
   602  //
   603  //    // Example sending a request using the CreateLoadBalancerRequest method.
   604  //    req, resp := client.CreateLoadBalancerRequest(params)
   605  //
   606  //    err := req.Send()
   607  //    if err == nil { // resp is now filled
   608  //        fmt.Println(resp)
   609  //    }
   610  //
   611  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLoadBalancer
   612  func (c *ELB) CreateLoadBalancerRequest(input *CreateLoadBalancerInput) (req *request.Request, output *CreateLoadBalancerOutput) {
   613  	op := &request.Operation{
   614  		Name:       opCreateLoadBalancer,
   615  		HTTPMethod: "POST",
   616  		HTTPPath:   "/",
   617  	}
   618  
   619  	if input == nil {
   620  		input = &CreateLoadBalancerInput{}
   621  	}
   622  
   623  	output = &CreateLoadBalancerOutput{}
   624  	req = c.newRequest(op, input, output)
   625  	return
   626  }
   627  
   628  // CreateLoadBalancer API operation for Elastic Load Balancing.
   629  //
   630  // Creates a Classic Load Balancer.
   631  //
   632  // You can add listeners, security groups, subnets, and tags when you create
   633  // your load balancer, or you can add them later using CreateLoadBalancerListeners,
   634  // ApplySecurityGroupsToLoadBalancer, AttachLoadBalancerToSubnets, and AddTags.
   635  //
   636  // To describe your current load balancers, see DescribeLoadBalancers. When
   637  // you are finished with a load balancer, you can delete it using DeleteLoadBalancer.
   638  //
   639  // You can create up to 20 load balancers per region per account. You can request
   640  // an increase for the number of load balancers for your account. For more information,
   641  // see Limits for Your Classic Load Balancer (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-limits.html)
   642  // in the Classic Load Balancers Guide.
   643  //
   644  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   645  // with awserr.Error's Code and Message methods to get detailed information about
   646  // the error.
   647  //
   648  // See the AWS API reference guide for Elastic Load Balancing's
   649  // API operation CreateLoadBalancer for usage and error information.
   650  //
   651  // Returned Error Codes:
   652  //   * ErrCodeDuplicateAccessPointNameException "DuplicateLoadBalancerName"
   653  //   The specified load balancer name already exists for this account.
   654  //
   655  //   * ErrCodeTooManyAccessPointsException "TooManyLoadBalancers"
   656  //   The quota for the number of load balancers has been reached.
   657  //
   658  //   * ErrCodeCertificateNotFoundException "CertificateNotFound"
   659  //   The specified ARN does not refer to a valid SSL certificate in AWS Identity
   660  //   and Access Management (IAM) or AWS Certificate Manager (ACM). Note that if
   661  //   you recently uploaded the certificate to IAM, this error might indicate that
   662  //   the certificate is not fully available yet.
   663  //
   664  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
   665  //   The requested configuration change is not valid.
   666  //
   667  //   * ErrCodeSubnetNotFoundException "SubnetNotFound"
   668  //   One or more of the specified subnets do not exist.
   669  //
   670  //   * ErrCodeInvalidSubnetException "InvalidSubnet"
   671  //   The specified VPC has no associated Internet gateway.
   672  //
   673  //   * ErrCodeInvalidSecurityGroupException "InvalidSecurityGroup"
   674  //   One or more of the specified security groups do not exist.
   675  //
   676  //   * ErrCodeInvalidSchemeException "InvalidScheme"
   677  //   The specified value for the schema is not valid. You can only specify a scheme
   678  //   for load balancers in a VPC.
   679  //
   680  //   * ErrCodeTooManyTagsException "TooManyTags"
   681  //   The quota for the number of tags that can be assigned to a load balancer
   682  //   has been reached.
   683  //
   684  //   * ErrCodeDuplicateTagKeysException "DuplicateTagKeys"
   685  //   A tag key was specified more than once.
   686  //
   687  //   * ErrCodeUnsupportedProtocolException "UnsupportedProtocol"
   688  //   The specified protocol or signature version is not supported.
   689  //
   690  //   * ErrCodeOperationNotPermittedException "OperationNotPermitted"
   691  //   This operation is not allowed.
   692  //
   693  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLoadBalancer
   694  func (c *ELB) CreateLoadBalancer(input *CreateLoadBalancerInput) (*CreateLoadBalancerOutput, error) {
   695  	req, out := c.CreateLoadBalancerRequest(input)
   696  	return out, req.Send()
   697  }
   698  
   699  // CreateLoadBalancerWithContext is the same as CreateLoadBalancer with the addition of
   700  // the ability to pass a context and additional request options.
   701  //
   702  // See CreateLoadBalancer for details on how to use this API operation.
   703  //
   704  // The context must be non-nil and will be used for request cancellation. If
   705  // the context is nil a panic will occur. In the future the SDK may create
   706  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   707  // for more information on using Contexts.
   708  func (c *ELB) CreateLoadBalancerWithContext(ctx aws.Context, input *CreateLoadBalancerInput, opts ...request.Option) (*CreateLoadBalancerOutput, error) {
   709  	req, out := c.CreateLoadBalancerRequest(input)
   710  	req.SetContext(ctx)
   711  	req.ApplyOptions(opts...)
   712  	return out, req.Send()
   713  }
   714  
   715  const opCreateLoadBalancerListeners = "CreateLoadBalancerListeners"
   716  
   717  // CreateLoadBalancerListenersRequest generates a "aws/request.Request" representing the
   718  // client's request for the CreateLoadBalancerListeners operation. The "output" return
   719  // value will be populated with the request's response once the request completes
   720  // successfully.
   721  //
   722  // Use "Send" method on the returned Request to send the API call to the service.
   723  // the "output" return value is not valid until after Send returns without error.
   724  //
   725  // See CreateLoadBalancerListeners for more information on using the CreateLoadBalancerListeners
   726  // API call, and error handling.
   727  //
   728  // This method is useful when you want to inject custom logic or configuration
   729  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   730  //
   731  //
   732  //    // Example sending a request using the CreateLoadBalancerListenersRequest method.
   733  //    req, resp := client.CreateLoadBalancerListenersRequest(params)
   734  //
   735  //    err := req.Send()
   736  //    if err == nil { // resp is now filled
   737  //        fmt.Println(resp)
   738  //    }
   739  //
   740  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLoadBalancerListeners
   741  func (c *ELB) CreateLoadBalancerListenersRequest(input *CreateLoadBalancerListenersInput) (req *request.Request, output *CreateLoadBalancerListenersOutput) {
   742  	op := &request.Operation{
   743  		Name:       opCreateLoadBalancerListeners,
   744  		HTTPMethod: "POST",
   745  		HTTPPath:   "/",
   746  	}
   747  
   748  	if input == nil {
   749  		input = &CreateLoadBalancerListenersInput{}
   750  	}
   751  
   752  	output = &CreateLoadBalancerListenersOutput{}
   753  	req = c.newRequest(op, input, output)
   754  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   755  	return
   756  }
   757  
   758  // CreateLoadBalancerListeners API operation for Elastic Load Balancing.
   759  //
   760  // Creates one or more listeners for the specified load balancer. If a listener
   761  // with the specified port does not already exist, it is created; otherwise,
   762  // the properties of the new listener must match the properties of the existing
   763  // listener.
   764  //
   765  // For more information, see Listeners for Your Classic Load Balancer (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-listener-config.html)
   766  // in the Classic Load Balancers Guide.
   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 CreateLoadBalancerListeners for usage and error information.
   774  //
   775  // Returned Error Codes:
   776  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
   777  //   The specified load balancer does not exist.
   778  //
   779  //   * ErrCodeDuplicateListenerException "DuplicateListener"
   780  //   A listener already exists for the specified load balancer name and port,
   781  //   but with a different instance port, protocol, or SSL certificate.
   782  //
   783  //   * ErrCodeCertificateNotFoundException "CertificateNotFound"
   784  //   The specified ARN does not refer to a valid SSL certificate in AWS Identity
   785  //   and Access Management (IAM) or AWS Certificate Manager (ACM). Note that if
   786  //   you recently uploaded the certificate to IAM, this error might indicate that
   787  //   the certificate is not fully available yet.
   788  //
   789  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
   790  //   The requested configuration change is not valid.
   791  //
   792  //   * ErrCodeUnsupportedProtocolException "UnsupportedProtocol"
   793  //   The specified protocol or signature version is not supported.
   794  //
   795  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLoadBalancerListeners
   796  func (c *ELB) CreateLoadBalancerListeners(input *CreateLoadBalancerListenersInput) (*CreateLoadBalancerListenersOutput, error) {
   797  	req, out := c.CreateLoadBalancerListenersRequest(input)
   798  	return out, req.Send()
   799  }
   800  
   801  // CreateLoadBalancerListenersWithContext is the same as CreateLoadBalancerListeners with the addition of
   802  // the ability to pass a context and additional request options.
   803  //
   804  // See CreateLoadBalancerListeners for details on how to use this API operation.
   805  //
   806  // The context must be non-nil and will be used for request cancellation. If
   807  // the context is nil a panic will occur. In the future the SDK may create
   808  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   809  // for more information on using Contexts.
   810  func (c *ELB) CreateLoadBalancerListenersWithContext(ctx aws.Context, input *CreateLoadBalancerListenersInput, opts ...request.Option) (*CreateLoadBalancerListenersOutput, error) {
   811  	req, out := c.CreateLoadBalancerListenersRequest(input)
   812  	req.SetContext(ctx)
   813  	req.ApplyOptions(opts...)
   814  	return out, req.Send()
   815  }
   816  
   817  const opCreateLoadBalancerPolicy = "CreateLoadBalancerPolicy"
   818  
   819  // CreateLoadBalancerPolicyRequest generates a "aws/request.Request" representing the
   820  // client's request for the CreateLoadBalancerPolicy operation. The "output" return
   821  // value will be populated with the request's response once the request completes
   822  // successfully.
   823  //
   824  // Use "Send" method on the returned Request to send the API call to the service.
   825  // the "output" return value is not valid until after Send returns without error.
   826  //
   827  // See CreateLoadBalancerPolicy for more information on using the CreateLoadBalancerPolicy
   828  // API call, and error handling.
   829  //
   830  // This method is useful when you want to inject custom logic or configuration
   831  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   832  //
   833  //
   834  //    // Example sending a request using the CreateLoadBalancerPolicyRequest method.
   835  //    req, resp := client.CreateLoadBalancerPolicyRequest(params)
   836  //
   837  //    err := req.Send()
   838  //    if err == nil { // resp is now filled
   839  //        fmt.Println(resp)
   840  //    }
   841  //
   842  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLoadBalancerPolicy
   843  func (c *ELB) CreateLoadBalancerPolicyRequest(input *CreateLoadBalancerPolicyInput) (req *request.Request, output *CreateLoadBalancerPolicyOutput) {
   844  	op := &request.Operation{
   845  		Name:       opCreateLoadBalancerPolicy,
   846  		HTTPMethod: "POST",
   847  		HTTPPath:   "/",
   848  	}
   849  
   850  	if input == nil {
   851  		input = &CreateLoadBalancerPolicyInput{}
   852  	}
   853  
   854  	output = &CreateLoadBalancerPolicyOutput{}
   855  	req = c.newRequest(op, input, output)
   856  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   857  	return
   858  }
   859  
   860  // CreateLoadBalancerPolicy API operation for Elastic Load Balancing.
   861  //
   862  // Creates a policy with the specified attributes for the specified load balancer.
   863  //
   864  // Policies are settings that are saved for your load balancer and that can
   865  // be applied to the listener or the application server, depending on the policy
   866  // type.
   867  //
   868  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   869  // with awserr.Error's Code and Message methods to get detailed information about
   870  // the error.
   871  //
   872  // See the AWS API reference guide for Elastic Load Balancing's
   873  // API operation CreateLoadBalancerPolicy for usage and error information.
   874  //
   875  // Returned Error Codes:
   876  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
   877  //   The specified load balancer does not exist.
   878  //
   879  //   * ErrCodePolicyTypeNotFoundException "PolicyTypeNotFound"
   880  //   One or more of the specified policy types do not exist.
   881  //
   882  //   * ErrCodeDuplicatePolicyNameException "DuplicatePolicyName"
   883  //   A policy with the specified name already exists for this load balancer.
   884  //
   885  //   * ErrCodeTooManyPoliciesException "TooManyPolicies"
   886  //   The quota for the number of policies for this load balancer has been reached.
   887  //
   888  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
   889  //   The requested configuration change is not valid.
   890  //
   891  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLoadBalancerPolicy
   892  func (c *ELB) CreateLoadBalancerPolicy(input *CreateLoadBalancerPolicyInput) (*CreateLoadBalancerPolicyOutput, error) {
   893  	req, out := c.CreateLoadBalancerPolicyRequest(input)
   894  	return out, req.Send()
   895  }
   896  
   897  // CreateLoadBalancerPolicyWithContext is the same as CreateLoadBalancerPolicy with the addition of
   898  // the ability to pass a context and additional request options.
   899  //
   900  // See CreateLoadBalancerPolicy for details on how to use this API operation.
   901  //
   902  // The context must be non-nil and will be used for request cancellation. If
   903  // the context is nil a panic will occur. In the future the SDK may create
   904  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   905  // for more information on using Contexts.
   906  func (c *ELB) CreateLoadBalancerPolicyWithContext(ctx aws.Context, input *CreateLoadBalancerPolicyInput, opts ...request.Option) (*CreateLoadBalancerPolicyOutput, error) {
   907  	req, out := c.CreateLoadBalancerPolicyRequest(input)
   908  	req.SetContext(ctx)
   909  	req.ApplyOptions(opts...)
   910  	return out, req.Send()
   911  }
   912  
   913  const opDeleteLoadBalancer = "DeleteLoadBalancer"
   914  
   915  // DeleteLoadBalancerRequest generates a "aws/request.Request" representing the
   916  // client's request for the DeleteLoadBalancer operation. The "output" return
   917  // value will be populated with the request's response once the request completes
   918  // successfully.
   919  //
   920  // Use "Send" method on the returned Request to send the API call to the service.
   921  // the "output" return value is not valid until after Send returns without error.
   922  //
   923  // See DeleteLoadBalancer for more information on using the DeleteLoadBalancer
   924  // API call, and error handling.
   925  //
   926  // This method is useful when you want to inject custom logic or configuration
   927  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   928  //
   929  //
   930  //    // Example sending a request using the DeleteLoadBalancerRequest method.
   931  //    req, resp := client.DeleteLoadBalancerRequest(params)
   932  //
   933  //    err := req.Send()
   934  //    if err == nil { // resp is now filled
   935  //        fmt.Println(resp)
   936  //    }
   937  //
   938  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeleteLoadBalancer
   939  func (c *ELB) DeleteLoadBalancerRequest(input *DeleteLoadBalancerInput) (req *request.Request, output *DeleteLoadBalancerOutput) {
   940  	op := &request.Operation{
   941  		Name:       opDeleteLoadBalancer,
   942  		HTTPMethod: "POST",
   943  		HTTPPath:   "/",
   944  	}
   945  
   946  	if input == nil {
   947  		input = &DeleteLoadBalancerInput{}
   948  	}
   949  
   950  	output = &DeleteLoadBalancerOutput{}
   951  	req = c.newRequest(op, input, output)
   952  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   953  	return
   954  }
   955  
   956  // DeleteLoadBalancer API operation for Elastic Load Balancing.
   957  //
   958  // Deletes the specified load balancer.
   959  //
   960  // If you are attempting to recreate a load balancer, you must reconfigure all
   961  // settings. The DNS name associated with a deleted load balancer are no longer
   962  // usable. The name and associated DNS record of the deleted load balancer no
   963  // longer exist and traffic sent to any of its IP addresses is no longer delivered
   964  // to your instances.
   965  //
   966  // If the load balancer does not exist or has already been deleted, the call
   967  // to DeleteLoadBalancer still succeeds.
   968  //
   969  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   970  // with awserr.Error's Code and Message methods to get detailed information about
   971  // the error.
   972  //
   973  // See the AWS API reference guide for Elastic Load Balancing's
   974  // API operation DeleteLoadBalancer for usage and error information.
   975  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeleteLoadBalancer
   976  func (c *ELB) DeleteLoadBalancer(input *DeleteLoadBalancerInput) (*DeleteLoadBalancerOutput, error) {
   977  	req, out := c.DeleteLoadBalancerRequest(input)
   978  	return out, req.Send()
   979  }
   980  
   981  // DeleteLoadBalancerWithContext is the same as DeleteLoadBalancer with the addition of
   982  // the ability to pass a context and additional request options.
   983  //
   984  // See DeleteLoadBalancer for details on how to use this API operation.
   985  //
   986  // The context must be non-nil and will be used for request cancellation. If
   987  // the context is nil a panic will occur. In the future the SDK may create
   988  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   989  // for more information on using Contexts.
   990  func (c *ELB) DeleteLoadBalancerWithContext(ctx aws.Context, input *DeleteLoadBalancerInput, opts ...request.Option) (*DeleteLoadBalancerOutput, error) {
   991  	req, out := c.DeleteLoadBalancerRequest(input)
   992  	req.SetContext(ctx)
   993  	req.ApplyOptions(opts...)
   994  	return out, req.Send()
   995  }
   996  
   997  const opDeleteLoadBalancerListeners = "DeleteLoadBalancerListeners"
   998  
   999  // DeleteLoadBalancerListenersRequest generates a "aws/request.Request" representing the
  1000  // client's request for the DeleteLoadBalancerListeners operation. The "output" return
  1001  // value will be populated with the request's response once the request completes
  1002  // successfully.
  1003  //
  1004  // Use "Send" method on the returned Request to send the API call to the service.
  1005  // the "output" return value is not valid until after Send returns without error.
  1006  //
  1007  // See DeleteLoadBalancerListeners for more information on using the DeleteLoadBalancerListeners
  1008  // API call, and error handling.
  1009  //
  1010  // This method is useful when you want to inject custom logic or configuration
  1011  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1012  //
  1013  //
  1014  //    // Example sending a request using the DeleteLoadBalancerListenersRequest method.
  1015  //    req, resp := client.DeleteLoadBalancerListenersRequest(params)
  1016  //
  1017  //    err := req.Send()
  1018  //    if err == nil { // resp is now filled
  1019  //        fmt.Println(resp)
  1020  //    }
  1021  //
  1022  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeleteLoadBalancerListeners
  1023  func (c *ELB) DeleteLoadBalancerListenersRequest(input *DeleteLoadBalancerListenersInput) (req *request.Request, output *DeleteLoadBalancerListenersOutput) {
  1024  	op := &request.Operation{
  1025  		Name:       opDeleteLoadBalancerListeners,
  1026  		HTTPMethod: "POST",
  1027  		HTTPPath:   "/",
  1028  	}
  1029  
  1030  	if input == nil {
  1031  		input = &DeleteLoadBalancerListenersInput{}
  1032  	}
  1033  
  1034  	output = &DeleteLoadBalancerListenersOutput{}
  1035  	req = c.newRequest(op, input, output)
  1036  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1037  	return
  1038  }
  1039  
  1040  // DeleteLoadBalancerListeners API operation for Elastic Load Balancing.
  1041  //
  1042  // Deletes the specified listeners from the specified load balancer.
  1043  //
  1044  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1045  // with awserr.Error's Code and Message methods to get detailed information about
  1046  // the error.
  1047  //
  1048  // See the AWS API reference guide for Elastic Load Balancing's
  1049  // API operation DeleteLoadBalancerListeners for usage and error information.
  1050  //
  1051  // Returned Error Codes:
  1052  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  1053  //   The specified load balancer does not exist.
  1054  //
  1055  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeleteLoadBalancerListeners
  1056  func (c *ELB) DeleteLoadBalancerListeners(input *DeleteLoadBalancerListenersInput) (*DeleteLoadBalancerListenersOutput, error) {
  1057  	req, out := c.DeleteLoadBalancerListenersRequest(input)
  1058  	return out, req.Send()
  1059  }
  1060  
  1061  // DeleteLoadBalancerListenersWithContext is the same as DeleteLoadBalancerListeners with the addition of
  1062  // the ability to pass a context and additional request options.
  1063  //
  1064  // See DeleteLoadBalancerListeners for details on how to use this API operation.
  1065  //
  1066  // The context must be non-nil and will be used for request cancellation. If
  1067  // the context is nil a panic will occur. In the future the SDK may create
  1068  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1069  // for more information on using Contexts.
  1070  func (c *ELB) DeleteLoadBalancerListenersWithContext(ctx aws.Context, input *DeleteLoadBalancerListenersInput, opts ...request.Option) (*DeleteLoadBalancerListenersOutput, error) {
  1071  	req, out := c.DeleteLoadBalancerListenersRequest(input)
  1072  	req.SetContext(ctx)
  1073  	req.ApplyOptions(opts...)
  1074  	return out, req.Send()
  1075  }
  1076  
  1077  const opDeleteLoadBalancerPolicy = "DeleteLoadBalancerPolicy"
  1078  
  1079  // DeleteLoadBalancerPolicyRequest generates a "aws/request.Request" representing the
  1080  // client's request for the DeleteLoadBalancerPolicy operation. The "output" return
  1081  // value will be populated with the request's response once the request completes
  1082  // successfully.
  1083  //
  1084  // Use "Send" method on the returned Request to send the API call to the service.
  1085  // the "output" return value is not valid until after Send returns without error.
  1086  //
  1087  // See DeleteLoadBalancerPolicy for more information on using the DeleteLoadBalancerPolicy
  1088  // API call, and error handling.
  1089  //
  1090  // This method is useful when you want to inject custom logic or configuration
  1091  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1092  //
  1093  //
  1094  //    // Example sending a request using the DeleteLoadBalancerPolicyRequest method.
  1095  //    req, resp := client.DeleteLoadBalancerPolicyRequest(params)
  1096  //
  1097  //    err := req.Send()
  1098  //    if err == nil { // resp is now filled
  1099  //        fmt.Println(resp)
  1100  //    }
  1101  //
  1102  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeleteLoadBalancerPolicy
  1103  func (c *ELB) DeleteLoadBalancerPolicyRequest(input *DeleteLoadBalancerPolicyInput) (req *request.Request, output *DeleteLoadBalancerPolicyOutput) {
  1104  	op := &request.Operation{
  1105  		Name:       opDeleteLoadBalancerPolicy,
  1106  		HTTPMethod: "POST",
  1107  		HTTPPath:   "/",
  1108  	}
  1109  
  1110  	if input == nil {
  1111  		input = &DeleteLoadBalancerPolicyInput{}
  1112  	}
  1113  
  1114  	output = &DeleteLoadBalancerPolicyOutput{}
  1115  	req = c.newRequest(op, input, output)
  1116  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1117  	return
  1118  }
  1119  
  1120  // DeleteLoadBalancerPolicy API operation for Elastic Load Balancing.
  1121  //
  1122  // Deletes the specified policy from the specified load balancer. This policy
  1123  // must not be enabled for any listeners.
  1124  //
  1125  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1126  // with awserr.Error's Code and Message methods to get detailed information about
  1127  // the error.
  1128  //
  1129  // See the AWS API reference guide for Elastic Load Balancing's
  1130  // API operation DeleteLoadBalancerPolicy for usage and error information.
  1131  //
  1132  // Returned Error Codes:
  1133  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  1134  //   The specified load balancer does not exist.
  1135  //
  1136  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
  1137  //   The requested configuration change is not valid.
  1138  //
  1139  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeleteLoadBalancerPolicy
  1140  func (c *ELB) DeleteLoadBalancerPolicy(input *DeleteLoadBalancerPolicyInput) (*DeleteLoadBalancerPolicyOutput, error) {
  1141  	req, out := c.DeleteLoadBalancerPolicyRequest(input)
  1142  	return out, req.Send()
  1143  }
  1144  
  1145  // DeleteLoadBalancerPolicyWithContext is the same as DeleteLoadBalancerPolicy with the addition of
  1146  // the ability to pass a context and additional request options.
  1147  //
  1148  // See DeleteLoadBalancerPolicy for details on how to use this API operation.
  1149  //
  1150  // The context must be non-nil and will be used for request cancellation. If
  1151  // the context is nil a panic will occur. In the future the SDK may create
  1152  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1153  // for more information on using Contexts.
  1154  func (c *ELB) DeleteLoadBalancerPolicyWithContext(ctx aws.Context, input *DeleteLoadBalancerPolicyInput, opts ...request.Option) (*DeleteLoadBalancerPolicyOutput, error) {
  1155  	req, out := c.DeleteLoadBalancerPolicyRequest(input)
  1156  	req.SetContext(ctx)
  1157  	req.ApplyOptions(opts...)
  1158  	return out, req.Send()
  1159  }
  1160  
  1161  const opDeregisterInstancesFromLoadBalancer = "DeregisterInstancesFromLoadBalancer"
  1162  
  1163  // DeregisterInstancesFromLoadBalancerRequest generates a "aws/request.Request" representing the
  1164  // client's request for the DeregisterInstancesFromLoadBalancer operation. The "output" return
  1165  // value will be populated with the request's response once the request completes
  1166  // successfully.
  1167  //
  1168  // Use "Send" method on the returned Request to send the API call to the service.
  1169  // the "output" return value is not valid until after Send returns without error.
  1170  //
  1171  // See DeregisterInstancesFromLoadBalancer for more information on using the DeregisterInstancesFromLoadBalancer
  1172  // API call, and error handling.
  1173  //
  1174  // This method is useful when you want to inject custom logic or configuration
  1175  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1176  //
  1177  //
  1178  //    // Example sending a request using the DeregisterInstancesFromLoadBalancerRequest method.
  1179  //    req, resp := client.DeregisterInstancesFromLoadBalancerRequest(params)
  1180  //
  1181  //    err := req.Send()
  1182  //    if err == nil { // resp is now filled
  1183  //        fmt.Println(resp)
  1184  //    }
  1185  //
  1186  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeregisterInstancesFromLoadBalancer
  1187  func (c *ELB) DeregisterInstancesFromLoadBalancerRequest(input *DeregisterInstancesFromLoadBalancerInput) (req *request.Request, output *DeregisterInstancesFromLoadBalancerOutput) {
  1188  	op := &request.Operation{
  1189  		Name:       opDeregisterInstancesFromLoadBalancer,
  1190  		HTTPMethod: "POST",
  1191  		HTTPPath:   "/",
  1192  	}
  1193  
  1194  	if input == nil {
  1195  		input = &DeregisterInstancesFromLoadBalancerInput{}
  1196  	}
  1197  
  1198  	output = &DeregisterInstancesFromLoadBalancerOutput{}
  1199  	req = c.newRequest(op, input, output)
  1200  	return
  1201  }
  1202  
  1203  // DeregisterInstancesFromLoadBalancer API operation for Elastic Load Balancing.
  1204  //
  1205  // Deregisters the specified instances from the specified load balancer. After
  1206  // the instance is deregistered, it no longer receives traffic from the load
  1207  // balancer.
  1208  //
  1209  // You can use DescribeLoadBalancers to verify that the instance is deregistered
  1210  // from the load balancer.
  1211  //
  1212  // For more information, see Register or De-Register EC2 Instances (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-deregister-register-instances.html)
  1213  // in the Classic Load Balancers Guide.
  1214  //
  1215  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1216  // with awserr.Error's Code and Message methods to get detailed information about
  1217  // the error.
  1218  //
  1219  // See the AWS API reference guide for Elastic Load Balancing's
  1220  // API operation DeregisterInstancesFromLoadBalancer for usage and error information.
  1221  //
  1222  // Returned Error Codes:
  1223  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  1224  //   The specified load balancer does not exist.
  1225  //
  1226  //   * ErrCodeInvalidEndPointException "InvalidInstance"
  1227  //   The specified endpoint is not valid.
  1228  //
  1229  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeregisterInstancesFromLoadBalancer
  1230  func (c *ELB) DeregisterInstancesFromLoadBalancer(input *DeregisterInstancesFromLoadBalancerInput) (*DeregisterInstancesFromLoadBalancerOutput, error) {
  1231  	req, out := c.DeregisterInstancesFromLoadBalancerRequest(input)
  1232  	return out, req.Send()
  1233  }
  1234  
  1235  // DeregisterInstancesFromLoadBalancerWithContext is the same as DeregisterInstancesFromLoadBalancer with the addition of
  1236  // the ability to pass a context and additional request options.
  1237  //
  1238  // See DeregisterInstancesFromLoadBalancer for details on how to use this API operation.
  1239  //
  1240  // The context must be non-nil and will be used for request cancellation. If
  1241  // the context is nil a panic will occur. In the future the SDK may create
  1242  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1243  // for more information on using Contexts.
  1244  func (c *ELB) DeregisterInstancesFromLoadBalancerWithContext(ctx aws.Context, input *DeregisterInstancesFromLoadBalancerInput, opts ...request.Option) (*DeregisterInstancesFromLoadBalancerOutput, error) {
  1245  	req, out := c.DeregisterInstancesFromLoadBalancerRequest(input)
  1246  	req.SetContext(ctx)
  1247  	req.ApplyOptions(opts...)
  1248  	return out, req.Send()
  1249  }
  1250  
  1251  const opDescribeAccountLimits = "DescribeAccountLimits"
  1252  
  1253  // DescribeAccountLimitsRequest generates a "aws/request.Request" representing the
  1254  // client's request for the DescribeAccountLimits operation. The "output" return
  1255  // value will be populated with the request's response once the request completes
  1256  // successfully.
  1257  //
  1258  // Use "Send" method on the returned Request to send the API call to the service.
  1259  // the "output" return value is not valid until after Send returns without error.
  1260  //
  1261  // See DescribeAccountLimits for more information on using the DescribeAccountLimits
  1262  // API call, and error handling.
  1263  //
  1264  // This method is useful when you want to inject custom logic or configuration
  1265  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1266  //
  1267  //
  1268  //    // Example sending a request using the DescribeAccountLimitsRequest method.
  1269  //    req, resp := client.DescribeAccountLimitsRequest(params)
  1270  //
  1271  //    err := req.Send()
  1272  //    if err == nil { // resp is now filled
  1273  //        fmt.Println(resp)
  1274  //    }
  1275  //
  1276  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeAccountLimits
  1277  func (c *ELB) DescribeAccountLimitsRequest(input *DescribeAccountLimitsInput) (req *request.Request, output *DescribeAccountLimitsOutput) {
  1278  	op := &request.Operation{
  1279  		Name:       opDescribeAccountLimits,
  1280  		HTTPMethod: "POST",
  1281  		HTTPPath:   "/",
  1282  	}
  1283  
  1284  	if input == nil {
  1285  		input = &DescribeAccountLimitsInput{}
  1286  	}
  1287  
  1288  	output = &DescribeAccountLimitsOutput{}
  1289  	req = c.newRequest(op, input, output)
  1290  	return
  1291  }
  1292  
  1293  // DescribeAccountLimits API operation for Elastic Load Balancing.
  1294  //
  1295  // Describes the current Elastic Load Balancing resource limits for your AWS
  1296  // account.
  1297  //
  1298  // For more information, see Limits for Your Classic Load Balancer (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-limits.html)
  1299  // in the Classic Load Balancers Guide.
  1300  //
  1301  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1302  // with awserr.Error's Code and Message methods to get detailed information about
  1303  // the error.
  1304  //
  1305  // See the AWS API reference guide for Elastic Load Balancing's
  1306  // API operation DescribeAccountLimits for usage and error information.
  1307  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeAccountLimits
  1308  func (c *ELB) DescribeAccountLimits(input *DescribeAccountLimitsInput) (*DescribeAccountLimitsOutput, error) {
  1309  	req, out := c.DescribeAccountLimitsRequest(input)
  1310  	return out, req.Send()
  1311  }
  1312  
  1313  // DescribeAccountLimitsWithContext is the same as DescribeAccountLimits with the addition of
  1314  // the ability to pass a context and additional request options.
  1315  //
  1316  // See DescribeAccountLimits for details on how to use this API operation.
  1317  //
  1318  // The context must be non-nil and will be used for request cancellation. If
  1319  // the context is nil a panic will occur. In the future the SDK may create
  1320  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1321  // for more information on using Contexts.
  1322  func (c *ELB) DescribeAccountLimitsWithContext(ctx aws.Context, input *DescribeAccountLimitsInput, opts ...request.Option) (*DescribeAccountLimitsOutput, error) {
  1323  	req, out := c.DescribeAccountLimitsRequest(input)
  1324  	req.SetContext(ctx)
  1325  	req.ApplyOptions(opts...)
  1326  	return out, req.Send()
  1327  }
  1328  
  1329  const opDescribeInstanceHealth = "DescribeInstanceHealth"
  1330  
  1331  // DescribeInstanceHealthRequest generates a "aws/request.Request" representing the
  1332  // client's request for the DescribeInstanceHealth operation. The "output" return
  1333  // value will be populated with the request's response once the request completes
  1334  // successfully.
  1335  //
  1336  // Use "Send" method on the returned Request to send the API call to the service.
  1337  // the "output" return value is not valid until after Send returns without error.
  1338  //
  1339  // See DescribeInstanceHealth for more information on using the DescribeInstanceHealth
  1340  // API call, and error handling.
  1341  //
  1342  // This method is useful when you want to inject custom logic or configuration
  1343  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1344  //
  1345  //
  1346  //    // Example sending a request using the DescribeInstanceHealthRequest method.
  1347  //    req, resp := client.DescribeInstanceHealthRequest(params)
  1348  //
  1349  //    err := req.Send()
  1350  //    if err == nil { // resp is now filled
  1351  //        fmt.Println(resp)
  1352  //    }
  1353  //
  1354  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeInstanceHealth
  1355  func (c *ELB) DescribeInstanceHealthRequest(input *DescribeInstanceHealthInput) (req *request.Request, output *DescribeInstanceHealthOutput) {
  1356  	op := &request.Operation{
  1357  		Name:       opDescribeInstanceHealth,
  1358  		HTTPMethod: "POST",
  1359  		HTTPPath:   "/",
  1360  	}
  1361  
  1362  	if input == nil {
  1363  		input = &DescribeInstanceHealthInput{}
  1364  	}
  1365  
  1366  	output = &DescribeInstanceHealthOutput{}
  1367  	req = c.newRequest(op, input, output)
  1368  	return
  1369  }
  1370  
  1371  // DescribeInstanceHealth API operation for Elastic Load Balancing.
  1372  //
  1373  // Describes the state of the specified instances with respect to the specified
  1374  // load balancer. If no instances are specified, the call describes the state
  1375  // of all instances that are currently registered with the load balancer. If
  1376  // instances are specified, their state is returned even if they are no longer
  1377  // registered with the load balancer. The state of terminated instances is not
  1378  // returned.
  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 DescribeInstanceHealth for usage and error information.
  1386  //
  1387  // Returned Error Codes:
  1388  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  1389  //   The specified load balancer does not exist.
  1390  //
  1391  //   * ErrCodeInvalidEndPointException "InvalidInstance"
  1392  //   The specified endpoint is not valid.
  1393  //
  1394  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeInstanceHealth
  1395  func (c *ELB) DescribeInstanceHealth(input *DescribeInstanceHealthInput) (*DescribeInstanceHealthOutput, error) {
  1396  	req, out := c.DescribeInstanceHealthRequest(input)
  1397  	return out, req.Send()
  1398  }
  1399  
  1400  // DescribeInstanceHealthWithContext is the same as DescribeInstanceHealth with the addition of
  1401  // the ability to pass a context and additional request options.
  1402  //
  1403  // See DescribeInstanceHealth for details on how to use this API operation.
  1404  //
  1405  // The context must be non-nil and will be used for request cancellation. If
  1406  // the context is nil a panic will occur. In the future the SDK may create
  1407  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1408  // for more information on using Contexts.
  1409  func (c *ELB) DescribeInstanceHealthWithContext(ctx aws.Context, input *DescribeInstanceHealthInput, opts ...request.Option) (*DescribeInstanceHealthOutput, error) {
  1410  	req, out := c.DescribeInstanceHealthRequest(input)
  1411  	req.SetContext(ctx)
  1412  	req.ApplyOptions(opts...)
  1413  	return out, req.Send()
  1414  }
  1415  
  1416  const opDescribeLoadBalancerAttributes = "DescribeLoadBalancerAttributes"
  1417  
  1418  // DescribeLoadBalancerAttributesRequest generates a "aws/request.Request" representing the
  1419  // client's request for the DescribeLoadBalancerAttributes operation. The "output" return
  1420  // value will be populated with the request's response once the request completes
  1421  // successfully.
  1422  //
  1423  // Use "Send" method on the returned Request to send the API call to the service.
  1424  // the "output" return value is not valid until after Send returns without error.
  1425  //
  1426  // See DescribeLoadBalancerAttributes for more information on using the DescribeLoadBalancerAttributes
  1427  // API call, and error handling.
  1428  //
  1429  // This method is useful when you want to inject custom logic or configuration
  1430  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1431  //
  1432  //
  1433  //    // Example sending a request using the DescribeLoadBalancerAttributesRequest method.
  1434  //    req, resp := client.DescribeLoadBalancerAttributesRequest(params)
  1435  //
  1436  //    err := req.Send()
  1437  //    if err == nil { // resp is now filled
  1438  //        fmt.Println(resp)
  1439  //    }
  1440  //
  1441  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancerAttributes
  1442  func (c *ELB) DescribeLoadBalancerAttributesRequest(input *DescribeLoadBalancerAttributesInput) (req *request.Request, output *DescribeLoadBalancerAttributesOutput) {
  1443  	op := &request.Operation{
  1444  		Name:       opDescribeLoadBalancerAttributes,
  1445  		HTTPMethod: "POST",
  1446  		HTTPPath:   "/",
  1447  	}
  1448  
  1449  	if input == nil {
  1450  		input = &DescribeLoadBalancerAttributesInput{}
  1451  	}
  1452  
  1453  	output = &DescribeLoadBalancerAttributesOutput{}
  1454  	req = c.newRequest(op, input, output)
  1455  	return
  1456  }
  1457  
  1458  // DescribeLoadBalancerAttributes API operation for Elastic Load Balancing.
  1459  //
  1460  // Describes the attributes for the specified load balancer.
  1461  //
  1462  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1463  // with awserr.Error's Code and Message methods to get detailed information about
  1464  // the error.
  1465  //
  1466  // See the AWS API reference guide for Elastic Load Balancing's
  1467  // API operation DescribeLoadBalancerAttributes for usage and error information.
  1468  //
  1469  // Returned Error Codes:
  1470  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  1471  //   The specified load balancer does not exist.
  1472  //
  1473  //   * ErrCodeLoadBalancerAttributeNotFoundException "LoadBalancerAttributeNotFound"
  1474  //   The specified load balancer attribute does not exist.
  1475  //
  1476  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancerAttributes
  1477  func (c *ELB) DescribeLoadBalancerAttributes(input *DescribeLoadBalancerAttributesInput) (*DescribeLoadBalancerAttributesOutput, error) {
  1478  	req, out := c.DescribeLoadBalancerAttributesRequest(input)
  1479  	return out, req.Send()
  1480  }
  1481  
  1482  // DescribeLoadBalancerAttributesWithContext is the same as DescribeLoadBalancerAttributes with the addition of
  1483  // the ability to pass a context and additional request options.
  1484  //
  1485  // See DescribeLoadBalancerAttributes for details on how to use this API operation.
  1486  //
  1487  // The context must be non-nil and will be used for request cancellation. If
  1488  // the context is nil a panic will occur. In the future the SDK may create
  1489  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1490  // for more information on using Contexts.
  1491  func (c *ELB) DescribeLoadBalancerAttributesWithContext(ctx aws.Context, input *DescribeLoadBalancerAttributesInput, opts ...request.Option) (*DescribeLoadBalancerAttributesOutput, error) {
  1492  	req, out := c.DescribeLoadBalancerAttributesRequest(input)
  1493  	req.SetContext(ctx)
  1494  	req.ApplyOptions(opts...)
  1495  	return out, req.Send()
  1496  }
  1497  
  1498  const opDescribeLoadBalancerPolicies = "DescribeLoadBalancerPolicies"
  1499  
  1500  // DescribeLoadBalancerPoliciesRequest generates a "aws/request.Request" representing the
  1501  // client's request for the DescribeLoadBalancerPolicies operation. The "output" return
  1502  // value will be populated with the request's response once the request completes
  1503  // successfully.
  1504  //
  1505  // Use "Send" method on the returned Request to send the API call to the service.
  1506  // the "output" return value is not valid until after Send returns without error.
  1507  //
  1508  // See DescribeLoadBalancerPolicies for more information on using the DescribeLoadBalancerPolicies
  1509  // API call, and error handling.
  1510  //
  1511  // This method is useful when you want to inject custom logic or configuration
  1512  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1513  //
  1514  //
  1515  //    // Example sending a request using the DescribeLoadBalancerPoliciesRequest method.
  1516  //    req, resp := client.DescribeLoadBalancerPoliciesRequest(params)
  1517  //
  1518  //    err := req.Send()
  1519  //    if err == nil { // resp is now filled
  1520  //        fmt.Println(resp)
  1521  //    }
  1522  //
  1523  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancerPolicies
  1524  func (c *ELB) DescribeLoadBalancerPoliciesRequest(input *DescribeLoadBalancerPoliciesInput) (req *request.Request, output *DescribeLoadBalancerPoliciesOutput) {
  1525  	op := &request.Operation{
  1526  		Name:       opDescribeLoadBalancerPolicies,
  1527  		HTTPMethod: "POST",
  1528  		HTTPPath:   "/",
  1529  	}
  1530  
  1531  	if input == nil {
  1532  		input = &DescribeLoadBalancerPoliciesInput{}
  1533  	}
  1534  
  1535  	output = &DescribeLoadBalancerPoliciesOutput{}
  1536  	req = c.newRequest(op, input, output)
  1537  	return
  1538  }
  1539  
  1540  // DescribeLoadBalancerPolicies API operation for Elastic Load Balancing.
  1541  //
  1542  // Describes the specified policies.
  1543  //
  1544  // If you specify a load balancer name, the action returns the descriptions
  1545  // of all policies created for the load balancer. If you specify a policy name
  1546  // associated with your load balancer, the action returns the description of
  1547  // that policy. If you don't specify a load balancer name, the action returns
  1548  // descriptions of the specified sample policies, or descriptions of all sample
  1549  // policies. The names of the sample policies have the ELBSample- prefix.
  1550  //
  1551  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1552  // with awserr.Error's Code and Message methods to get detailed information about
  1553  // the error.
  1554  //
  1555  // See the AWS API reference guide for Elastic Load Balancing's
  1556  // API operation DescribeLoadBalancerPolicies for usage and error information.
  1557  //
  1558  // Returned Error Codes:
  1559  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  1560  //   The specified load balancer does not exist.
  1561  //
  1562  //   * ErrCodePolicyNotFoundException "PolicyNotFound"
  1563  //   One or more of the specified policies do not exist.
  1564  //
  1565  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancerPolicies
  1566  func (c *ELB) DescribeLoadBalancerPolicies(input *DescribeLoadBalancerPoliciesInput) (*DescribeLoadBalancerPoliciesOutput, error) {
  1567  	req, out := c.DescribeLoadBalancerPoliciesRequest(input)
  1568  	return out, req.Send()
  1569  }
  1570  
  1571  // DescribeLoadBalancerPoliciesWithContext is the same as DescribeLoadBalancerPolicies with the addition of
  1572  // the ability to pass a context and additional request options.
  1573  //
  1574  // See DescribeLoadBalancerPolicies for details on how to use this API operation.
  1575  //
  1576  // The context must be non-nil and will be used for request cancellation. If
  1577  // the context is nil a panic will occur. In the future the SDK may create
  1578  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1579  // for more information on using Contexts.
  1580  func (c *ELB) DescribeLoadBalancerPoliciesWithContext(ctx aws.Context, input *DescribeLoadBalancerPoliciesInput, opts ...request.Option) (*DescribeLoadBalancerPoliciesOutput, error) {
  1581  	req, out := c.DescribeLoadBalancerPoliciesRequest(input)
  1582  	req.SetContext(ctx)
  1583  	req.ApplyOptions(opts...)
  1584  	return out, req.Send()
  1585  }
  1586  
  1587  const opDescribeLoadBalancerPolicyTypes = "DescribeLoadBalancerPolicyTypes"
  1588  
  1589  // DescribeLoadBalancerPolicyTypesRequest generates a "aws/request.Request" representing the
  1590  // client's request for the DescribeLoadBalancerPolicyTypes operation. The "output" return
  1591  // value will be populated with the request's response once the request completes
  1592  // successfully.
  1593  //
  1594  // Use "Send" method on the returned Request to send the API call to the service.
  1595  // the "output" return value is not valid until after Send returns without error.
  1596  //
  1597  // See DescribeLoadBalancerPolicyTypes for more information on using the DescribeLoadBalancerPolicyTypes
  1598  // API call, and error handling.
  1599  //
  1600  // This method is useful when you want to inject custom logic or configuration
  1601  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1602  //
  1603  //
  1604  //    // Example sending a request using the DescribeLoadBalancerPolicyTypesRequest method.
  1605  //    req, resp := client.DescribeLoadBalancerPolicyTypesRequest(params)
  1606  //
  1607  //    err := req.Send()
  1608  //    if err == nil { // resp is now filled
  1609  //        fmt.Println(resp)
  1610  //    }
  1611  //
  1612  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancerPolicyTypes
  1613  func (c *ELB) DescribeLoadBalancerPolicyTypesRequest(input *DescribeLoadBalancerPolicyTypesInput) (req *request.Request, output *DescribeLoadBalancerPolicyTypesOutput) {
  1614  	op := &request.Operation{
  1615  		Name:       opDescribeLoadBalancerPolicyTypes,
  1616  		HTTPMethod: "POST",
  1617  		HTTPPath:   "/",
  1618  	}
  1619  
  1620  	if input == nil {
  1621  		input = &DescribeLoadBalancerPolicyTypesInput{}
  1622  	}
  1623  
  1624  	output = &DescribeLoadBalancerPolicyTypesOutput{}
  1625  	req = c.newRequest(op, input, output)
  1626  	return
  1627  }
  1628  
  1629  // DescribeLoadBalancerPolicyTypes API operation for Elastic Load Balancing.
  1630  //
  1631  // Describes the specified load balancer policy types or all load balancer policy
  1632  // types.
  1633  //
  1634  // The description of each type indicates how it can be used. For example, some
  1635  // policies can be used only with layer 7 listeners, some policies can be used
  1636  // only with layer 4 listeners, and some policies can be used only with your
  1637  // EC2 instances.
  1638  //
  1639  // You can use CreateLoadBalancerPolicy to create a policy configuration for
  1640  // any of these policy types. Then, depending on the policy type, use either
  1641  // SetLoadBalancerPoliciesOfListener or SetLoadBalancerPoliciesForBackendServer
  1642  // to set the policy.
  1643  //
  1644  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1645  // with awserr.Error's Code and Message methods to get detailed information about
  1646  // the error.
  1647  //
  1648  // See the AWS API reference guide for Elastic Load Balancing's
  1649  // API operation DescribeLoadBalancerPolicyTypes for usage and error information.
  1650  //
  1651  // Returned Error Codes:
  1652  //   * ErrCodePolicyTypeNotFoundException "PolicyTypeNotFound"
  1653  //   One or more of the specified policy types do not exist.
  1654  //
  1655  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancerPolicyTypes
  1656  func (c *ELB) DescribeLoadBalancerPolicyTypes(input *DescribeLoadBalancerPolicyTypesInput) (*DescribeLoadBalancerPolicyTypesOutput, error) {
  1657  	req, out := c.DescribeLoadBalancerPolicyTypesRequest(input)
  1658  	return out, req.Send()
  1659  }
  1660  
  1661  // DescribeLoadBalancerPolicyTypesWithContext is the same as DescribeLoadBalancerPolicyTypes with the addition of
  1662  // the ability to pass a context and additional request options.
  1663  //
  1664  // See DescribeLoadBalancerPolicyTypes for details on how to use this API operation.
  1665  //
  1666  // The context must be non-nil and will be used for request cancellation. If
  1667  // the context is nil a panic will occur. In the future the SDK may create
  1668  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1669  // for more information on using Contexts.
  1670  func (c *ELB) DescribeLoadBalancerPolicyTypesWithContext(ctx aws.Context, input *DescribeLoadBalancerPolicyTypesInput, opts ...request.Option) (*DescribeLoadBalancerPolicyTypesOutput, error) {
  1671  	req, out := c.DescribeLoadBalancerPolicyTypesRequest(input)
  1672  	req.SetContext(ctx)
  1673  	req.ApplyOptions(opts...)
  1674  	return out, req.Send()
  1675  }
  1676  
  1677  const opDescribeLoadBalancers = "DescribeLoadBalancers"
  1678  
  1679  // DescribeLoadBalancersRequest generates a "aws/request.Request" representing the
  1680  // client's request for the DescribeLoadBalancers operation. The "output" return
  1681  // value will be populated with the request's response once the request completes
  1682  // successfully.
  1683  //
  1684  // Use "Send" method on the returned Request to send the API call to the service.
  1685  // the "output" return value is not valid until after Send returns without error.
  1686  //
  1687  // See DescribeLoadBalancers for more information on using the DescribeLoadBalancers
  1688  // API call, and error handling.
  1689  //
  1690  // This method is useful when you want to inject custom logic or configuration
  1691  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1692  //
  1693  //
  1694  //    // Example sending a request using the DescribeLoadBalancersRequest method.
  1695  //    req, resp := client.DescribeLoadBalancersRequest(params)
  1696  //
  1697  //    err := req.Send()
  1698  //    if err == nil { // resp is now filled
  1699  //        fmt.Println(resp)
  1700  //    }
  1701  //
  1702  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancers
  1703  func (c *ELB) DescribeLoadBalancersRequest(input *DescribeLoadBalancersInput) (req *request.Request, output *DescribeLoadBalancersOutput) {
  1704  	op := &request.Operation{
  1705  		Name:       opDescribeLoadBalancers,
  1706  		HTTPMethod: "POST",
  1707  		HTTPPath:   "/",
  1708  		Paginator: &request.Paginator{
  1709  			InputTokens:     []string{"Marker"},
  1710  			OutputTokens:    []string{"NextMarker"},
  1711  			LimitToken:      "",
  1712  			TruncationToken: "",
  1713  		},
  1714  	}
  1715  
  1716  	if input == nil {
  1717  		input = &DescribeLoadBalancersInput{}
  1718  	}
  1719  
  1720  	output = &DescribeLoadBalancersOutput{}
  1721  	req = c.newRequest(op, input, output)
  1722  	return
  1723  }
  1724  
  1725  // DescribeLoadBalancers API operation for Elastic Load Balancing.
  1726  //
  1727  // Describes the specified the load balancers. If no load balancers are specified,
  1728  // the call describes all of your load balancers.
  1729  //
  1730  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1731  // with awserr.Error's Code and Message methods to get detailed information about
  1732  // the error.
  1733  //
  1734  // See the AWS API reference guide for Elastic Load Balancing's
  1735  // API operation DescribeLoadBalancers for usage and error information.
  1736  //
  1737  // Returned Error Codes:
  1738  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  1739  //   The specified load balancer does not exist.
  1740  //
  1741  //   * ErrCodeDependencyThrottleException "DependencyThrottle"
  1742  //   A request made by Elastic Load Balancing to another service exceeds the maximum
  1743  //   request rate permitted for your account.
  1744  //
  1745  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancers
  1746  func (c *ELB) DescribeLoadBalancers(input *DescribeLoadBalancersInput) (*DescribeLoadBalancersOutput, error) {
  1747  	req, out := c.DescribeLoadBalancersRequest(input)
  1748  	return out, req.Send()
  1749  }
  1750  
  1751  // DescribeLoadBalancersWithContext is the same as DescribeLoadBalancers with the addition of
  1752  // the ability to pass a context and additional request options.
  1753  //
  1754  // See DescribeLoadBalancers for details on how to use this API operation.
  1755  //
  1756  // The context must be non-nil and will be used for request cancellation. If
  1757  // the context is nil a panic will occur. In the future the SDK may create
  1758  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1759  // for more information on using Contexts.
  1760  func (c *ELB) DescribeLoadBalancersWithContext(ctx aws.Context, input *DescribeLoadBalancersInput, opts ...request.Option) (*DescribeLoadBalancersOutput, error) {
  1761  	req, out := c.DescribeLoadBalancersRequest(input)
  1762  	req.SetContext(ctx)
  1763  	req.ApplyOptions(opts...)
  1764  	return out, req.Send()
  1765  }
  1766  
  1767  // DescribeLoadBalancersPages iterates over the pages of a DescribeLoadBalancers operation,
  1768  // calling the "fn" function with the response data for each page. To stop
  1769  // iterating, return false from the fn function.
  1770  //
  1771  // See DescribeLoadBalancers method for more information on how to use this operation.
  1772  //
  1773  // Note: This operation can generate multiple requests to a service.
  1774  //
  1775  //    // Example iterating over at most 3 pages of a DescribeLoadBalancers operation.
  1776  //    pageNum := 0
  1777  //    err := client.DescribeLoadBalancersPages(params,
  1778  //        func(page *elb.DescribeLoadBalancersOutput, lastPage bool) bool {
  1779  //            pageNum++
  1780  //            fmt.Println(page)
  1781  //            return pageNum <= 3
  1782  //        })
  1783  //
  1784  func (c *ELB) DescribeLoadBalancersPages(input *DescribeLoadBalancersInput, fn func(*DescribeLoadBalancersOutput, bool) bool) error {
  1785  	return c.DescribeLoadBalancersPagesWithContext(aws.BackgroundContext(), input, fn)
  1786  }
  1787  
  1788  // DescribeLoadBalancersPagesWithContext same as DescribeLoadBalancersPages except
  1789  // it takes a Context and allows setting request options on the pages.
  1790  //
  1791  // The context must be non-nil and will be used for request cancellation. If
  1792  // the context is nil a panic will occur. In the future the SDK may create
  1793  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1794  // for more information on using Contexts.
  1795  func (c *ELB) DescribeLoadBalancersPagesWithContext(ctx aws.Context, input *DescribeLoadBalancersInput, fn func(*DescribeLoadBalancersOutput, bool) bool, opts ...request.Option) error {
  1796  	p := request.Pagination{
  1797  		NewRequest: func() (*request.Request, error) {
  1798  			var inCpy *DescribeLoadBalancersInput
  1799  			if input != nil {
  1800  				tmp := *input
  1801  				inCpy = &tmp
  1802  			}
  1803  			req, _ := c.DescribeLoadBalancersRequest(inCpy)
  1804  			req.SetContext(ctx)
  1805  			req.ApplyOptions(opts...)
  1806  			return req, nil
  1807  		},
  1808  	}
  1809  
  1810  	for p.Next() {
  1811  		if !fn(p.Page().(*DescribeLoadBalancersOutput), !p.HasNextPage()) {
  1812  			break
  1813  		}
  1814  	}
  1815  
  1816  	return p.Err()
  1817  }
  1818  
  1819  const opDescribeTags = "DescribeTags"
  1820  
  1821  // DescribeTagsRequest generates a "aws/request.Request" representing the
  1822  // client's request for the DescribeTags operation. The "output" return
  1823  // value will be populated with the request's response once the request completes
  1824  // successfully.
  1825  //
  1826  // Use "Send" method on the returned Request to send the API call to the service.
  1827  // the "output" return value is not valid until after Send returns without error.
  1828  //
  1829  // See DescribeTags for more information on using the DescribeTags
  1830  // API call, and error handling.
  1831  //
  1832  // This method is useful when you want to inject custom logic or configuration
  1833  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1834  //
  1835  //
  1836  //    // Example sending a request using the DescribeTagsRequest method.
  1837  //    req, resp := client.DescribeTagsRequest(params)
  1838  //
  1839  //    err := req.Send()
  1840  //    if err == nil { // resp is now filled
  1841  //        fmt.Println(resp)
  1842  //    }
  1843  //
  1844  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeTags
  1845  func (c *ELB) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Request, output *DescribeTagsOutput) {
  1846  	op := &request.Operation{
  1847  		Name:       opDescribeTags,
  1848  		HTTPMethod: "POST",
  1849  		HTTPPath:   "/",
  1850  	}
  1851  
  1852  	if input == nil {
  1853  		input = &DescribeTagsInput{}
  1854  	}
  1855  
  1856  	output = &DescribeTagsOutput{}
  1857  	req = c.newRequest(op, input, output)
  1858  	return
  1859  }
  1860  
  1861  // DescribeTags API operation for Elastic Load Balancing.
  1862  //
  1863  // Describes the tags associated with the specified load balancers.
  1864  //
  1865  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1866  // with awserr.Error's Code and Message methods to get detailed information about
  1867  // the error.
  1868  //
  1869  // See the AWS API reference guide for Elastic Load Balancing's
  1870  // API operation DescribeTags for usage and error information.
  1871  //
  1872  // Returned Error Codes:
  1873  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  1874  //   The specified load balancer does not exist.
  1875  //
  1876  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeTags
  1877  func (c *ELB) DescribeTags(input *DescribeTagsInput) (*DescribeTagsOutput, error) {
  1878  	req, out := c.DescribeTagsRequest(input)
  1879  	return out, req.Send()
  1880  }
  1881  
  1882  // DescribeTagsWithContext is the same as DescribeTags with the addition of
  1883  // the ability to pass a context and additional request options.
  1884  //
  1885  // See DescribeTags for details on how to use this API operation.
  1886  //
  1887  // The context must be non-nil and will be used for request cancellation. If
  1888  // the context is nil a panic will occur. In the future the SDK may create
  1889  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1890  // for more information on using Contexts.
  1891  func (c *ELB) DescribeTagsWithContext(ctx aws.Context, input *DescribeTagsInput, opts ...request.Option) (*DescribeTagsOutput, error) {
  1892  	req, out := c.DescribeTagsRequest(input)
  1893  	req.SetContext(ctx)
  1894  	req.ApplyOptions(opts...)
  1895  	return out, req.Send()
  1896  }
  1897  
  1898  const opDetachLoadBalancerFromSubnets = "DetachLoadBalancerFromSubnets"
  1899  
  1900  // DetachLoadBalancerFromSubnetsRequest generates a "aws/request.Request" representing the
  1901  // client's request for the DetachLoadBalancerFromSubnets operation. The "output" return
  1902  // value will be populated with the request's response once the request completes
  1903  // successfully.
  1904  //
  1905  // Use "Send" method on the returned Request to send the API call to the service.
  1906  // the "output" return value is not valid until after Send returns without error.
  1907  //
  1908  // See DetachLoadBalancerFromSubnets for more information on using the DetachLoadBalancerFromSubnets
  1909  // API call, and error handling.
  1910  //
  1911  // This method is useful when you want to inject custom logic or configuration
  1912  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1913  //
  1914  //
  1915  //    // Example sending a request using the DetachLoadBalancerFromSubnetsRequest method.
  1916  //    req, resp := client.DetachLoadBalancerFromSubnetsRequest(params)
  1917  //
  1918  //    err := req.Send()
  1919  //    if err == nil { // resp is now filled
  1920  //        fmt.Println(resp)
  1921  //    }
  1922  //
  1923  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DetachLoadBalancerFromSubnets
  1924  func (c *ELB) DetachLoadBalancerFromSubnetsRequest(input *DetachLoadBalancerFromSubnetsInput) (req *request.Request, output *DetachLoadBalancerFromSubnetsOutput) {
  1925  	op := &request.Operation{
  1926  		Name:       opDetachLoadBalancerFromSubnets,
  1927  		HTTPMethod: "POST",
  1928  		HTTPPath:   "/",
  1929  	}
  1930  
  1931  	if input == nil {
  1932  		input = &DetachLoadBalancerFromSubnetsInput{}
  1933  	}
  1934  
  1935  	output = &DetachLoadBalancerFromSubnetsOutput{}
  1936  	req = c.newRequest(op, input, output)
  1937  	return
  1938  }
  1939  
  1940  // DetachLoadBalancerFromSubnets API operation for Elastic Load Balancing.
  1941  //
  1942  // Removes the specified subnets from the set of configured subnets for the
  1943  // load balancer.
  1944  //
  1945  // After a subnet is removed, all EC2 instances registered with the load balancer
  1946  // in the removed subnet go into the OutOfService state. Then, the load balancer
  1947  // balances the traffic among the remaining routable subnets.
  1948  //
  1949  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1950  // with awserr.Error's Code and Message methods to get detailed information about
  1951  // the error.
  1952  //
  1953  // See the AWS API reference guide for Elastic Load Balancing's
  1954  // API operation DetachLoadBalancerFromSubnets for usage and error information.
  1955  //
  1956  // Returned Error Codes:
  1957  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  1958  //   The specified load balancer does not exist.
  1959  //
  1960  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
  1961  //   The requested configuration change is not valid.
  1962  //
  1963  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DetachLoadBalancerFromSubnets
  1964  func (c *ELB) DetachLoadBalancerFromSubnets(input *DetachLoadBalancerFromSubnetsInput) (*DetachLoadBalancerFromSubnetsOutput, error) {
  1965  	req, out := c.DetachLoadBalancerFromSubnetsRequest(input)
  1966  	return out, req.Send()
  1967  }
  1968  
  1969  // DetachLoadBalancerFromSubnetsWithContext is the same as DetachLoadBalancerFromSubnets with the addition of
  1970  // the ability to pass a context and additional request options.
  1971  //
  1972  // See DetachLoadBalancerFromSubnets for details on how to use this API operation.
  1973  //
  1974  // The context must be non-nil and will be used for request cancellation. If
  1975  // the context is nil a panic will occur. In the future the SDK may create
  1976  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1977  // for more information on using Contexts.
  1978  func (c *ELB) DetachLoadBalancerFromSubnetsWithContext(ctx aws.Context, input *DetachLoadBalancerFromSubnetsInput, opts ...request.Option) (*DetachLoadBalancerFromSubnetsOutput, error) {
  1979  	req, out := c.DetachLoadBalancerFromSubnetsRequest(input)
  1980  	req.SetContext(ctx)
  1981  	req.ApplyOptions(opts...)
  1982  	return out, req.Send()
  1983  }
  1984  
  1985  const opDisableAvailabilityZonesForLoadBalancer = "DisableAvailabilityZonesForLoadBalancer"
  1986  
  1987  // DisableAvailabilityZonesForLoadBalancerRequest generates a "aws/request.Request" representing the
  1988  // client's request for the DisableAvailabilityZonesForLoadBalancer operation. The "output" return
  1989  // value will be populated with the request's response once the request completes
  1990  // successfully.
  1991  //
  1992  // Use "Send" method on the returned Request to send the API call to the service.
  1993  // the "output" return value is not valid until after Send returns without error.
  1994  //
  1995  // See DisableAvailabilityZonesForLoadBalancer for more information on using the DisableAvailabilityZonesForLoadBalancer
  1996  // API call, and error handling.
  1997  //
  1998  // This method is useful when you want to inject custom logic or configuration
  1999  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2000  //
  2001  //
  2002  //    // Example sending a request using the DisableAvailabilityZonesForLoadBalancerRequest method.
  2003  //    req, resp := client.DisableAvailabilityZonesForLoadBalancerRequest(params)
  2004  //
  2005  //    err := req.Send()
  2006  //    if err == nil { // resp is now filled
  2007  //        fmt.Println(resp)
  2008  //    }
  2009  //
  2010  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DisableAvailabilityZonesForLoadBalancer
  2011  func (c *ELB) DisableAvailabilityZonesForLoadBalancerRequest(input *DisableAvailabilityZonesForLoadBalancerInput) (req *request.Request, output *DisableAvailabilityZonesForLoadBalancerOutput) {
  2012  	op := &request.Operation{
  2013  		Name:       opDisableAvailabilityZonesForLoadBalancer,
  2014  		HTTPMethod: "POST",
  2015  		HTTPPath:   "/",
  2016  	}
  2017  
  2018  	if input == nil {
  2019  		input = &DisableAvailabilityZonesForLoadBalancerInput{}
  2020  	}
  2021  
  2022  	output = &DisableAvailabilityZonesForLoadBalancerOutput{}
  2023  	req = c.newRequest(op, input, output)
  2024  	return
  2025  }
  2026  
  2027  // DisableAvailabilityZonesForLoadBalancer API operation for Elastic Load Balancing.
  2028  //
  2029  // Removes the specified Availability Zones from the set of Availability Zones
  2030  // for the specified load balancer in EC2-Classic or a default VPC.
  2031  //
  2032  // For load balancers in a non-default VPC, use DetachLoadBalancerFromSubnets.
  2033  //
  2034  // There must be at least one Availability Zone registered with a load balancer
  2035  // at all times. After an Availability Zone is removed, all instances registered
  2036  // with the load balancer that are in the removed Availability Zone go into
  2037  // the OutOfService state. Then, the load balancer attempts to equally balance
  2038  // the traffic among its remaining Availability Zones.
  2039  //
  2040  // For more information, see Add or Remove Availability Zones (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-az.html)
  2041  // in the Classic Load Balancers Guide.
  2042  //
  2043  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2044  // with awserr.Error's Code and Message methods to get detailed information about
  2045  // the error.
  2046  //
  2047  // See the AWS API reference guide for Elastic Load Balancing's
  2048  // API operation DisableAvailabilityZonesForLoadBalancer for usage and error information.
  2049  //
  2050  // Returned Error Codes:
  2051  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  2052  //   The specified load balancer does not exist.
  2053  //
  2054  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
  2055  //   The requested configuration change is not valid.
  2056  //
  2057  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DisableAvailabilityZonesForLoadBalancer
  2058  func (c *ELB) DisableAvailabilityZonesForLoadBalancer(input *DisableAvailabilityZonesForLoadBalancerInput) (*DisableAvailabilityZonesForLoadBalancerOutput, error) {
  2059  	req, out := c.DisableAvailabilityZonesForLoadBalancerRequest(input)
  2060  	return out, req.Send()
  2061  }
  2062  
  2063  // DisableAvailabilityZonesForLoadBalancerWithContext is the same as DisableAvailabilityZonesForLoadBalancer with the addition of
  2064  // the ability to pass a context and additional request options.
  2065  //
  2066  // See DisableAvailabilityZonesForLoadBalancer for details on how to use this API operation.
  2067  //
  2068  // The context must be non-nil and will be used for request cancellation. If
  2069  // the context is nil a panic will occur. In the future the SDK may create
  2070  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2071  // for more information on using Contexts.
  2072  func (c *ELB) DisableAvailabilityZonesForLoadBalancerWithContext(ctx aws.Context, input *DisableAvailabilityZonesForLoadBalancerInput, opts ...request.Option) (*DisableAvailabilityZonesForLoadBalancerOutput, error) {
  2073  	req, out := c.DisableAvailabilityZonesForLoadBalancerRequest(input)
  2074  	req.SetContext(ctx)
  2075  	req.ApplyOptions(opts...)
  2076  	return out, req.Send()
  2077  }
  2078  
  2079  const opEnableAvailabilityZonesForLoadBalancer = "EnableAvailabilityZonesForLoadBalancer"
  2080  
  2081  // EnableAvailabilityZonesForLoadBalancerRequest generates a "aws/request.Request" representing the
  2082  // client's request for the EnableAvailabilityZonesForLoadBalancer operation. The "output" return
  2083  // value will be populated with the request's response once the request completes
  2084  // successfully.
  2085  //
  2086  // Use "Send" method on the returned Request to send the API call to the service.
  2087  // the "output" return value is not valid until after Send returns without error.
  2088  //
  2089  // See EnableAvailabilityZonesForLoadBalancer for more information on using the EnableAvailabilityZonesForLoadBalancer
  2090  // API call, and error handling.
  2091  //
  2092  // This method is useful when you want to inject custom logic or configuration
  2093  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2094  //
  2095  //
  2096  //    // Example sending a request using the EnableAvailabilityZonesForLoadBalancerRequest method.
  2097  //    req, resp := client.EnableAvailabilityZonesForLoadBalancerRequest(params)
  2098  //
  2099  //    err := req.Send()
  2100  //    if err == nil { // resp is now filled
  2101  //        fmt.Println(resp)
  2102  //    }
  2103  //
  2104  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/EnableAvailabilityZonesForLoadBalancer
  2105  func (c *ELB) EnableAvailabilityZonesForLoadBalancerRequest(input *EnableAvailabilityZonesForLoadBalancerInput) (req *request.Request, output *EnableAvailabilityZonesForLoadBalancerOutput) {
  2106  	op := &request.Operation{
  2107  		Name:       opEnableAvailabilityZonesForLoadBalancer,
  2108  		HTTPMethod: "POST",
  2109  		HTTPPath:   "/",
  2110  	}
  2111  
  2112  	if input == nil {
  2113  		input = &EnableAvailabilityZonesForLoadBalancerInput{}
  2114  	}
  2115  
  2116  	output = &EnableAvailabilityZonesForLoadBalancerOutput{}
  2117  	req = c.newRequest(op, input, output)
  2118  	return
  2119  }
  2120  
  2121  // EnableAvailabilityZonesForLoadBalancer API operation for Elastic Load Balancing.
  2122  //
  2123  // Adds the specified Availability Zones to the set of Availability Zones for
  2124  // the specified load balancer in EC2-Classic or a default VPC.
  2125  //
  2126  // For load balancers in a non-default VPC, use AttachLoadBalancerToSubnets.
  2127  //
  2128  // The load balancer evenly distributes requests across all its registered Availability
  2129  // Zones that contain instances. For more information, see Add or Remove Availability
  2130  // Zones (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-az.html)
  2131  // in the Classic Load Balancers Guide.
  2132  //
  2133  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2134  // with awserr.Error's Code and Message methods to get detailed information about
  2135  // the error.
  2136  //
  2137  // See the AWS API reference guide for Elastic Load Balancing's
  2138  // API operation EnableAvailabilityZonesForLoadBalancer for usage and error information.
  2139  //
  2140  // Returned Error Codes:
  2141  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  2142  //   The specified load balancer does not exist.
  2143  //
  2144  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/EnableAvailabilityZonesForLoadBalancer
  2145  func (c *ELB) EnableAvailabilityZonesForLoadBalancer(input *EnableAvailabilityZonesForLoadBalancerInput) (*EnableAvailabilityZonesForLoadBalancerOutput, error) {
  2146  	req, out := c.EnableAvailabilityZonesForLoadBalancerRequest(input)
  2147  	return out, req.Send()
  2148  }
  2149  
  2150  // EnableAvailabilityZonesForLoadBalancerWithContext is the same as EnableAvailabilityZonesForLoadBalancer with the addition of
  2151  // the ability to pass a context and additional request options.
  2152  //
  2153  // See EnableAvailabilityZonesForLoadBalancer for details on how to use this API operation.
  2154  //
  2155  // The context must be non-nil and will be used for request cancellation. If
  2156  // the context is nil a panic will occur. In the future the SDK may create
  2157  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2158  // for more information on using Contexts.
  2159  func (c *ELB) EnableAvailabilityZonesForLoadBalancerWithContext(ctx aws.Context, input *EnableAvailabilityZonesForLoadBalancerInput, opts ...request.Option) (*EnableAvailabilityZonesForLoadBalancerOutput, error) {
  2160  	req, out := c.EnableAvailabilityZonesForLoadBalancerRequest(input)
  2161  	req.SetContext(ctx)
  2162  	req.ApplyOptions(opts...)
  2163  	return out, req.Send()
  2164  }
  2165  
  2166  const opModifyLoadBalancerAttributes = "ModifyLoadBalancerAttributes"
  2167  
  2168  // ModifyLoadBalancerAttributesRequest generates a "aws/request.Request" representing the
  2169  // client's request for the ModifyLoadBalancerAttributes operation. The "output" return
  2170  // value will be populated with the request's response once the request completes
  2171  // successfully.
  2172  //
  2173  // Use "Send" method on the returned Request to send the API call to the service.
  2174  // the "output" return value is not valid until after Send returns without error.
  2175  //
  2176  // See ModifyLoadBalancerAttributes for more information on using the ModifyLoadBalancerAttributes
  2177  // API call, and error handling.
  2178  //
  2179  // This method is useful when you want to inject custom logic or configuration
  2180  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2181  //
  2182  //
  2183  //    // Example sending a request using the ModifyLoadBalancerAttributesRequest method.
  2184  //    req, resp := client.ModifyLoadBalancerAttributesRequest(params)
  2185  //
  2186  //    err := req.Send()
  2187  //    if err == nil { // resp is now filled
  2188  //        fmt.Println(resp)
  2189  //    }
  2190  //
  2191  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ModifyLoadBalancerAttributes
  2192  func (c *ELB) ModifyLoadBalancerAttributesRequest(input *ModifyLoadBalancerAttributesInput) (req *request.Request, output *ModifyLoadBalancerAttributesOutput) {
  2193  	op := &request.Operation{
  2194  		Name:       opModifyLoadBalancerAttributes,
  2195  		HTTPMethod: "POST",
  2196  		HTTPPath:   "/",
  2197  	}
  2198  
  2199  	if input == nil {
  2200  		input = &ModifyLoadBalancerAttributesInput{}
  2201  	}
  2202  
  2203  	output = &ModifyLoadBalancerAttributesOutput{}
  2204  	req = c.newRequest(op, input, output)
  2205  	return
  2206  }
  2207  
  2208  // ModifyLoadBalancerAttributes API operation for Elastic Load Balancing.
  2209  //
  2210  // Modifies the attributes of the specified load balancer.
  2211  //
  2212  // You can modify the load balancer attributes, such as AccessLogs, ConnectionDraining,
  2213  // and CrossZoneLoadBalancing by either enabling or disabling them. Or, you
  2214  // can modify the load balancer attribute ConnectionSettings by specifying an
  2215  // idle connection timeout value for your load balancer.
  2216  //
  2217  // For more information, see the following in the Classic Load Balancers Guide:
  2218  //
  2219  //    * Cross-Zone Load Balancing (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html)
  2220  //
  2221  //    * Connection Draining (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html)
  2222  //
  2223  //    * Access Logs (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/access-log-collection.html)
  2224  //
  2225  //    * Idle Connection Timeout (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html)
  2226  //
  2227  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2228  // with awserr.Error's Code and Message methods to get detailed information about
  2229  // the error.
  2230  //
  2231  // See the AWS API reference guide for Elastic Load Balancing's
  2232  // API operation ModifyLoadBalancerAttributes for usage and error information.
  2233  //
  2234  // Returned Error Codes:
  2235  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  2236  //   The specified load balancer does not exist.
  2237  //
  2238  //   * ErrCodeLoadBalancerAttributeNotFoundException "LoadBalancerAttributeNotFound"
  2239  //   The specified load balancer attribute does not exist.
  2240  //
  2241  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
  2242  //   The requested configuration change is not valid.
  2243  //
  2244  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ModifyLoadBalancerAttributes
  2245  func (c *ELB) ModifyLoadBalancerAttributes(input *ModifyLoadBalancerAttributesInput) (*ModifyLoadBalancerAttributesOutput, error) {
  2246  	req, out := c.ModifyLoadBalancerAttributesRequest(input)
  2247  	return out, req.Send()
  2248  }
  2249  
  2250  // ModifyLoadBalancerAttributesWithContext is the same as ModifyLoadBalancerAttributes with the addition of
  2251  // the ability to pass a context and additional request options.
  2252  //
  2253  // See ModifyLoadBalancerAttributes for details on how to use this API operation.
  2254  //
  2255  // The context must be non-nil and will be used for request cancellation. If
  2256  // the context is nil a panic will occur. In the future the SDK may create
  2257  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2258  // for more information on using Contexts.
  2259  func (c *ELB) ModifyLoadBalancerAttributesWithContext(ctx aws.Context, input *ModifyLoadBalancerAttributesInput, opts ...request.Option) (*ModifyLoadBalancerAttributesOutput, error) {
  2260  	req, out := c.ModifyLoadBalancerAttributesRequest(input)
  2261  	req.SetContext(ctx)
  2262  	req.ApplyOptions(opts...)
  2263  	return out, req.Send()
  2264  }
  2265  
  2266  const opRegisterInstancesWithLoadBalancer = "RegisterInstancesWithLoadBalancer"
  2267  
  2268  // RegisterInstancesWithLoadBalancerRequest generates a "aws/request.Request" representing the
  2269  // client's request for the RegisterInstancesWithLoadBalancer operation. The "output" return
  2270  // value will be populated with the request's response once the request completes
  2271  // successfully.
  2272  //
  2273  // Use "Send" method on the returned Request to send the API call to the service.
  2274  // the "output" return value is not valid until after Send returns without error.
  2275  //
  2276  // See RegisterInstancesWithLoadBalancer for more information on using the RegisterInstancesWithLoadBalancer
  2277  // API call, and error handling.
  2278  //
  2279  // This method is useful when you want to inject custom logic or configuration
  2280  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2281  //
  2282  //
  2283  //    // Example sending a request using the RegisterInstancesWithLoadBalancerRequest method.
  2284  //    req, resp := client.RegisterInstancesWithLoadBalancerRequest(params)
  2285  //
  2286  //    err := req.Send()
  2287  //    if err == nil { // resp is now filled
  2288  //        fmt.Println(resp)
  2289  //    }
  2290  //
  2291  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/RegisterInstancesWithLoadBalancer
  2292  func (c *ELB) RegisterInstancesWithLoadBalancerRequest(input *RegisterInstancesWithLoadBalancerInput) (req *request.Request, output *RegisterInstancesWithLoadBalancerOutput) {
  2293  	op := &request.Operation{
  2294  		Name:       opRegisterInstancesWithLoadBalancer,
  2295  		HTTPMethod: "POST",
  2296  		HTTPPath:   "/",
  2297  	}
  2298  
  2299  	if input == nil {
  2300  		input = &RegisterInstancesWithLoadBalancerInput{}
  2301  	}
  2302  
  2303  	output = &RegisterInstancesWithLoadBalancerOutput{}
  2304  	req = c.newRequest(op, input, output)
  2305  	return
  2306  }
  2307  
  2308  // RegisterInstancesWithLoadBalancer API operation for Elastic Load Balancing.
  2309  //
  2310  // Adds the specified instances to the specified load balancer.
  2311  //
  2312  // The instance must be a running instance in the same network as the load balancer
  2313  // (EC2-Classic or the same VPC). If you have EC2-Classic instances and a load
  2314  // balancer in a VPC with ClassicLink enabled, you can link the EC2-Classic
  2315  // instances to that VPC and then register the linked EC2-Classic instances
  2316  // with the load balancer in the VPC.
  2317  //
  2318  // Note that RegisterInstanceWithLoadBalancer completes when the request has
  2319  // been registered. Instance registration takes a little time to complete. To
  2320  // check the state of the registered instances, use DescribeLoadBalancers or
  2321  // DescribeInstanceHealth.
  2322  //
  2323  // After the instance is registered, it starts receiving traffic and requests
  2324  // from the load balancer. Any instance that is not in one of the Availability
  2325  // Zones registered for the load balancer is moved to the OutOfService state.
  2326  // If an Availability Zone is added to the load balancer later, any instances
  2327  // registered with the load balancer move to the InService state.
  2328  //
  2329  // To deregister instances from a load balancer, use DeregisterInstancesFromLoadBalancer.
  2330  //
  2331  // For more information, see Register or De-Register EC2 Instances (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-deregister-register-instances.html)
  2332  // in the Classic Load Balancers Guide.
  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 RegisterInstancesWithLoadBalancer for usage and error information.
  2340  //
  2341  // Returned Error Codes:
  2342  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  2343  //   The specified load balancer does not exist.
  2344  //
  2345  //   * ErrCodeInvalidEndPointException "InvalidInstance"
  2346  //   The specified endpoint is not valid.
  2347  //
  2348  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/RegisterInstancesWithLoadBalancer
  2349  func (c *ELB) RegisterInstancesWithLoadBalancer(input *RegisterInstancesWithLoadBalancerInput) (*RegisterInstancesWithLoadBalancerOutput, error) {
  2350  	req, out := c.RegisterInstancesWithLoadBalancerRequest(input)
  2351  	return out, req.Send()
  2352  }
  2353  
  2354  // RegisterInstancesWithLoadBalancerWithContext is the same as RegisterInstancesWithLoadBalancer with the addition of
  2355  // the ability to pass a context and additional request options.
  2356  //
  2357  // See RegisterInstancesWithLoadBalancer for details on how to use this API operation.
  2358  //
  2359  // The context must be non-nil and will be used for request cancellation. If
  2360  // the context is nil a panic will occur. In the future the SDK may create
  2361  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2362  // for more information on using Contexts.
  2363  func (c *ELB) RegisterInstancesWithLoadBalancerWithContext(ctx aws.Context, input *RegisterInstancesWithLoadBalancerInput, opts ...request.Option) (*RegisterInstancesWithLoadBalancerOutput, error) {
  2364  	req, out := c.RegisterInstancesWithLoadBalancerRequest(input)
  2365  	req.SetContext(ctx)
  2366  	req.ApplyOptions(opts...)
  2367  	return out, req.Send()
  2368  }
  2369  
  2370  const opRemoveTags = "RemoveTags"
  2371  
  2372  // RemoveTagsRequest generates a "aws/request.Request" representing the
  2373  // client's request for the RemoveTags operation. The "output" return
  2374  // value will be populated with the request's response once the request completes
  2375  // successfully.
  2376  //
  2377  // Use "Send" method on the returned Request to send the API call to the service.
  2378  // the "output" return value is not valid until after Send returns without error.
  2379  //
  2380  // See RemoveTags for more information on using the RemoveTags
  2381  // API call, and error handling.
  2382  //
  2383  // This method is useful when you want to inject custom logic or configuration
  2384  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2385  //
  2386  //
  2387  //    // Example sending a request using the RemoveTagsRequest method.
  2388  //    req, resp := client.RemoveTagsRequest(params)
  2389  //
  2390  //    err := req.Send()
  2391  //    if err == nil { // resp is now filled
  2392  //        fmt.Println(resp)
  2393  //    }
  2394  //
  2395  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/RemoveTags
  2396  func (c *ELB) RemoveTagsRequest(input *RemoveTagsInput) (req *request.Request, output *RemoveTagsOutput) {
  2397  	op := &request.Operation{
  2398  		Name:       opRemoveTags,
  2399  		HTTPMethod: "POST",
  2400  		HTTPPath:   "/",
  2401  	}
  2402  
  2403  	if input == nil {
  2404  		input = &RemoveTagsInput{}
  2405  	}
  2406  
  2407  	output = &RemoveTagsOutput{}
  2408  	req = c.newRequest(op, input, output)
  2409  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2410  	return
  2411  }
  2412  
  2413  // RemoveTags API operation for Elastic Load Balancing.
  2414  //
  2415  // Removes one or more tags from the specified load balancer.
  2416  //
  2417  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2418  // with awserr.Error's Code and Message methods to get detailed information about
  2419  // the error.
  2420  //
  2421  // See the AWS API reference guide for Elastic Load Balancing's
  2422  // API operation RemoveTags for usage and error information.
  2423  //
  2424  // Returned Error Codes:
  2425  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  2426  //   The specified load balancer does not exist.
  2427  //
  2428  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/RemoveTags
  2429  func (c *ELB) RemoveTags(input *RemoveTagsInput) (*RemoveTagsOutput, error) {
  2430  	req, out := c.RemoveTagsRequest(input)
  2431  	return out, req.Send()
  2432  }
  2433  
  2434  // RemoveTagsWithContext is the same as RemoveTags with the addition of
  2435  // the ability to pass a context and additional request options.
  2436  //
  2437  // See RemoveTags for details on how to use this API operation.
  2438  //
  2439  // The context must be non-nil and will be used for request cancellation. If
  2440  // the context is nil a panic will occur. In the future the SDK may create
  2441  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2442  // for more information on using Contexts.
  2443  func (c *ELB) RemoveTagsWithContext(ctx aws.Context, input *RemoveTagsInput, opts ...request.Option) (*RemoveTagsOutput, error) {
  2444  	req, out := c.RemoveTagsRequest(input)
  2445  	req.SetContext(ctx)
  2446  	req.ApplyOptions(opts...)
  2447  	return out, req.Send()
  2448  }
  2449  
  2450  const opSetLoadBalancerListenerSSLCertificate = "SetLoadBalancerListenerSSLCertificate"
  2451  
  2452  // SetLoadBalancerListenerSSLCertificateRequest generates a "aws/request.Request" representing the
  2453  // client's request for the SetLoadBalancerListenerSSLCertificate operation. The "output" return
  2454  // value will be populated with the request's response once the request completes
  2455  // successfully.
  2456  //
  2457  // Use "Send" method on the returned Request to send the API call to the service.
  2458  // the "output" return value is not valid until after Send returns without error.
  2459  //
  2460  // See SetLoadBalancerListenerSSLCertificate for more information on using the SetLoadBalancerListenerSSLCertificate
  2461  // API call, and error handling.
  2462  //
  2463  // This method is useful when you want to inject custom logic or configuration
  2464  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2465  //
  2466  //
  2467  //    // Example sending a request using the SetLoadBalancerListenerSSLCertificateRequest method.
  2468  //    req, resp := client.SetLoadBalancerListenerSSLCertificateRequest(params)
  2469  //
  2470  //    err := req.Send()
  2471  //    if err == nil { // resp is now filled
  2472  //        fmt.Println(resp)
  2473  //    }
  2474  //
  2475  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/SetLoadBalancerListenerSSLCertificate
  2476  func (c *ELB) SetLoadBalancerListenerSSLCertificateRequest(input *SetLoadBalancerListenerSSLCertificateInput) (req *request.Request, output *SetLoadBalancerListenerSSLCertificateOutput) {
  2477  	op := &request.Operation{
  2478  		Name:       opSetLoadBalancerListenerSSLCertificate,
  2479  		HTTPMethod: "POST",
  2480  		HTTPPath:   "/",
  2481  	}
  2482  
  2483  	if input == nil {
  2484  		input = &SetLoadBalancerListenerSSLCertificateInput{}
  2485  	}
  2486  
  2487  	output = &SetLoadBalancerListenerSSLCertificateOutput{}
  2488  	req = c.newRequest(op, input, output)
  2489  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2490  	return
  2491  }
  2492  
  2493  // SetLoadBalancerListenerSSLCertificate API operation for Elastic Load Balancing.
  2494  //
  2495  // Sets the certificate that terminates the specified listener's SSL connections.
  2496  // The specified certificate replaces any prior certificate that was used on
  2497  // the same load balancer and port.
  2498  //
  2499  // For more information about updating your SSL certificate, see Replace the
  2500  // SSL Certificate for Your Load Balancer (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-update-ssl-cert.html)
  2501  // in the Classic Load Balancers Guide.
  2502  //
  2503  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2504  // with awserr.Error's Code and Message methods to get detailed information about
  2505  // the error.
  2506  //
  2507  // See the AWS API reference guide for Elastic Load Balancing's
  2508  // API operation SetLoadBalancerListenerSSLCertificate for usage and error information.
  2509  //
  2510  // Returned Error Codes:
  2511  //   * ErrCodeCertificateNotFoundException "CertificateNotFound"
  2512  //   The specified ARN does not refer to a valid SSL certificate in AWS Identity
  2513  //   and Access Management (IAM) or AWS Certificate Manager (ACM). Note that if
  2514  //   you recently uploaded the certificate to IAM, this error might indicate that
  2515  //   the certificate is not fully available yet.
  2516  //
  2517  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  2518  //   The specified load balancer does not exist.
  2519  //
  2520  //   * ErrCodeListenerNotFoundException "ListenerNotFound"
  2521  //   The load balancer does not have a listener configured at the specified port.
  2522  //
  2523  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
  2524  //   The requested configuration change is not valid.
  2525  //
  2526  //   * ErrCodeUnsupportedProtocolException "UnsupportedProtocol"
  2527  //   The specified protocol or signature version is not supported.
  2528  //
  2529  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/SetLoadBalancerListenerSSLCertificate
  2530  func (c *ELB) SetLoadBalancerListenerSSLCertificate(input *SetLoadBalancerListenerSSLCertificateInput) (*SetLoadBalancerListenerSSLCertificateOutput, error) {
  2531  	req, out := c.SetLoadBalancerListenerSSLCertificateRequest(input)
  2532  	return out, req.Send()
  2533  }
  2534  
  2535  // SetLoadBalancerListenerSSLCertificateWithContext is the same as SetLoadBalancerListenerSSLCertificate with the addition of
  2536  // the ability to pass a context and additional request options.
  2537  //
  2538  // See SetLoadBalancerListenerSSLCertificate for details on how to use this API operation.
  2539  //
  2540  // The context must be non-nil and will be used for request cancellation. If
  2541  // the context is nil a panic will occur. In the future the SDK may create
  2542  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2543  // for more information on using Contexts.
  2544  func (c *ELB) SetLoadBalancerListenerSSLCertificateWithContext(ctx aws.Context, input *SetLoadBalancerListenerSSLCertificateInput, opts ...request.Option) (*SetLoadBalancerListenerSSLCertificateOutput, error) {
  2545  	req, out := c.SetLoadBalancerListenerSSLCertificateRequest(input)
  2546  	req.SetContext(ctx)
  2547  	req.ApplyOptions(opts...)
  2548  	return out, req.Send()
  2549  }
  2550  
  2551  const opSetLoadBalancerPoliciesForBackendServer = "SetLoadBalancerPoliciesForBackendServer"
  2552  
  2553  // SetLoadBalancerPoliciesForBackendServerRequest generates a "aws/request.Request" representing the
  2554  // client's request for the SetLoadBalancerPoliciesForBackendServer operation. The "output" return
  2555  // value will be populated with the request's response once the request completes
  2556  // successfully.
  2557  //
  2558  // Use "Send" method on the returned Request to send the API call to the service.
  2559  // the "output" return value is not valid until after Send returns without error.
  2560  //
  2561  // See SetLoadBalancerPoliciesForBackendServer for more information on using the SetLoadBalancerPoliciesForBackendServer
  2562  // API call, and error handling.
  2563  //
  2564  // This method is useful when you want to inject custom logic or configuration
  2565  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2566  //
  2567  //
  2568  //    // Example sending a request using the SetLoadBalancerPoliciesForBackendServerRequest method.
  2569  //    req, resp := client.SetLoadBalancerPoliciesForBackendServerRequest(params)
  2570  //
  2571  //    err := req.Send()
  2572  //    if err == nil { // resp is now filled
  2573  //        fmt.Println(resp)
  2574  //    }
  2575  //
  2576  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/SetLoadBalancerPoliciesForBackendServer
  2577  func (c *ELB) SetLoadBalancerPoliciesForBackendServerRequest(input *SetLoadBalancerPoliciesForBackendServerInput) (req *request.Request, output *SetLoadBalancerPoliciesForBackendServerOutput) {
  2578  	op := &request.Operation{
  2579  		Name:       opSetLoadBalancerPoliciesForBackendServer,
  2580  		HTTPMethod: "POST",
  2581  		HTTPPath:   "/",
  2582  	}
  2583  
  2584  	if input == nil {
  2585  		input = &SetLoadBalancerPoliciesForBackendServerInput{}
  2586  	}
  2587  
  2588  	output = &SetLoadBalancerPoliciesForBackendServerOutput{}
  2589  	req = c.newRequest(op, input, output)
  2590  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2591  	return
  2592  }
  2593  
  2594  // SetLoadBalancerPoliciesForBackendServer API operation for Elastic Load Balancing.
  2595  //
  2596  // Replaces the set of policies associated with the specified port on which
  2597  // the EC2 instance is listening with a new set of policies. At this time, only
  2598  // the back-end server authentication policy type can be applied to the instance
  2599  // ports; this policy type is composed of multiple public key policies.
  2600  //
  2601  // Each time you use SetLoadBalancerPoliciesForBackendServer to enable the policies,
  2602  // use the PolicyNames parameter to list the policies that you want to enable.
  2603  //
  2604  // You can use DescribeLoadBalancers or DescribeLoadBalancerPolicies to verify
  2605  // that the policy is associated with the EC2 instance.
  2606  //
  2607  // For more information about enabling back-end instance authentication, see
  2608  // Configure Back-end Instance Authentication (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-create-https-ssl-load-balancer.html#configure_backendauth_clt)
  2609  // in the Classic Load Balancers Guide. For more information about Proxy Protocol,
  2610  // see Configure Proxy Protocol Support (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-proxy-protocol.html)
  2611  // in the Classic Load Balancers Guide.
  2612  //
  2613  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2614  // with awserr.Error's Code and Message methods to get detailed information about
  2615  // the error.
  2616  //
  2617  // See the AWS API reference guide for Elastic Load Balancing's
  2618  // API operation SetLoadBalancerPoliciesForBackendServer for usage and error information.
  2619  //
  2620  // Returned Error Codes:
  2621  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  2622  //   The specified load balancer does not exist.
  2623  //
  2624  //   * ErrCodePolicyNotFoundException "PolicyNotFound"
  2625  //   One or more of the specified policies do not exist.
  2626  //
  2627  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
  2628  //   The requested configuration change is not valid.
  2629  //
  2630  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/SetLoadBalancerPoliciesForBackendServer
  2631  func (c *ELB) SetLoadBalancerPoliciesForBackendServer(input *SetLoadBalancerPoliciesForBackendServerInput) (*SetLoadBalancerPoliciesForBackendServerOutput, error) {
  2632  	req, out := c.SetLoadBalancerPoliciesForBackendServerRequest(input)
  2633  	return out, req.Send()
  2634  }
  2635  
  2636  // SetLoadBalancerPoliciesForBackendServerWithContext is the same as SetLoadBalancerPoliciesForBackendServer with the addition of
  2637  // the ability to pass a context and additional request options.
  2638  //
  2639  // See SetLoadBalancerPoliciesForBackendServer for details on how to use this API operation.
  2640  //
  2641  // The context must be non-nil and will be used for request cancellation. If
  2642  // the context is nil a panic will occur. In the future the SDK may create
  2643  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2644  // for more information on using Contexts.
  2645  func (c *ELB) SetLoadBalancerPoliciesForBackendServerWithContext(ctx aws.Context, input *SetLoadBalancerPoliciesForBackendServerInput, opts ...request.Option) (*SetLoadBalancerPoliciesForBackendServerOutput, error) {
  2646  	req, out := c.SetLoadBalancerPoliciesForBackendServerRequest(input)
  2647  	req.SetContext(ctx)
  2648  	req.ApplyOptions(opts...)
  2649  	return out, req.Send()
  2650  }
  2651  
  2652  const opSetLoadBalancerPoliciesOfListener = "SetLoadBalancerPoliciesOfListener"
  2653  
  2654  // SetLoadBalancerPoliciesOfListenerRequest generates a "aws/request.Request" representing the
  2655  // client's request for the SetLoadBalancerPoliciesOfListener operation. The "output" return
  2656  // value will be populated with the request's response once the request completes
  2657  // successfully.
  2658  //
  2659  // Use "Send" method on the returned Request to send the API call to the service.
  2660  // the "output" return value is not valid until after Send returns without error.
  2661  //
  2662  // See SetLoadBalancerPoliciesOfListener for more information on using the SetLoadBalancerPoliciesOfListener
  2663  // API call, and error handling.
  2664  //
  2665  // This method is useful when you want to inject custom logic or configuration
  2666  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2667  //
  2668  //
  2669  //    // Example sending a request using the SetLoadBalancerPoliciesOfListenerRequest method.
  2670  //    req, resp := client.SetLoadBalancerPoliciesOfListenerRequest(params)
  2671  //
  2672  //    err := req.Send()
  2673  //    if err == nil { // resp is now filled
  2674  //        fmt.Println(resp)
  2675  //    }
  2676  //
  2677  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/SetLoadBalancerPoliciesOfListener
  2678  func (c *ELB) SetLoadBalancerPoliciesOfListenerRequest(input *SetLoadBalancerPoliciesOfListenerInput) (req *request.Request, output *SetLoadBalancerPoliciesOfListenerOutput) {
  2679  	op := &request.Operation{
  2680  		Name:       opSetLoadBalancerPoliciesOfListener,
  2681  		HTTPMethod: "POST",
  2682  		HTTPPath:   "/",
  2683  	}
  2684  
  2685  	if input == nil {
  2686  		input = &SetLoadBalancerPoliciesOfListenerInput{}
  2687  	}
  2688  
  2689  	output = &SetLoadBalancerPoliciesOfListenerOutput{}
  2690  	req = c.newRequest(op, input, output)
  2691  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2692  	return
  2693  }
  2694  
  2695  // SetLoadBalancerPoliciesOfListener API operation for Elastic Load Balancing.
  2696  //
  2697  // Replaces the current set of policies for the specified load balancer port
  2698  // with the specified set of policies.
  2699  //
  2700  // To enable back-end server authentication, use SetLoadBalancerPoliciesForBackendServer.
  2701  //
  2702  // For more information about setting policies, see Update the SSL Negotiation
  2703  // Configuration (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/ssl-config-update.html),
  2704  // Duration-Based Session Stickiness (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-duration),
  2705  // and Application-Controlled Session Stickiness (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-application)
  2706  // in the Classic Load Balancers Guide.
  2707  //
  2708  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2709  // with awserr.Error's Code and Message methods to get detailed information about
  2710  // the error.
  2711  //
  2712  // See the AWS API reference guide for Elastic Load Balancing's
  2713  // API operation SetLoadBalancerPoliciesOfListener for usage and error information.
  2714  //
  2715  // Returned Error Codes:
  2716  //   * ErrCodeAccessPointNotFoundException "LoadBalancerNotFound"
  2717  //   The specified load balancer does not exist.
  2718  //
  2719  //   * ErrCodePolicyNotFoundException "PolicyNotFound"
  2720  //   One or more of the specified policies do not exist.
  2721  //
  2722  //   * ErrCodeListenerNotFoundException "ListenerNotFound"
  2723  //   The load balancer does not have a listener configured at the specified port.
  2724  //
  2725  //   * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
  2726  //   The requested configuration change is not valid.
  2727  //
  2728  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/SetLoadBalancerPoliciesOfListener
  2729  func (c *ELB) SetLoadBalancerPoliciesOfListener(input *SetLoadBalancerPoliciesOfListenerInput) (*SetLoadBalancerPoliciesOfListenerOutput, error) {
  2730  	req, out := c.SetLoadBalancerPoliciesOfListenerRequest(input)
  2731  	return out, req.Send()
  2732  }
  2733  
  2734  // SetLoadBalancerPoliciesOfListenerWithContext is the same as SetLoadBalancerPoliciesOfListener with the addition of
  2735  // the ability to pass a context and additional request options.
  2736  //
  2737  // See SetLoadBalancerPoliciesOfListener for details on how to use this API operation.
  2738  //
  2739  // The context must be non-nil and will be used for request cancellation. If
  2740  // the context is nil a panic will occur. In the future the SDK may create
  2741  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2742  // for more information on using Contexts.
  2743  func (c *ELB) SetLoadBalancerPoliciesOfListenerWithContext(ctx aws.Context, input *SetLoadBalancerPoliciesOfListenerInput, opts ...request.Option) (*SetLoadBalancerPoliciesOfListenerOutput, error) {
  2744  	req, out := c.SetLoadBalancerPoliciesOfListenerRequest(input)
  2745  	req.SetContext(ctx)
  2746  	req.ApplyOptions(opts...)
  2747  	return out, req.Send()
  2748  }
  2749  
  2750  // Information about the AccessLog attribute.
  2751  type AccessLog struct {
  2752  	_ struct{} `type:"structure"`
  2753  
  2754  	// The interval for publishing the access logs. You can specify an interval
  2755  	// of either 5 minutes or 60 minutes.
  2756  	//
  2757  	// Default: 60 minutes
  2758  	EmitInterval *int64 `type:"integer"`
  2759  
  2760  	// Specifies whether access logs are enabled for the load balancer.
  2761  	//
  2762  	// Enabled is a required field
  2763  	Enabled *bool `type:"boolean" required:"true"`
  2764  
  2765  	// The name of the Amazon S3 bucket where the access logs are stored.
  2766  	S3BucketName *string `type:"string"`
  2767  
  2768  	// The logical hierarchy you created for your Amazon S3 bucket, for example
  2769  	// my-bucket-prefix/prod. If the prefix is not provided, the log is placed at
  2770  	// the root level of the bucket.
  2771  	S3BucketPrefix *string `type:"string"`
  2772  }
  2773  
  2774  // String returns the string representation.
  2775  //
  2776  // API parameter values that are decorated as "sensitive" in the API will not
  2777  // be included in the string output. The member name will be present, but the
  2778  // value will be replaced with "sensitive".
  2779  func (s AccessLog) String() string {
  2780  	return awsutil.Prettify(s)
  2781  }
  2782  
  2783  // GoString returns the string representation.
  2784  //
  2785  // API parameter values that are decorated as "sensitive" in the API will not
  2786  // be included in the string output. The member name will be present, but the
  2787  // value will be replaced with "sensitive".
  2788  func (s AccessLog) GoString() string {
  2789  	return s.String()
  2790  }
  2791  
  2792  // Validate inspects the fields of the type to determine if they are valid.
  2793  func (s *AccessLog) Validate() error {
  2794  	invalidParams := request.ErrInvalidParams{Context: "AccessLog"}
  2795  	if s.Enabled == nil {
  2796  		invalidParams.Add(request.NewErrParamRequired("Enabled"))
  2797  	}
  2798  
  2799  	if invalidParams.Len() > 0 {
  2800  		return invalidParams
  2801  	}
  2802  	return nil
  2803  }
  2804  
  2805  // SetEmitInterval sets the EmitInterval field's value.
  2806  func (s *AccessLog) SetEmitInterval(v int64) *AccessLog {
  2807  	s.EmitInterval = &v
  2808  	return s
  2809  }
  2810  
  2811  // SetEnabled sets the Enabled field's value.
  2812  func (s *AccessLog) SetEnabled(v bool) *AccessLog {
  2813  	s.Enabled = &v
  2814  	return s
  2815  }
  2816  
  2817  // SetS3BucketName sets the S3BucketName field's value.
  2818  func (s *AccessLog) SetS3BucketName(v string) *AccessLog {
  2819  	s.S3BucketName = &v
  2820  	return s
  2821  }
  2822  
  2823  // SetS3BucketPrefix sets the S3BucketPrefix field's value.
  2824  func (s *AccessLog) SetS3BucketPrefix(v string) *AccessLog {
  2825  	s.S3BucketPrefix = &v
  2826  	return s
  2827  }
  2828  
  2829  // Contains the parameters for AddTags.
  2830  type AddTagsInput struct {
  2831  	_ struct{} `type:"structure"`
  2832  
  2833  	// The name of the load balancer. You can specify one load balancer only.
  2834  	//
  2835  	// LoadBalancerNames is a required field
  2836  	LoadBalancerNames []*string `type:"list" required:"true"`
  2837  
  2838  	// The tags.
  2839  	//
  2840  	// Tags is a required field
  2841  	Tags []*Tag `min:"1" type:"list" required:"true"`
  2842  }
  2843  
  2844  // String returns the string representation.
  2845  //
  2846  // API parameter values that are decorated as "sensitive" in the API will not
  2847  // be included in the string output. The member name will be present, but the
  2848  // value will be replaced with "sensitive".
  2849  func (s AddTagsInput) String() string {
  2850  	return awsutil.Prettify(s)
  2851  }
  2852  
  2853  // GoString returns the string representation.
  2854  //
  2855  // API parameter values that are decorated as "sensitive" in the API will not
  2856  // be included in the string output. The member name will be present, but the
  2857  // value will be replaced with "sensitive".
  2858  func (s AddTagsInput) GoString() string {
  2859  	return s.String()
  2860  }
  2861  
  2862  // Validate inspects the fields of the type to determine if they are valid.
  2863  func (s *AddTagsInput) Validate() error {
  2864  	invalidParams := request.ErrInvalidParams{Context: "AddTagsInput"}
  2865  	if s.LoadBalancerNames == nil {
  2866  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerNames"))
  2867  	}
  2868  	if s.Tags == nil {
  2869  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  2870  	}
  2871  	if s.Tags != nil && len(s.Tags) < 1 {
  2872  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  2873  	}
  2874  	if s.Tags != nil {
  2875  		for i, v := range s.Tags {
  2876  			if v == nil {
  2877  				continue
  2878  			}
  2879  			if err := v.Validate(); err != nil {
  2880  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  2881  			}
  2882  		}
  2883  	}
  2884  
  2885  	if invalidParams.Len() > 0 {
  2886  		return invalidParams
  2887  	}
  2888  	return nil
  2889  }
  2890  
  2891  // SetLoadBalancerNames sets the LoadBalancerNames field's value.
  2892  func (s *AddTagsInput) SetLoadBalancerNames(v []*string) *AddTagsInput {
  2893  	s.LoadBalancerNames = v
  2894  	return s
  2895  }
  2896  
  2897  // SetTags sets the Tags field's value.
  2898  func (s *AddTagsInput) SetTags(v []*Tag) *AddTagsInput {
  2899  	s.Tags = v
  2900  	return s
  2901  }
  2902  
  2903  // Contains the output of AddTags.
  2904  type AddTagsOutput struct {
  2905  	_ struct{} `type:"structure"`
  2906  }
  2907  
  2908  // String returns the string representation.
  2909  //
  2910  // API parameter values that are decorated as "sensitive" in the API will not
  2911  // be included in the string output. The member name will be present, but the
  2912  // value will be replaced with "sensitive".
  2913  func (s AddTagsOutput) String() string {
  2914  	return awsutil.Prettify(s)
  2915  }
  2916  
  2917  // GoString returns the string representation.
  2918  //
  2919  // API parameter values that are decorated as "sensitive" in the API will not
  2920  // be included in the string output. The member name will be present, but the
  2921  // value will be replaced with "sensitive".
  2922  func (s AddTagsOutput) GoString() string {
  2923  	return s.String()
  2924  }
  2925  
  2926  // Information about additional load balancer attributes.
  2927  type AdditionalAttribute struct {
  2928  	_ struct{} `type:"structure"`
  2929  
  2930  	// The name of the attribute.
  2931  	//
  2932  	// The following attribute is supported.
  2933  	//
  2934  	//    * elb.http.desyncmitigationmode - Determines how the load balancer handles
  2935  	//    requests that might pose a security risk to your application. The possible
  2936  	//    values are monitor, defensive, and strictest. The default is defensive.
  2937  	Key *string `type:"string"`
  2938  
  2939  	// This value of the attribute.
  2940  	Value *string `type:"string"`
  2941  }
  2942  
  2943  // String returns the string representation.
  2944  //
  2945  // API parameter values that are decorated as "sensitive" in the API will not
  2946  // be included in the string output. The member name will be present, but the
  2947  // value will be replaced with "sensitive".
  2948  func (s AdditionalAttribute) String() string {
  2949  	return awsutil.Prettify(s)
  2950  }
  2951  
  2952  // GoString returns the string representation.
  2953  //
  2954  // API parameter values that are decorated as "sensitive" in the API will not
  2955  // be included in the string output. The member name will be present, but the
  2956  // value will be replaced with "sensitive".
  2957  func (s AdditionalAttribute) GoString() string {
  2958  	return s.String()
  2959  }
  2960  
  2961  // SetKey sets the Key field's value.
  2962  func (s *AdditionalAttribute) SetKey(v string) *AdditionalAttribute {
  2963  	s.Key = &v
  2964  	return s
  2965  }
  2966  
  2967  // SetValue sets the Value field's value.
  2968  func (s *AdditionalAttribute) SetValue(v string) *AdditionalAttribute {
  2969  	s.Value = &v
  2970  	return s
  2971  }
  2972  
  2973  // Information about a policy for application-controlled session stickiness.
  2974  type AppCookieStickinessPolicy struct {
  2975  	_ struct{} `type:"structure"`
  2976  
  2977  	// The name of the application cookie used for stickiness.
  2978  	CookieName *string `type:"string"`
  2979  
  2980  	// The mnemonic name for the policy being created. The name must be unique within
  2981  	// a set of policies for this load balancer.
  2982  	PolicyName *string `type:"string"`
  2983  }
  2984  
  2985  // String returns the string representation.
  2986  //
  2987  // API parameter values that are decorated as "sensitive" in the API will not
  2988  // be included in the string output. The member name will be present, but the
  2989  // value will be replaced with "sensitive".
  2990  func (s AppCookieStickinessPolicy) String() string {
  2991  	return awsutil.Prettify(s)
  2992  }
  2993  
  2994  // GoString returns the string representation.
  2995  //
  2996  // API parameter values that are decorated as "sensitive" in the API will not
  2997  // be included in the string output. The member name will be present, but the
  2998  // value will be replaced with "sensitive".
  2999  func (s AppCookieStickinessPolicy) GoString() string {
  3000  	return s.String()
  3001  }
  3002  
  3003  // SetCookieName sets the CookieName field's value.
  3004  func (s *AppCookieStickinessPolicy) SetCookieName(v string) *AppCookieStickinessPolicy {
  3005  	s.CookieName = &v
  3006  	return s
  3007  }
  3008  
  3009  // SetPolicyName sets the PolicyName field's value.
  3010  func (s *AppCookieStickinessPolicy) SetPolicyName(v string) *AppCookieStickinessPolicy {
  3011  	s.PolicyName = &v
  3012  	return s
  3013  }
  3014  
  3015  // Contains the parameters for ApplySecurityGroupsToLoadBalancer.
  3016  type ApplySecurityGroupsToLoadBalancerInput struct {
  3017  	_ struct{} `type:"structure"`
  3018  
  3019  	// The name of the load balancer.
  3020  	//
  3021  	// LoadBalancerName is a required field
  3022  	LoadBalancerName *string `type:"string" required:"true"`
  3023  
  3024  	// The IDs of the security groups to associate with the load balancer. Note
  3025  	// that you cannot specify the name of the security group.
  3026  	//
  3027  	// SecurityGroups is a required field
  3028  	SecurityGroups []*string `type:"list" required:"true"`
  3029  }
  3030  
  3031  // String returns the string representation.
  3032  //
  3033  // API parameter values that are decorated as "sensitive" in the API will not
  3034  // be included in the string output. The member name will be present, but the
  3035  // value will be replaced with "sensitive".
  3036  func (s ApplySecurityGroupsToLoadBalancerInput) String() string {
  3037  	return awsutil.Prettify(s)
  3038  }
  3039  
  3040  // GoString returns the string representation.
  3041  //
  3042  // API parameter values that are decorated as "sensitive" in the API will not
  3043  // be included in the string output. The member name will be present, but the
  3044  // value will be replaced with "sensitive".
  3045  func (s ApplySecurityGroupsToLoadBalancerInput) GoString() string {
  3046  	return s.String()
  3047  }
  3048  
  3049  // Validate inspects the fields of the type to determine if they are valid.
  3050  func (s *ApplySecurityGroupsToLoadBalancerInput) Validate() error {
  3051  	invalidParams := request.ErrInvalidParams{Context: "ApplySecurityGroupsToLoadBalancerInput"}
  3052  	if s.LoadBalancerName == nil {
  3053  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  3054  	}
  3055  	if s.SecurityGroups == nil {
  3056  		invalidParams.Add(request.NewErrParamRequired("SecurityGroups"))
  3057  	}
  3058  
  3059  	if invalidParams.Len() > 0 {
  3060  		return invalidParams
  3061  	}
  3062  	return nil
  3063  }
  3064  
  3065  // SetLoadBalancerName sets the LoadBalancerName field's value.
  3066  func (s *ApplySecurityGroupsToLoadBalancerInput) SetLoadBalancerName(v string) *ApplySecurityGroupsToLoadBalancerInput {
  3067  	s.LoadBalancerName = &v
  3068  	return s
  3069  }
  3070  
  3071  // SetSecurityGroups sets the SecurityGroups field's value.
  3072  func (s *ApplySecurityGroupsToLoadBalancerInput) SetSecurityGroups(v []*string) *ApplySecurityGroupsToLoadBalancerInput {
  3073  	s.SecurityGroups = v
  3074  	return s
  3075  }
  3076  
  3077  // Contains the output of ApplySecurityGroupsToLoadBalancer.
  3078  type ApplySecurityGroupsToLoadBalancerOutput struct {
  3079  	_ struct{} `type:"structure"`
  3080  
  3081  	// The IDs of the security groups associated with the load balancer.
  3082  	SecurityGroups []*string `type:"list"`
  3083  }
  3084  
  3085  // String returns the string representation.
  3086  //
  3087  // API parameter values that are decorated as "sensitive" in the API will not
  3088  // be included in the string output. The member name will be present, but the
  3089  // value will be replaced with "sensitive".
  3090  func (s ApplySecurityGroupsToLoadBalancerOutput) String() string {
  3091  	return awsutil.Prettify(s)
  3092  }
  3093  
  3094  // GoString returns the string representation.
  3095  //
  3096  // API parameter values that are decorated as "sensitive" in the API will not
  3097  // be included in the string output. The member name will be present, but the
  3098  // value will be replaced with "sensitive".
  3099  func (s ApplySecurityGroupsToLoadBalancerOutput) GoString() string {
  3100  	return s.String()
  3101  }
  3102  
  3103  // SetSecurityGroups sets the SecurityGroups field's value.
  3104  func (s *ApplySecurityGroupsToLoadBalancerOutput) SetSecurityGroups(v []*string) *ApplySecurityGroupsToLoadBalancerOutput {
  3105  	s.SecurityGroups = v
  3106  	return s
  3107  }
  3108  
  3109  // Contains the parameters for AttachLoaBalancerToSubnets.
  3110  type AttachLoadBalancerToSubnetsInput struct {
  3111  	_ struct{} `type:"structure"`
  3112  
  3113  	// The name of the load balancer.
  3114  	//
  3115  	// LoadBalancerName is a required field
  3116  	LoadBalancerName *string `type:"string" required:"true"`
  3117  
  3118  	// The IDs of the subnets to add. You can add only one subnet per Availability
  3119  	// Zone.
  3120  	//
  3121  	// Subnets is a required field
  3122  	Subnets []*string `type:"list" required:"true"`
  3123  }
  3124  
  3125  // String returns the string representation.
  3126  //
  3127  // API parameter values that are decorated as "sensitive" in the API will not
  3128  // be included in the string output. The member name will be present, but the
  3129  // value will be replaced with "sensitive".
  3130  func (s AttachLoadBalancerToSubnetsInput) String() string {
  3131  	return awsutil.Prettify(s)
  3132  }
  3133  
  3134  // GoString returns the string representation.
  3135  //
  3136  // API parameter values that are decorated as "sensitive" in the API will not
  3137  // be included in the string output. The member name will be present, but the
  3138  // value will be replaced with "sensitive".
  3139  func (s AttachLoadBalancerToSubnetsInput) GoString() string {
  3140  	return s.String()
  3141  }
  3142  
  3143  // Validate inspects the fields of the type to determine if they are valid.
  3144  func (s *AttachLoadBalancerToSubnetsInput) Validate() error {
  3145  	invalidParams := request.ErrInvalidParams{Context: "AttachLoadBalancerToSubnetsInput"}
  3146  	if s.LoadBalancerName == nil {
  3147  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  3148  	}
  3149  	if s.Subnets == nil {
  3150  		invalidParams.Add(request.NewErrParamRequired("Subnets"))
  3151  	}
  3152  
  3153  	if invalidParams.Len() > 0 {
  3154  		return invalidParams
  3155  	}
  3156  	return nil
  3157  }
  3158  
  3159  // SetLoadBalancerName sets the LoadBalancerName field's value.
  3160  func (s *AttachLoadBalancerToSubnetsInput) SetLoadBalancerName(v string) *AttachLoadBalancerToSubnetsInput {
  3161  	s.LoadBalancerName = &v
  3162  	return s
  3163  }
  3164  
  3165  // SetSubnets sets the Subnets field's value.
  3166  func (s *AttachLoadBalancerToSubnetsInput) SetSubnets(v []*string) *AttachLoadBalancerToSubnetsInput {
  3167  	s.Subnets = v
  3168  	return s
  3169  }
  3170  
  3171  // Contains the output of AttachLoadBalancerToSubnets.
  3172  type AttachLoadBalancerToSubnetsOutput struct {
  3173  	_ struct{} `type:"structure"`
  3174  
  3175  	// The IDs of the subnets attached to the load balancer.
  3176  	Subnets []*string `type:"list"`
  3177  }
  3178  
  3179  // String returns the string representation.
  3180  //
  3181  // API parameter values that are decorated as "sensitive" in the API will not
  3182  // be included in the string output. The member name will be present, but the
  3183  // value will be replaced with "sensitive".
  3184  func (s AttachLoadBalancerToSubnetsOutput) String() string {
  3185  	return awsutil.Prettify(s)
  3186  }
  3187  
  3188  // GoString returns the string representation.
  3189  //
  3190  // API parameter values that are decorated as "sensitive" in the API will not
  3191  // be included in the string output. The member name will be present, but the
  3192  // value will be replaced with "sensitive".
  3193  func (s AttachLoadBalancerToSubnetsOutput) GoString() string {
  3194  	return s.String()
  3195  }
  3196  
  3197  // SetSubnets sets the Subnets field's value.
  3198  func (s *AttachLoadBalancerToSubnetsOutput) SetSubnets(v []*string) *AttachLoadBalancerToSubnetsOutput {
  3199  	s.Subnets = v
  3200  	return s
  3201  }
  3202  
  3203  // Information about the configuration of an EC2 instance.
  3204  type BackendServerDescription struct {
  3205  	_ struct{} `type:"structure"`
  3206  
  3207  	// The port on which the EC2 instance is listening.
  3208  	InstancePort *int64 `min:"1" type:"integer"`
  3209  
  3210  	// The names of the policies enabled for the EC2 instance.
  3211  	PolicyNames []*string `type:"list"`
  3212  }
  3213  
  3214  // String returns the string representation.
  3215  //
  3216  // API parameter values that are decorated as "sensitive" in the API will not
  3217  // be included in the string output. The member name will be present, but the
  3218  // value will be replaced with "sensitive".
  3219  func (s BackendServerDescription) String() string {
  3220  	return awsutil.Prettify(s)
  3221  }
  3222  
  3223  // GoString returns the string representation.
  3224  //
  3225  // API parameter values that are decorated as "sensitive" in the API will not
  3226  // be included in the string output. The member name will be present, but the
  3227  // value will be replaced with "sensitive".
  3228  func (s BackendServerDescription) GoString() string {
  3229  	return s.String()
  3230  }
  3231  
  3232  // SetInstancePort sets the InstancePort field's value.
  3233  func (s *BackendServerDescription) SetInstancePort(v int64) *BackendServerDescription {
  3234  	s.InstancePort = &v
  3235  	return s
  3236  }
  3237  
  3238  // SetPolicyNames sets the PolicyNames field's value.
  3239  func (s *BackendServerDescription) SetPolicyNames(v []*string) *BackendServerDescription {
  3240  	s.PolicyNames = v
  3241  	return s
  3242  }
  3243  
  3244  // Contains the parameters for ConfigureHealthCheck.
  3245  type ConfigureHealthCheckInput struct {
  3246  	_ struct{} `type:"structure"`
  3247  
  3248  	// The configuration information.
  3249  	//
  3250  	// HealthCheck is a required field
  3251  	HealthCheck *HealthCheck `type:"structure" required:"true"`
  3252  
  3253  	// The name of the load balancer.
  3254  	//
  3255  	// LoadBalancerName is a required field
  3256  	LoadBalancerName *string `type:"string" required:"true"`
  3257  }
  3258  
  3259  // String returns the string representation.
  3260  //
  3261  // API parameter values that are decorated as "sensitive" in the API will not
  3262  // be included in the string output. The member name will be present, but the
  3263  // value will be replaced with "sensitive".
  3264  func (s ConfigureHealthCheckInput) String() string {
  3265  	return awsutil.Prettify(s)
  3266  }
  3267  
  3268  // GoString returns the string representation.
  3269  //
  3270  // API parameter values that are decorated as "sensitive" in the API will not
  3271  // be included in the string output. The member name will be present, but the
  3272  // value will be replaced with "sensitive".
  3273  func (s ConfigureHealthCheckInput) GoString() string {
  3274  	return s.String()
  3275  }
  3276  
  3277  // Validate inspects the fields of the type to determine if they are valid.
  3278  func (s *ConfigureHealthCheckInput) Validate() error {
  3279  	invalidParams := request.ErrInvalidParams{Context: "ConfigureHealthCheckInput"}
  3280  	if s.HealthCheck == nil {
  3281  		invalidParams.Add(request.NewErrParamRequired("HealthCheck"))
  3282  	}
  3283  	if s.LoadBalancerName == nil {
  3284  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  3285  	}
  3286  	if s.HealthCheck != nil {
  3287  		if err := s.HealthCheck.Validate(); err != nil {
  3288  			invalidParams.AddNested("HealthCheck", err.(request.ErrInvalidParams))
  3289  		}
  3290  	}
  3291  
  3292  	if invalidParams.Len() > 0 {
  3293  		return invalidParams
  3294  	}
  3295  	return nil
  3296  }
  3297  
  3298  // SetHealthCheck sets the HealthCheck field's value.
  3299  func (s *ConfigureHealthCheckInput) SetHealthCheck(v *HealthCheck) *ConfigureHealthCheckInput {
  3300  	s.HealthCheck = v
  3301  	return s
  3302  }
  3303  
  3304  // SetLoadBalancerName sets the LoadBalancerName field's value.
  3305  func (s *ConfigureHealthCheckInput) SetLoadBalancerName(v string) *ConfigureHealthCheckInput {
  3306  	s.LoadBalancerName = &v
  3307  	return s
  3308  }
  3309  
  3310  // Contains the output of ConfigureHealthCheck.
  3311  type ConfigureHealthCheckOutput struct {
  3312  	_ struct{} `type:"structure"`
  3313  
  3314  	// The updated health check.
  3315  	HealthCheck *HealthCheck `type:"structure"`
  3316  }
  3317  
  3318  // String returns the string representation.
  3319  //
  3320  // API parameter values that are decorated as "sensitive" in the API will not
  3321  // be included in the string output. The member name will be present, but the
  3322  // value will be replaced with "sensitive".
  3323  func (s ConfigureHealthCheckOutput) String() string {
  3324  	return awsutil.Prettify(s)
  3325  }
  3326  
  3327  // GoString returns the string representation.
  3328  //
  3329  // API parameter values that are decorated as "sensitive" in the API will not
  3330  // be included in the string output. The member name will be present, but the
  3331  // value will be replaced with "sensitive".
  3332  func (s ConfigureHealthCheckOutput) GoString() string {
  3333  	return s.String()
  3334  }
  3335  
  3336  // SetHealthCheck sets the HealthCheck field's value.
  3337  func (s *ConfigureHealthCheckOutput) SetHealthCheck(v *HealthCheck) *ConfigureHealthCheckOutput {
  3338  	s.HealthCheck = v
  3339  	return s
  3340  }
  3341  
  3342  // Information about the ConnectionDraining attribute.
  3343  type ConnectionDraining struct {
  3344  	_ struct{} `type:"structure"`
  3345  
  3346  	// Specifies whether connection draining is enabled for the load balancer.
  3347  	//
  3348  	// Enabled is a required field
  3349  	Enabled *bool `type:"boolean" required:"true"`
  3350  
  3351  	// The maximum time, in seconds, to keep the existing connections open before
  3352  	// deregistering the instances.
  3353  	Timeout *int64 `type:"integer"`
  3354  }
  3355  
  3356  // String returns the string representation.
  3357  //
  3358  // API parameter values that are decorated as "sensitive" in the API will not
  3359  // be included in the string output. The member name will be present, but the
  3360  // value will be replaced with "sensitive".
  3361  func (s ConnectionDraining) String() string {
  3362  	return awsutil.Prettify(s)
  3363  }
  3364  
  3365  // GoString returns the string representation.
  3366  //
  3367  // API parameter values that are decorated as "sensitive" in the API will not
  3368  // be included in the string output. The member name will be present, but the
  3369  // value will be replaced with "sensitive".
  3370  func (s ConnectionDraining) GoString() string {
  3371  	return s.String()
  3372  }
  3373  
  3374  // Validate inspects the fields of the type to determine if they are valid.
  3375  func (s *ConnectionDraining) Validate() error {
  3376  	invalidParams := request.ErrInvalidParams{Context: "ConnectionDraining"}
  3377  	if s.Enabled == nil {
  3378  		invalidParams.Add(request.NewErrParamRequired("Enabled"))
  3379  	}
  3380  
  3381  	if invalidParams.Len() > 0 {
  3382  		return invalidParams
  3383  	}
  3384  	return nil
  3385  }
  3386  
  3387  // SetEnabled sets the Enabled field's value.
  3388  func (s *ConnectionDraining) SetEnabled(v bool) *ConnectionDraining {
  3389  	s.Enabled = &v
  3390  	return s
  3391  }
  3392  
  3393  // SetTimeout sets the Timeout field's value.
  3394  func (s *ConnectionDraining) SetTimeout(v int64) *ConnectionDraining {
  3395  	s.Timeout = &v
  3396  	return s
  3397  }
  3398  
  3399  // Information about the ConnectionSettings attribute.
  3400  type ConnectionSettings struct {
  3401  	_ struct{} `type:"structure"`
  3402  
  3403  	// The time, in seconds, that the connection is allowed to be idle (no data
  3404  	// has been sent over the connection) before it is closed by the load balancer.
  3405  	//
  3406  	// IdleTimeout is a required field
  3407  	IdleTimeout *int64 `min:"1" type:"integer" required:"true"`
  3408  }
  3409  
  3410  // String returns the string representation.
  3411  //
  3412  // API parameter values that are decorated as "sensitive" in the API will not
  3413  // be included in the string output. The member name will be present, but the
  3414  // value will be replaced with "sensitive".
  3415  func (s ConnectionSettings) String() string {
  3416  	return awsutil.Prettify(s)
  3417  }
  3418  
  3419  // GoString returns the string representation.
  3420  //
  3421  // API parameter values that are decorated as "sensitive" in the API will not
  3422  // be included in the string output. The member name will be present, but the
  3423  // value will be replaced with "sensitive".
  3424  func (s ConnectionSettings) GoString() string {
  3425  	return s.String()
  3426  }
  3427  
  3428  // Validate inspects the fields of the type to determine if they are valid.
  3429  func (s *ConnectionSettings) Validate() error {
  3430  	invalidParams := request.ErrInvalidParams{Context: "ConnectionSettings"}
  3431  	if s.IdleTimeout == nil {
  3432  		invalidParams.Add(request.NewErrParamRequired("IdleTimeout"))
  3433  	}
  3434  	if s.IdleTimeout != nil && *s.IdleTimeout < 1 {
  3435  		invalidParams.Add(request.NewErrParamMinValue("IdleTimeout", 1))
  3436  	}
  3437  
  3438  	if invalidParams.Len() > 0 {
  3439  		return invalidParams
  3440  	}
  3441  	return nil
  3442  }
  3443  
  3444  // SetIdleTimeout sets the IdleTimeout field's value.
  3445  func (s *ConnectionSettings) SetIdleTimeout(v int64) *ConnectionSettings {
  3446  	s.IdleTimeout = &v
  3447  	return s
  3448  }
  3449  
  3450  // Contains the parameters for CreateAppCookieStickinessPolicy.
  3451  type CreateAppCookieStickinessPolicyInput struct {
  3452  	_ struct{} `type:"structure"`
  3453  
  3454  	// The name of the application cookie used for stickiness.
  3455  	//
  3456  	// CookieName is a required field
  3457  	CookieName *string `type:"string" required:"true"`
  3458  
  3459  	// The name of the load balancer.
  3460  	//
  3461  	// LoadBalancerName is a required field
  3462  	LoadBalancerName *string `type:"string" required:"true"`
  3463  
  3464  	// The name of the policy being created. Policy names must consist of alphanumeric
  3465  	// characters and dashes (-). This name must be unique within the set of policies
  3466  	// for this load balancer.
  3467  	//
  3468  	// PolicyName is a required field
  3469  	PolicyName *string `type:"string" required:"true"`
  3470  }
  3471  
  3472  // String returns the string representation.
  3473  //
  3474  // API parameter values that are decorated as "sensitive" in the API will not
  3475  // be included in the string output. The member name will be present, but the
  3476  // value will be replaced with "sensitive".
  3477  func (s CreateAppCookieStickinessPolicyInput) String() string {
  3478  	return awsutil.Prettify(s)
  3479  }
  3480  
  3481  // GoString returns the string representation.
  3482  //
  3483  // API parameter values that are decorated as "sensitive" in the API will not
  3484  // be included in the string output. The member name will be present, but the
  3485  // value will be replaced with "sensitive".
  3486  func (s CreateAppCookieStickinessPolicyInput) GoString() string {
  3487  	return s.String()
  3488  }
  3489  
  3490  // Validate inspects the fields of the type to determine if they are valid.
  3491  func (s *CreateAppCookieStickinessPolicyInput) Validate() error {
  3492  	invalidParams := request.ErrInvalidParams{Context: "CreateAppCookieStickinessPolicyInput"}
  3493  	if s.CookieName == nil {
  3494  		invalidParams.Add(request.NewErrParamRequired("CookieName"))
  3495  	}
  3496  	if s.LoadBalancerName == nil {
  3497  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  3498  	}
  3499  	if s.PolicyName == nil {
  3500  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  3501  	}
  3502  
  3503  	if invalidParams.Len() > 0 {
  3504  		return invalidParams
  3505  	}
  3506  	return nil
  3507  }
  3508  
  3509  // SetCookieName sets the CookieName field's value.
  3510  func (s *CreateAppCookieStickinessPolicyInput) SetCookieName(v string) *CreateAppCookieStickinessPolicyInput {
  3511  	s.CookieName = &v
  3512  	return s
  3513  }
  3514  
  3515  // SetLoadBalancerName sets the LoadBalancerName field's value.
  3516  func (s *CreateAppCookieStickinessPolicyInput) SetLoadBalancerName(v string) *CreateAppCookieStickinessPolicyInput {
  3517  	s.LoadBalancerName = &v
  3518  	return s
  3519  }
  3520  
  3521  // SetPolicyName sets the PolicyName field's value.
  3522  func (s *CreateAppCookieStickinessPolicyInput) SetPolicyName(v string) *CreateAppCookieStickinessPolicyInput {
  3523  	s.PolicyName = &v
  3524  	return s
  3525  }
  3526  
  3527  // Contains the output for CreateAppCookieStickinessPolicy.
  3528  type CreateAppCookieStickinessPolicyOutput struct {
  3529  	_ struct{} `type:"structure"`
  3530  }
  3531  
  3532  // String returns the string representation.
  3533  //
  3534  // API parameter values that are decorated as "sensitive" in the API will not
  3535  // be included in the string output. The member name will be present, but the
  3536  // value will be replaced with "sensitive".
  3537  func (s CreateAppCookieStickinessPolicyOutput) String() string {
  3538  	return awsutil.Prettify(s)
  3539  }
  3540  
  3541  // GoString returns the string representation.
  3542  //
  3543  // API parameter values that are decorated as "sensitive" in the API will not
  3544  // be included in the string output. The member name will be present, but the
  3545  // value will be replaced with "sensitive".
  3546  func (s CreateAppCookieStickinessPolicyOutput) GoString() string {
  3547  	return s.String()
  3548  }
  3549  
  3550  // Contains the parameters for CreateLBCookieStickinessPolicy.
  3551  type CreateLBCookieStickinessPolicyInput struct {
  3552  	_ struct{} `type:"structure"`
  3553  
  3554  	// The time period, in seconds, after which the cookie should be considered
  3555  	// stale. If you do not specify this parameter, the default value is 0, which
  3556  	// indicates that the sticky session should last for the duration of the browser
  3557  	// session.
  3558  	CookieExpirationPeriod *int64 `type:"long"`
  3559  
  3560  	// The name of the load balancer.
  3561  	//
  3562  	// LoadBalancerName is a required field
  3563  	LoadBalancerName *string `type:"string" required:"true"`
  3564  
  3565  	// The name of the policy being created. Policy names must consist of alphanumeric
  3566  	// characters and dashes (-). This name must be unique within the set of policies
  3567  	// for this load balancer.
  3568  	//
  3569  	// PolicyName is a required field
  3570  	PolicyName *string `type:"string" required:"true"`
  3571  }
  3572  
  3573  // String returns the string representation.
  3574  //
  3575  // API parameter values that are decorated as "sensitive" in the API will not
  3576  // be included in the string output. The member name will be present, but the
  3577  // value will be replaced with "sensitive".
  3578  func (s CreateLBCookieStickinessPolicyInput) String() string {
  3579  	return awsutil.Prettify(s)
  3580  }
  3581  
  3582  // GoString returns the string representation.
  3583  //
  3584  // API parameter values that are decorated as "sensitive" in the API will not
  3585  // be included in the string output. The member name will be present, but the
  3586  // value will be replaced with "sensitive".
  3587  func (s CreateLBCookieStickinessPolicyInput) GoString() string {
  3588  	return s.String()
  3589  }
  3590  
  3591  // Validate inspects the fields of the type to determine if they are valid.
  3592  func (s *CreateLBCookieStickinessPolicyInput) Validate() error {
  3593  	invalidParams := request.ErrInvalidParams{Context: "CreateLBCookieStickinessPolicyInput"}
  3594  	if s.LoadBalancerName == nil {
  3595  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  3596  	}
  3597  	if s.PolicyName == nil {
  3598  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  3599  	}
  3600  
  3601  	if invalidParams.Len() > 0 {
  3602  		return invalidParams
  3603  	}
  3604  	return nil
  3605  }
  3606  
  3607  // SetCookieExpirationPeriod sets the CookieExpirationPeriod field's value.
  3608  func (s *CreateLBCookieStickinessPolicyInput) SetCookieExpirationPeriod(v int64) *CreateLBCookieStickinessPolicyInput {
  3609  	s.CookieExpirationPeriod = &v
  3610  	return s
  3611  }
  3612  
  3613  // SetLoadBalancerName sets the LoadBalancerName field's value.
  3614  func (s *CreateLBCookieStickinessPolicyInput) SetLoadBalancerName(v string) *CreateLBCookieStickinessPolicyInput {
  3615  	s.LoadBalancerName = &v
  3616  	return s
  3617  }
  3618  
  3619  // SetPolicyName sets the PolicyName field's value.
  3620  func (s *CreateLBCookieStickinessPolicyInput) SetPolicyName(v string) *CreateLBCookieStickinessPolicyInput {
  3621  	s.PolicyName = &v
  3622  	return s
  3623  }
  3624  
  3625  // Contains the output for CreateLBCookieStickinessPolicy.
  3626  type CreateLBCookieStickinessPolicyOutput struct {
  3627  	_ struct{} `type:"structure"`
  3628  }
  3629  
  3630  // String returns the string representation.
  3631  //
  3632  // API parameter values that are decorated as "sensitive" in the API will not
  3633  // be included in the string output. The member name will be present, but the
  3634  // value will be replaced with "sensitive".
  3635  func (s CreateLBCookieStickinessPolicyOutput) String() string {
  3636  	return awsutil.Prettify(s)
  3637  }
  3638  
  3639  // GoString returns the string representation.
  3640  //
  3641  // API parameter values that are decorated as "sensitive" in the API will not
  3642  // be included in the string output. The member name will be present, but the
  3643  // value will be replaced with "sensitive".
  3644  func (s CreateLBCookieStickinessPolicyOutput) GoString() string {
  3645  	return s.String()
  3646  }
  3647  
  3648  // Contains the parameters for CreateLoadBalancer.
  3649  type CreateLoadBalancerInput struct {
  3650  	_ struct{} `type:"structure"`
  3651  
  3652  	// One or more Availability Zones from the same region as the load balancer.
  3653  	//
  3654  	// You must specify at least one Availability Zone.
  3655  	//
  3656  	// You can add more Availability Zones after you create the load balancer using
  3657  	// EnableAvailabilityZonesForLoadBalancer.
  3658  	AvailabilityZones []*string `type:"list"`
  3659  
  3660  	// The listeners.
  3661  	//
  3662  	// For more information, see Listeners for Your Classic Load Balancer (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-listener-config.html)
  3663  	// in the Classic Load Balancers Guide.
  3664  	//
  3665  	// Listeners is a required field
  3666  	Listeners []*Listener `type:"list" required:"true"`
  3667  
  3668  	// The name of the load balancer.
  3669  	//
  3670  	// This name must be unique within your set of load balancers for the region,
  3671  	// must have a maximum of 32 characters, must contain only alphanumeric characters
  3672  	// or hyphens, and cannot begin or end with a hyphen.
  3673  	//
  3674  	// LoadBalancerName is a required field
  3675  	LoadBalancerName *string `type:"string" required:"true"`
  3676  
  3677  	// The type of a load balancer. Valid only for load balancers in a VPC.
  3678  	//
  3679  	// By default, Elastic Load Balancing creates an Internet-facing load balancer
  3680  	// with a DNS name that resolves to public IP addresses. For more information
  3681  	// about Internet-facing and Internal load balancers, see Load Balancer Scheme
  3682  	// (https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#load-balancer-scheme)
  3683  	// in the Elastic Load Balancing User Guide.
  3684  	//
  3685  	// Specify internal to create a load balancer with a DNS name that resolves
  3686  	// to private IP addresses.
  3687  	Scheme *string `type:"string"`
  3688  
  3689  	// The IDs of the security groups to assign to the load balancer.
  3690  	SecurityGroups []*string `type:"list"`
  3691  
  3692  	// The IDs of the subnets in your VPC to attach to the load balancer. Specify
  3693  	// one subnet per Availability Zone specified in AvailabilityZones.
  3694  	Subnets []*string `type:"list"`
  3695  
  3696  	// A list of tags to assign to the load balancer.
  3697  	//
  3698  	// For more information about tagging your load balancer, see Tag Your Classic
  3699  	// Load Balancer (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/add-remove-tags.html)
  3700  	// in the Classic Load Balancers Guide.
  3701  	Tags []*Tag `min:"1" type:"list"`
  3702  }
  3703  
  3704  // String returns the string representation.
  3705  //
  3706  // API parameter values that are decorated as "sensitive" in the API will not
  3707  // be included in the string output. The member name will be present, but the
  3708  // value will be replaced with "sensitive".
  3709  func (s CreateLoadBalancerInput) String() string {
  3710  	return awsutil.Prettify(s)
  3711  }
  3712  
  3713  // GoString returns the string representation.
  3714  //
  3715  // API parameter values that are decorated as "sensitive" in the API will not
  3716  // be included in the string output. The member name will be present, but the
  3717  // value will be replaced with "sensitive".
  3718  func (s CreateLoadBalancerInput) GoString() string {
  3719  	return s.String()
  3720  }
  3721  
  3722  // Validate inspects the fields of the type to determine if they are valid.
  3723  func (s *CreateLoadBalancerInput) Validate() error {
  3724  	invalidParams := request.ErrInvalidParams{Context: "CreateLoadBalancerInput"}
  3725  	if s.Listeners == nil {
  3726  		invalidParams.Add(request.NewErrParamRequired("Listeners"))
  3727  	}
  3728  	if s.LoadBalancerName == nil {
  3729  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  3730  	}
  3731  	if s.Tags != nil && len(s.Tags) < 1 {
  3732  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  3733  	}
  3734  	if s.Listeners != nil {
  3735  		for i, v := range s.Listeners {
  3736  			if v == nil {
  3737  				continue
  3738  			}
  3739  			if err := v.Validate(); err != nil {
  3740  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Listeners", i), err.(request.ErrInvalidParams))
  3741  			}
  3742  		}
  3743  	}
  3744  	if s.Tags != nil {
  3745  		for i, v := range s.Tags {
  3746  			if v == nil {
  3747  				continue
  3748  			}
  3749  			if err := v.Validate(); err != nil {
  3750  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  3751  			}
  3752  		}
  3753  	}
  3754  
  3755  	if invalidParams.Len() > 0 {
  3756  		return invalidParams
  3757  	}
  3758  	return nil
  3759  }
  3760  
  3761  // SetAvailabilityZones sets the AvailabilityZones field's value.
  3762  func (s *CreateLoadBalancerInput) SetAvailabilityZones(v []*string) *CreateLoadBalancerInput {
  3763  	s.AvailabilityZones = v
  3764  	return s
  3765  }
  3766  
  3767  // SetListeners sets the Listeners field's value.
  3768  func (s *CreateLoadBalancerInput) SetListeners(v []*Listener) *CreateLoadBalancerInput {
  3769  	s.Listeners = v
  3770  	return s
  3771  }
  3772  
  3773  // SetLoadBalancerName sets the LoadBalancerName field's value.
  3774  func (s *CreateLoadBalancerInput) SetLoadBalancerName(v string) *CreateLoadBalancerInput {
  3775  	s.LoadBalancerName = &v
  3776  	return s
  3777  }
  3778  
  3779  // SetScheme sets the Scheme field's value.
  3780  func (s *CreateLoadBalancerInput) SetScheme(v string) *CreateLoadBalancerInput {
  3781  	s.Scheme = &v
  3782  	return s
  3783  }
  3784  
  3785  // SetSecurityGroups sets the SecurityGroups field's value.
  3786  func (s *CreateLoadBalancerInput) SetSecurityGroups(v []*string) *CreateLoadBalancerInput {
  3787  	s.SecurityGroups = v
  3788  	return s
  3789  }
  3790  
  3791  // SetSubnets sets the Subnets field's value.
  3792  func (s *CreateLoadBalancerInput) SetSubnets(v []*string) *CreateLoadBalancerInput {
  3793  	s.Subnets = v
  3794  	return s
  3795  }
  3796  
  3797  // SetTags sets the Tags field's value.
  3798  func (s *CreateLoadBalancerInput) SetTags(v []*Tag) *CreateLoadBalancerInput {
  3799  	s.Tags = v
  3800  	return s
  3801  }
  3802  
  3803  // Contains the parameters for CreateLoadBalancerListeners.
  3804  type CreateLoadBalancerListenersInput struct {
  3805  	_ struct{} `type:"structure"`
  3806  
  3807  	// The listeners.
  3808  	//
  3809  	// Listeners is a required field
  3810  	Listeners []*Listener `type:"list" required:"true"`
  3811  
  3812  	// The name of the load balancer.
  3813  	//
  3814  	// LoadBalancerName is a required field
  3815  	LoadBalancerName *string `type:"string" required:"true"`
  3816  }
  3817  
  3818  // String returns the string representation.
  3819  //
  3820  // API parameter values that are decorated as "sensitive" in the API will not
  3821  // be included in the string output. The member name will be present, but the
  3822  // value will be replaced with "sensitive".
  3823  func (s CreateLoadBalancerListenersInput) String() string {
  3824  	return awsutil.Prettify(s)
  3825  }
  3826  
  3827  // GoString returns the string representation.
  3828  //
  3829  // API parameter values that are decorated as "sensitive" in the API will not
  3830  // be included in the string output. The member name will be present, but the
  3831  // value will be replaced with "sensitive".
  3832  func (s CreateLoadBalancerListenersInput) GoString() string {
  3833  	return s.String()
  3834  }
  3835  
  3836  // Validate inspects the fields of the type to determine if they are valid.
  3837  func (s *CreateLoadBalancerListenersInput) Validate() error {
  3838  	invalidParams := request.ErrInvalidParams{Context: "CreateLoadBalancerListenersInput"}
  3839  	if s.Listeners == nil {
  3840  		invalidParams.Add(request.NewErrParamRequired("Listeners"))
  3841  	}
  3842  	if s.LoadBalancerName == nil {
  3843  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  3844  	}
  3845  	if s.Listeners != nil {
  3846  		for i, v := range s.Listeners {
  3847  			if v == nil {
  3848  				continue
  3849  			}
  3850  			if err := v.Validate(); err != nil {
  3851  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Listeners", i), err.(request.ErrInvalidParams))
  3852  			}
  3853  		}
  3854  	}
  3855  
  3856  	if invalidParams.Len() > 0 {
  3857  		return invalidParams
  3858  	}
  3859  	return nil
  3860  }
  3861  
  3862  // SetListeners sets the Listeners field's value.
  3863  func (s *CreateLoadBalancerListenersInput) SetListeners(v []*Listener) *CreateLoadBalancerListenersInput {
  3864  	s.Listeners = v
  3865  	return s
  3866  }
  3867  
  3868  // SetLoadBalancerName sets the LoadBalancerName field's value.
  3869  func (s *CreateLoadBalancerListenersInput) SetLoadBalancerName(v string) *CreateLoadBalancerListenersInput {
  3870  	s.LoadBalancerName = &v
  3871  	return s
  3872  }
  3873  
  3874  // Contains the parameters for CreateLoadBalancerListener.
  3875  type CreateLoadBalancerListenersOutput struct {
  3876  	_ struct{} `type:"structure"`
  3877  }
  3878  
  3879  // String returns the string representation.
  3880  //
  3881  // API parameter values that are decorated as "sensitive" in the API will not
  3882  // be included in the string output. The member name will be present, but the
  3883  // value will be replaced with "sensitive".
  3884  func (s CreateLoadBalancerListenersOutput) String() string {
  3885  	return awsutil.Prettify(s)
  3886  }
  3887  
  3888  // GoString returns the string representation.
  3889  //
  3890  // API parameter values that are decorated as "sensitive" in the API will not
  3891  // be included in the string output. The member name will be present, but the
  3892  // value will be replaced with "sensitive".
  3893  func (s CreateLoadBalancerListenersOutput) GoString() string {
  3894  	return s.String()
  3895  }
  3896  
  3897  // Contains the output for CreateLoadBalancer.
  3898  type CreateLoadBalancerOutput struct {
  3899  	_ struct{} `type:"structure"`
  3900  
  3901  	// The DNS name of the load balancer.
  3902  	DNSName *string `type:"string"`
  3903  }
  3904  
  3905  // String returns the string representation.
  3906  //
  3907  // API parameter values that are decorated as "sensitive" in the API will not
  3908  // be included in the string output. The member name will be present, but the
  3909  // value will be replaced with "sensitive".
  3910  func (s CreateLoadBalancerOutput) String() string {
  3911  	return awsutil.Prettify(s)
  3912  }
  3913  
  3914  // GoString returns the string representation.
  3915  //
  3916  // API parameter values that are decorated as "sensitive" in the API will not
  3917  // be included in the string output. The member name will be present, but the
  3918  // value will be replaced with "sensitive".
  3919  func (s CreateLoadBalancerOutput) GoString() string {
  3920  	return s.String()
  3921  }
  3922  
  3923  // SetDNSName sets the DNSName field's value.
  3924  func (s *CreateLoadBalancerOutput) SetDNSName(v string) *CreateLoadBalancerOutput {
  3925  	s.DNSName = &v
  3926  	return s
  3927  }
  3928  
  3929  // Contains the parameters for CreateLoadBalancerPolicy.
  3930  type CreateLoadBalancerPolicyInput struct {
  3931  	_ struct{} `type:"structure"`
  3932  
  3933  	// The name of the load balancer.
  3934  	//
  3935  	// LoadBalancerName is a required field
  3936  	LoadBalancerName *string `type:"string" required:"true"`
  3937  
  3938  	// The policy attributes.
  3939  	PolicyAttributes []*PolicyAttribute `type:"list"`
  3940  
  3941  	// The name of the load balancer policy to be created. This name must be unique
  3942  	// within the set of policies for this load balancer.
  3943  	//
  3944  	// PolicyName is a required field
  3945  	PolicyName *string `type:"string" required:"true"`
  3946  
  3947  	// The name of the base policy type. To get the list of policy types, use DescribeLoadBalancerPolicyTypes.
  3948  	//
  3949  	// PolicyTypeName is a required field
  3950  	PolicyTypeName *string `type:"string" required:"true"`
  3951  }
  3952  
  3953  // String returns the string representation.
  3954  //
  3955  // API parameter values that are decorated as "sensitive" in the API will not
  3956  // be included in the string output. The member name will be present, but the
  3957  // value will be replaced with "sensitive".
  3958  func (s CreateLoadBalancerPolicyInput) String() string {
  3959  	return awsutil.Prettify(s)
  3960  }
  3961  
  3962  // GoString returns the string representation.
  3963  //
  3964  // API parameter values that are decorated as "sensitive" in the API will not
  3965  // be included in the string output. The member name will be present, but the
  3966  // value will be replaced with "sensitive".
  3967  func (s CreateLoadBalancerPolicyInput) GoString() string {
  3968  	return s.String()
  3969  }
  3970  
  3971  // Validate inspects the fields of the type to determine if they are valid.
  3972  func (s *CreateLoadBalancerPolicyInput) Validate() error {
  3973  	invalidParams := request.ErrInvalidParams{Context: "CreateLoadBalancerPolicyInput"}
  3974  	if s.LoadBalancerName == nil {
  3975  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  3976  	}
  3977  	if s.PolicyName == nil {
  3978  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  3979  	}
  3980  	if s.PolicyTypeName == nil {
  3981  		invalidParams.Add(request.NewErrParamRequired("PolicyTypeName"))
  3982  	}
  3983  
  3984  	if invalidParams.Len() > 0 {
  3985  		return invalidParams
  3986  	}
  3987  	return nil
  3988  }
  3989  
  3990  // SetLoadBalancerName sets the LoadBalancerName field's value.
  3991  func (s *CreateLoadBalancerPolicyInput) SetLoadBalancerName(v string) *CreateLoadBalancerPolicyInput {
  3992  	s.LoadBalancerName = &v
  3993  	return s
  3994  }
  3995  
  3996  // SetPolicyAttributes sets the PolicyAttributes field's value.
  3997  func (s *CreateLoadBalancerPolicyInput) SetPolicyAttributes(v []*PolicyAttribute) *CreateLoadBalancerPolicyInput {
  3998  	s.PolicyAttributes = v
  3999  	return s
  4000  }
  4001  
  4002  // SetPolicyName sets the PolicyName field's value.
  4003  func (s *CreateLoadBalancerPolicyInput) SetPolicyName(v string) *CreateLoadBalancerPolicyInput {
  4004  	s.PolicyName = &v
  4005  	return s
  4006  }
  4007  
  4008  // SetPolicyTypeName sets the PolicyTypeName field's value.
  4009  func (s *CreateLoadBalancerPolicyInput) SetPolicyTypeName(v string) *CreateLoadBalancerPolicyInput {
  4010  	s.PolicyTypeName = &v
  4011  	return s
  4012  }
  4013  
  4014  // Contains the output of CreateLoadBalancerPolicy.
  4015  type CreateLoadBalancerPolicyOutput struct {
  4016  	_ struct{} `type:"structure"`
  4017  }
  4018  
  4019  // String returns the string representation.
  4020  //
  4021  // API parameter values that are decorated as "sensitive" in the API will not
  4022  // be included in the string output. The member name will be present, but the
  4023  // value will be replaced with "sensitive".
  4024  func (s CreateLoadBalancerPolicyOutput) String() string {
  4025  	return awsutil.Prettify(s)
  4026  }
  4027  
  4028  // GoString returns the string representation.
  4029  //
  4030  // API parameter values that are decorated as "sensitive" in the API will not
  4031  // be included in the string output. The member name will be present, but the
  4032  // value will be replaced with "sensitive".
  4033  func (s CreateLoadBalancerPolicyOutput) GoString() string {
  4034  	return s.String()
  4035  }
  4036  
  4037  // Information about the CrossZoneLoadBalancing attribute.
  4038  type CrossZoneLoadBalancing struct {
  4039  	_ struct{} `type:"structure"`
  4040  
  4041  	// Specifies whether cross-zone load balancing is enabled for the load balancer.
  4042  	//
  4043  	// Enabled is a required field
  4044  	Enabled *bool `type:"boolean" required:"true"`
  4045  }
  4046  
  4047  // String returns the string representation.
  4048  //
  4049  // API parameter values that are decorated as "sensitive" in the API will not
  4050  // be included in the string output. The member name will be present, but the
  4051  // value will be replaced with "sensitive".
  4052  func (s CrossZoneLoadBalancing) String() string {
  4053  	return awsutil.Prettify(s)
  4054  }
  4055  
  4056  // GoString returns the string representation.
  4057  //
  4058  // API parameter values that are decorated as "sensitive" in the API will not
  4059  // be included in the string output. The member name will be present, but the
  4060  // value will be replaced with "sensitive".
  4061  func (s CrossZoneLoadBalancing) GoString() string {
  4062  	return s.String()
  4063  }
  4064  
  4065  // Validate inspects the fields of the type to determine if they are valid.
  4066  func (s *CrossZoneLoadBalancing) Validate() error {
  4067  	invalidParams := request.ErrInvalidParams{Context: "CrossZoneLoadBalancing"}
  4068  	if s.Enabled == nil {
  4069  		invalidParams.Add(request.NewErrParamRequired("Enabled"))
  4070  	}
  4071  
  4072  	if invalidParams.Len() > 0 {
  4073  		return invalidParams
  4074  	}
  4075  	return nil
  4076  }
  4077  
  4078  // SetEnabled sets the Enabled field's value.
  4079  func (s *CrossZoneLoadBalancing) SetEnabled(v bool) *CrossZoneLoadBalancing {
  4080  	s.Enabled = &v
  4081  	return s
  4082  }
  4083  
  4084  // Contains the parameters for DeleteLoadBalancer.
  4085  type DeleteLoadBalancerInput struct {
  4086  	_ struct{} `type:"structure"`
  4087  
  4088  	// The name of the load balancer.
  4089  	//
  4090  	// LoadBalancerName is a required field
  4091  	LoadBalancerName *string `type:"string" required:"true"`
  4092  }
  4093  
  4094  // String returns the string representation.
  4095  //
  4096  // API parameter values that are decorated as "sensitive" in the API will not
  4097  // be included in the string output. The member name will be present, but the
  4098  // value will be replaced with "sensitive".
  4099  func (s DeleteLoadBalancerInput) String() string {
  4100  	return awsutil.Prettify(s)
  4101  }
  4102  
  4103  // GoString returns the string representation.
  4104  //
  4105  // API parameter values that are decorated as "sensitive" in the API will not
  4106  // be included in the string output. The member name will be present, but the
  4107  // value will be replaced with "sensitive".
  4108  func (s DeleteLoadBalancerInput) GoString() string {
  4109  	return s.String()
  4110  }
  4111  
  4112  // Validate inspects the fields of the type to determine if they are valid.
  4113  func (s *DeleteLoadBalancerInput) Validate() error {
  4114  	invalidParams := request.ErrInvalidParams{Context: "DeleteLoadBalancerInput"}
  4115  	if s.LoadBalancerName == nil {
  4116  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  4117  	}
  4118  
  4119  	if invalidParams.Len() > 0 {
  4120  		return invalidParams
  4121  	}
  4122  	return nil
  4123  }
  4124  
  4125  // SetLoadBalancerName sets the LoadBalancerName field's value.
  4126  func (s *DeleteLoadBalancerInput) SetLoadBalancerName(v string) *DeleteLoadBalancerInput {
  4127  	s.LoadBalancerName = &v
  4128  	return s
  4129  }
  4130  
  4131  // Contains the parameters for DeleteLoadBalancerListeners.
  4132  type DeleteLoadBalancerListenersInput struct {
  4133  	_ struct{} `type:"structure"`
  4134  
  4135  	// The name of the load balancer.
  4136  	//
  4137  	// LoadBalancerName is a required field
  4138  	LoadBalancerName *string `type:"string" required:"true"`
  4139  
  4140  	// The client port numbers of the listeners.
  4141  	//
  4142  	// LoadBalancerPorts is a required field
  4143  	LoadBalancerPorts []*int64 `type:"list" required:"true"`
  4144  }
  4145  
  4146  // String returns the string representation.
  4147  //
  4148  // API parameter values that are decorated as "sensitive" in the API will not
  4149  // be included in the string output. The member name will be present, but the
  4150  // value will be replaced with "sensitive".
  4151  func (s DeleteLoadBalancerListenersInput) String() string {
  4152  	return awsutil.Prettify(s)
  4153  }
  4154  
  4155  // GoString returns the string representation.
  4156  //
  4157  // API parameter values that are decorated as "sensitive" in the API will not
  4158  // be included in the string output. The member name will be present, but the
  4159  // value will be replaced with "sensitive".
  4160  func (s DeleteLoadBalancerListenersInput) GoString() string {
  4161  	return s.String()
  4162  }
  4163  
  4164  // Validate inspects the fields of the type to determine if they are valid.
  4165  func (s *DeleteLoadBalancerListenersInput) Validate() error {
  4166  	invalidParams := request.ErrInvalidParams{Context: "DeleteLoadBalancerListenersInput"}
  4167  	if s.LoadBalancerName == nil {
  4168  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  4169  	}
  4170  	if s.LoadBalancerPorts == nil {
  4171  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerPorts"))
  4172  	}
  4173  
  4174  	if invalidParams.Len() > 0 {
  4175  		return invalidParams
  4176  	}
  4177  	return nil
  4178  }
  4179  
  4180  // SetLoadBalancerName sets the LoadBalancerName field's value.
  4181  func (s *DeleteLoadBalancerListenersInput) SetLoadBalancerName(v string) *DeleteLoadBalancerListenersInput {
  4182  	s.LoadBalancerName = &v
  4183  	return s
  4184  }
  4185  
  4186  // SetLoadBalancerPorts sets the LoadBalancerPorts field's value.
  4187  func (s *DeleteLoadBalancerListenersInput) SetLoadBalancerPorts(v []*int64) *DeleteLoadBalancerListenersInput {
  4188  	s.LoadBalancerPorts = v
  4189  	return s
  4190  }
  4191  
  4192  // Contains the output of DeleteLoadBalancerListeners.
  4193  type DeleteLoadBalancerListenersOutput struct {
  4194  	_ struct{} `type:"structure"`
  4195  }
  4196  
  4197  // String returns the string representation.
  4198  //
  4199  // API parameter values that are decorated as "sensitive" in the API will not
  4200  // be included in the string output. The member name will be present, but the
  4201  // value will be replaced with "sensitive".
  4202  func (s DeleteLoadBalancerListenersOutput) String() string {
  4203  	return awsutil.Prettify(s)
  4204  }
  4205  
  4206  // GoString returns the string representation.
  4207  //
  4208  // API parameter values that are decorated as "sensitive" in the API will not
  4209  // be included in the string output. The member name will be present, but the
  4210  // value will be replaced with "sensitive".
  4211  func (s DeleteLoadBalancerListenersOutput) GoString() string {
  4212  	return s.String()
  4213  }
  4214  
  4215  // Contains the output of DeleteLoadBalancer.
  4216  type DeleteLoadBalancerOutput struct {
  4217  	_ struct{} `type:"structure"`
  4218  }
  4219  
  4220  // String returns the string representation.
  4221  //
  4222  // API parameter values that are decorated as "sensitive" in the API will not
  4223  // be included in the string output. The member name will be present, but the
  4224  // value will be replaced with "sensitive".
  4225  func (s DeleteLoadBalancerOutput) String() string {
  4226  	return awsutil.Prettify(s)
  4227  }
  4228  
  4229  // GoString returns the string representation.
  4230  //
  4231  // API parameter values that are decorated as "sensitive" in the API will not
  4232  // be included in the string output. The member name will be present, but the
  4233  // value will be replaced with "sensitive".
  4234  func (s DeleteLoadBalancerOutput) GoString() string {
  4235  	return s.String()
  4236  }
  4237  
  4238  // Contains the parameters for DeleteLoadBalancerPolicy.
  4239  type DeleteLoadBalancerPolicyInput struct {
  4240  	_ struct{} `type:"structure"`
  4241  
  4242  	// The name of the load balancer.
  4243  	//
  4244  	// LoadBalancerName is a required field
  4245  	LoadBalancerName *string `type:"string" required:"true"`
  4246  
  4247  	// The name of the policy.
  4248  	//
  4249  	// PolicyName is a required field
  4250  	PolicyName *string `type:"string" required:"true"`
  4251  }
  4252  
  4253  // String returns the string representation.
  4254  //
  4255  // API parameter values that are decorated as "sensitive" in the API will not
  4256  // be included in the string output. The member name will be present, but the
  4257  // value will be replaced with "sensitive".
  4258  func (s DeleteLoadBalancerPolicyInput) String() string {
  4259  	return awsutil.Prettify(s)
  4260  }
  4261  
  4262  // GoString returns the string representation.
  4263  //
  4264  // API parameter values that are decorated as "sensitive" in the API will not
  4265  // be included in the string output. The member name will be present, but the
  4266  // value will be replaced with "sensitive".
  4267  func (s DeleteLoadBalancerPolicyInput) GoString() string {
  4268  	return s.String()
  4269  }
  4270  
  4271  // Validate inspects the fields of the type to determine if they are valid.
  4272  func (s *DeleteLoadBalancerPolicyInput) Validate() error {
  4273  	invalidParams := request.ErrInvalidParams{Context: "DeleteLoadBalancerPolicyInput"}
  4274  	if s.LoadBalancerName == nil {
  4275  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  4276  	}
  4277  	if s.PolicyName == nil {
  4278  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  4279  	}
  4280  
  4281  	if invalidParams.Len() > 0 {
  4282  		return invalidParams
  4283  	}
  4284  	return nil
  4285  }
  4286  
  4287  // SetLoadBalancerName sets the LoadBalancerName field's value.
  4288  func (s *DeleteLoadBalancerPolicyInput) SetLoadBalancerName(v string) *DeleteLoadBalancerPolicyInput {
  4289  	s.LoadBalancerName = &v
  4290  	return s
  4291  }
  4292  
  4293  // SetPolicyName sets the PolicyName field's value.
  4294  func (s *DeleteLoadBalancerPolicyInput) SetPolicyName(v string) *DeleteLoadBalancerPolicyInput {
  4295  	s.PolicyName = &v
  4296  	return s
  4297  }
  4298  
  4299  // Contains the output of DeleteLoadBalancerPolicy.
  4300  type DeleteLoadBalancerPolicyOutput struct {
  4301  	_ struct{} `type:"structure"`
  4302  }
  4303  
  4304  // String returns the string representation.
  4305  //
  4306  // API parameter values that are decorated as "sensitive" in the API will not
  4307  // be included in the string output. The member name will be present, but the
  4308  // value will be replaced with "sensitive".
  4309  func (s DeleteLoadBalancerPolicyOutput) String() string {
  4310  	return awsutil.Prettify(s)
  4311  }
  4312  
  4313  // GoString returns the string representation.
  4314  //
  4315  // API parameter values that are decorated as "sensitive" in the API will not
  4316  // be included in the string output. The member name will be present, but the
  4317  // value will be replaced with "sensitive".
  4318  func (s DeleteLoadBalancerPolicyOutput) GoString() string {
  4319  	return s.String()
  4320  }
  4321  
  4322  // Contains the parameters for DeregisterInstancesFromLoadBalancer.
  4323  type DeregisterInstancesFromLoadBalancerInput struct {
  4324  	_ struct{} `type:"structure"`
  4325  
  4326  	// The IDs of the instances.
  4327  	//
  4328  	// Instances is a required field
  4329  	Instances []*Instance `type:"list" required:"true"`
  4330  
  4331  	// The name of the load balancer.
  4332  	//
  4333  	// LoadBalancerName is a required field
  4334  	LoadBalancerName *string `type:"string" required:"true"`
  4335  }
  4336  
  4337  // String returns the string representation.
  4338  //
  4339  // API parameter values that are decorated as "sensitive" in the API will not
  4340  // be included in the string output. The member name will be present, but the
  4341  // value will be replaced with "sensitive".
  4342  func (s DeregisterInstancesFromLoadBalancerInput) String() string {
  4343  	return awsutil.Prettify(s)
  4344  }
  4345  
  4346  // GoString returns the string representation.
  4347  //
  4348  // API parameter values that are decorated as "sensitive" in the API will not
  4349  // be included in the string output. The member name will be present, but the
  4350  // value will be replaced with "sensitive".
  4351  func (s DeregisterInstancesFromLoadBalancerInput) GoString() string {
  4352  	return s.String()
  4353  }
  4354  
  4355  // Validate inspects the fields of the type to determine if they are valid.
  4356  func (s *DeregisterInstancesFromLoadBalancerInput) Validate() error {
  4357  	invalidParams := request.ErrInvalidParams{Context: "DeregisterInstancesFromLoadBalancerInput"}
  4358  	if s.Instances == nil {
  4359  		invalidParams.Add(request.NewErrParamRequired("Instances"))
  4360  	}
  4361  	if s.LoadBalancerName == nil {
  4362  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  4363  	}
  4364  
  4365  	if invalidParams.Len() > 0 {
  4366  		return invalidParams
  4367  	}
  4368  	return nil
  4369  }
  4370  
  4371  // SetInstances sets the Instances field's value.
  4372  func (s *DeregisterInstancesFromLoadBalancerInput) SetInstances(v []*Instance) *DeregisterInstancesFromLoadBalancerInput {
  4373  	s.Instances = v
  4374  	return s
  4375  }
  4376  
  4377  // SetLoadBalancerName sets the LoadBalancerName field's value.
  4378  func (s *DeregisterInstancesFromLoadBalancerInput) SetLoadBalancerName(v string) *DeregisterInstancesFromLoadBalancerInput {
  4379  	s.LoadBalancerName = &v
  4380  	return s
  4381  }
  4382  
  4383  // Contains the output of DeregisterInstancesFromLoadBalancer.
  4384  type DeregisterInstancesFromLoadBalancerOutput struct {
  4385  	_ struct{} `type:"structure"`
  4386  
  4387  	// The remaining instances registered with the load balancer.
  4388  	Instances []*Instance `type:"list"`
  4389  }
  4390  
  4391  // String returns the string representation.
  4392  //
  4393  // API parameter values that are decorated as "sensitive" in the API will not
  4394  // be included in the string output. The member name will be present, but the
  4395  // value will be replaced with "sensitive".
  4396  func (s DeregisterInstancesFromLoadBalancerOutput) String() string {
  4397  	return awsutil.Prettify(s)
  4398  }
  4399  
  4400  // GoString returns the string representation.
  4401  //
  4402  // API parameter values that are decorated as "sensitive" in the API will not
  4403  // be included in the string output. The member name will be present, but the
  4404  // value will be replaced with "sensitive".
  4405  func (s DeregisterInstancesFromLoadBalancerOutput) GoString() string {
  4406  	return s.String()
  4407  }
  4408  
  4409  // SetInstances sets the Instances field's value.
  4410  func (s *DeregisterInstancesFromLoadBalancerOutput) SetInstances(v []*Instance) *DeregisterInstancesFromLoadBalancerOutput {
  4411  	s.Instances = v
  4412  	return s
  4413  }
  4414  
  4415  type DescribeAccountLimitsInput struct {
  4416  	_ struct{} `type:"structure"`
  4417  
  4418  	// The marker for the next set of results. (You received this marker from a
  4419  	// previous call.)
  4420  	Marker *string `type:"string"`
  4421  
  4422  	// The maximum number of results to return with this call.
  4423  	PageSize *int64 `min:"1" type:"integer"`
  4424  }
  4425  
  4426  // String returns the string representation.
  4427  //
  4428  // API parameter values that are decorated as "sensitive" in the API will not
  4429  // be included in the string output. The member name will be present, but the
  4430  // value will be replaced with "sensitive".
  4431  func (s DescribeAccountLimitsInput) String() string {
  4432  	return awsutil.Prettify(s)
  4433  }
  4434  
  4435  // GoString returns the string representation.
  4436  //
  4437  // API parameter values that are decorated as "sensitive" in the API will not
  4438  // be included in the string output. The member name will be present, but the
  4439  // value will be replaced with "sensitive".
  4440  func (s DescribeAccountLimitsInput) GoString() string {
  4441  	return s.String()
  4442  }
  4443  
  4444  // Validate inspects the fields of the type to determine if they are valid.
  4445  func (s *DescribeAccountLimitsInput) Validate() error {
  4446  	invalidParams := request.ErrInvalidParams{Context: "DescribeAccountLimitsInput"}
  4447  	if s.PageSize != nil && *s.PageSize < 1 {
  4448  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
  4449  	}
  4450  
  4451  	if invalidParams.Len() > 0 {
  4452  		return invalidParams
  4453  	}
  4454  	return nil
  4455  }
  4456  
  4457  // SetMarker sets the Marker field's value.
  4458  func (s *DescribeAccountLimitsInput) SetMarker(v string) *DescribeAccountLimitsInput {
  4459  	s.Marker = &v
  4460  	return s
  4461  }
  4462  
  4463  // SetPageSize sets the PageSize field's value.
  4464  func (s *DescribeAccountLimitsInput) SetPageSize(v int64) *DescribeAccountLimitsInput {
  4465  	s.PageSize = &v
  4466  	return s
  4467  }
  4468  
  4469  type DescribeAccountLimitsOutput struct {
  4470  	_ struct{} `type:"structure"`
  4471  
  4472  	// Information about the limits.
  4473  	Limits []*Limit `type:"list"`
  4474  
  4475  	// The marker to use when requesting the next set of results. If there are no
  4476  	// additional results, the string is empty.
  4477  	NextMarker *string `type:"string"`
  4478  }
  4479  
  4480  // String returns the string representation.
  4481  //
  4482  // API parameter values that are decorated as "sensitive" in the API will not
  4483  // be included in the string output. The member name will be present, but the
  4484  // value will be replaced with "sensitive".
  4485  func (s DescribeAccountLimitsOutput) String() string {
  4486  	return awsutil.Prettify(s)
  4487  }
  4488  
  4489  // GoString returns the string representation.
  4490  //
  4491  // API parameter values that are decorated as "sensitive" in the API will not
  4492  // be included in the string output. The member name will be present, but the
  4493  // value will be replaced with "sensitive".
  4494  func (s DescribeAccountLimitsOutput) GoString() string {
  4495  	return s.String()
  4496  }
  4497  
  4498  // SetLimits sets the Limits field's value.
  4499  func (s *DescribeAccountLimitsOutput) SetLimits(v []*Limit) *DescribeAccountLimitsOutput {
  4500  	s.Limits = v
  4501  	return s
  4502  }
  4503  
  4504  // SetNextMarker sets the NextMarker field's value.
  4505  func (s *DescribeAccountLimitsOutput) SetNextMarker(v string) *DescribeAccountLimitsOutput {
  4506  	s.NextMarker = &v
  4507  	return s
  4508  }
  4509  
  4510  // Contains the parameters for DescribeInstanceHealth.
  4511  type DescribeInstanceHealthInput struct {
  4512  	_ struct{} `type:"structure"`
  4513  
  4514  	// The IDs of the instances.
  4515  	Instances []*Instance `type:"list"`
  4516  
  4517  	// The name of the load balancer.
  4518  	//
  4519  	// LoadBalancerName is a required field
  4520  	LoadBalancerName *string `type:"string" required:"true"`
  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 DescribeInstanceHealthInput) 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 DescribeInstanceHealthInput) 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 *DescribeInstanceHealthInput) Validate() error {
  4543  	invalidParams := request.ErrInvalidParams{Context: "DescribeInstanceHealthInput"}
  4544  	if s.LoadBalancerName == nil {
  4545  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  4546  	}
  4547  
  4548  	if invalidParams.Len() > 0 {
  4549  		return invalidParams
  4550  	}
  4551  	return nil
  4552  }
  4553  
  4554  // SetInstances sets the Instances field's value.
  4555  func (s *DescribeInstanceHealthInput) SetInstances(v []*Instance) *DescribeInstanceHealthInput {
  4556  	s.Instances = v
  4557  	return s
  4558  }
  4559  
  4560  // SetLoadBalancerName sets the LoadBalancerName field's value.
  4561  func (s *DescribeInstanceHealthInput) SetLoadBalancerName(v string) *DescribeInstanceHealthInput {
  4562  	s.LoadBalancerName = &v
  4563  	return s
  4564  }
  4565  
  4566  // Contains the output for DescribeInstanceHealth.
  4567  type DescribeInstanceHealthOutput struct {
  4568  	_ struct{} `type:"structure"`
  4569  
  4570  	// Information about the health of the instances.
  4571  	InstanceStates []*InstanceState `type:"list"`
  4572  }
  4573  
  4574  // String returns the string representation.
  4575  //
  4576  // API parameter values that are decorated as "sensitive" in the API will not
  4577  // be included in the string output. The member name will be present, but the
  4578  // value will be replaced with "sensitive".
  4579  func (s DescribeInstanceHealthOutput) String() string {
  4580  	return awsutil.Prettify(s)
  4581  }
  4582  
  4583  // GoString returns the string representation.
  4584  //
  4585  // API parameter values that are decorated as "sensitive" in the API will not
  4586  // be included in the string output. The member name will be present, but the
  4587  // value will be replaced with "sensitive".
  4588  func (s DescribeInstanceHealthOutput) GoString() string {
  4589  	return s.String()
  4590  }
  4591  
  4592  // SetInstanceStates sets the InstanceStates field's value.
  4593  func (s *DescribeInstanceHealthOutput) SetInstanceStates(v []*InstanceState) *DescribeInstanceHealthOutput {
  4594  	s.InstanceStates = v
  4595  	return s
  4596  }
  4597  
  4598  // Contains the parameters for DescribeLoadBalancerAttributes.
  4599  type DescribeLoadBalancerAttributesInput struct {
  4600  	_ struct{} `type:"structure"`
  4601  
  4602  	// The name of the load balancer.
  4603  	//
  4604  	// LoadBalancerName is a required field
  4605  	LoadBalancerName *string `type:"string" required:"true"`
  4606  }
  4607  
  4608  // String returns the string representation.
  4609  //
  4610  // API parameter values that are decorated as "sensitive" in the API will not
  4611  // be included in the string output. The member name will be present, but the
  4612  // value will be replaced with "sensitive".
  4613  func (s DescribeLoadBalancerAttributesInput) String() string {
  4614  	return awsutil.Prettify(s)
  4615  }
  4616  
  4617  // GoString returns the string representation.
  4618  //
  4619  // API parameter values that are decorated as "sensitive" in the API will not
  4620  // be included in the string output. The member name will be present, but the
  4621  // value will be replaced with "sensitive".
  4622  func (s DescribeLoadBalancerAttributesInput) GoString() string {
  4623  	return s.String()
  4624  }
  4625  
  4626  // Validate inspects the fields of the type to determine if they are valid.
  4627  func (s *DescribeLoadBalancerAttributesInput) Validate() error {
  4628  	invalidParams := request.ErrInvalidParams{Context: "DescribeLoadBalancerAttributesInput"}
  4629  	if s.LoadBalancerName == nil {
  4630  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  4631  	}
  4632  
  4633  	if invalidParams.Len() > 0 {
  4634  		return invalidParams
  4635  	}
  4636  	return nil
  4637  }
  4638  
  4639  // SetLoadBalancerName sets the LoadBalancerName field's value.
  4640  func (s *DescribeLoadBalancerAttributesInput) SetLoadBalancerName(v string) *DescribeLoadBalancerAttributesInput {
  4641  	s.LoadBalancerName = &v
  4642  	return s
  4643  }
  4644  
  4645  // Contains the output of DescribeLoadBalancerAttributes.
  4646  type DescribeLoadBalancerAttributesOutput struct {
  4647  	_ struct{} `type:"structure"`
  4648  
  4649  	// Information about the load balancer attributes.
  4650  	LoadBalancerAttributes *LoadBalancerAttributes `type:"structure"`
  4651  }
  4652  
  4653  // String returns the string representation.
  4654  //
  4655  // API parameter values that are decorated as "sensitive" in the API will not
  4656  // be included in the string output. The member name will be present, but the
  4657  // value will be replaced with "sensitive".
  4658  func (s DescribeLoadBalancerAttributesOutput) String() string {
  4659  	return awsutil.Prettify(s)
  4660  }
  4661  
  4662  // GoString returns the string representation.
  4663  //
  4664  // API parameter values that are decorated as "sensitive" in the API will not
  4665  // be included in the string output. The member name will be present, but the
  4666  // value will be replaced with "sensitive".
  4667  func (s DescribeLoadBalancerAttributesOutput) GoString() string {
  4668  	return s.String()
  4669  }
  4670  
  4671  // SetLoadBalancerAttributes sets the LoadBalancerAttributes field's value.
  4672  func (s *DescribeLoadBalancerAttributesOutput) SetLoadBalancerAttributes(v *LoadBalancerAttributes) *DescribeLoadBalancerAttributesOutput {
  4673  	s.LoadBalancerAttributes = v
  4674  	return s
  4675  }
  4676  
  4677  // Contains the parameters for DescribeLoadBalancerPolicies.
  4678  type DescribeLoadBalancerPoliciesInput struct {
  4679  	_ struct{} `type:"structure"`
  4680  
  4681  	// The name of the load balancer.
  4682  	LoadBalancerName *string `type:"string"`
  4683  
  4684  	// The names of the policies.
  4685  	PolicyNames []*string `type:"list"`
  4686  }
  4687  
  4688  // String 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 DescribeLoadBalancerPoliciesInput) String() string {
  4694  	return awsutil.Prettify(s)
  4695  }
  4696  
  4697  // GoString returns the string representation.
  4698  //
  4699  // API parameter values that are decorated as "sensitive" in the API will not
  4700  // be included in the string output. The member name will be present, but the
  4701  // value will be replaced with "sensitive".
  4702  func (s DescribeLoadBalancerPoliciesInput) GoString() string {
  4703  	return s.String()
  4704  }
  4705  
  4706  // SetLoadBalancerName sets the LoadBalancerName field's value.
  4707  func (s *DescribeLoadBalancerPoliciesInput) SetLoadBalancerName(v string) *DescribeLoadBalancerPoliciesInput {
  4708  	s.LoadBalancerName = &v
  4709  	return s
  4710  }
  4711  
  4712  // SetPolicyNames sets the PolicyNames field's value.
  4713  func (s *DescribeLoadBalancerPoliciesInput) SetPolicyNames(v []*string) *DescribeLoadBalancerPoliciesInput {
  4714  	s.PolicyNames = v
  4715  	return s
  4716  }
  4717  
  4718  // Contains the output of DescribeLoadBalancerPolicies.
  4719  type DescribeLoadBalancerPoliciesOutput struct {
  4720  	_ struct{} `type:"structure"`
  4721  
  4722  	// Information about the policies.
  4723  	PolicyDescriptions []*PolicyDescription `type:"list"`
  4724  }
  4725  
  4726  // String returns the string representation.
  4727  //
  4728  // API parameter values that are decorated as "sensitive" in the API will not
  4729  // be included in the string output. The member name will be present, but the
  4730  // value will be replaced with "sensitive".
  4731  func (s DescribeLoadBalancerPoliciesOutput) String() string {
  4732  	return awsutil.Prettify(s)
  4733  }
  4734  
  4735  // GoString returns the string representation.
  4736  //
  4737  // API parameter values that are decorated as "sensitive" in the API will not
  4738  // be included in the string output. The member name will be present, but the
  4739  // value will be replaced with "sensitive".
  4740  func (s DescribeLoadBalancerPoliciesOutput) GoString() string {
  4741  	return s.String()
  4742  }
  4743  
  4744  // SetPolicyDescriptions sets the PolicyDescriptions field's value.
  4745  func (s *DescribeLoadBalancerPoliciesOutput) SetPolicyDescriptions(v []*PolicyDescription) *DescribeLoadBalancerPoliciesOutput {
  4746  	s.PolicyDescriptions = v
  4747  	return s
  4748  }
  4749  
  4750  // Contains the parameters for DescribeLoadBalancerPolicyTypes.
  4751  type DescribeLoadBalancerPolicyTypesInput struct {
  4752  	_ struct{} `type:"structure"`
  4753  
  4754  	// The names of the policy types. If no names are specified, describes all policy
  4755  	// types defined by Elastic Load Balancing.
  4756  	PolicyTypeNames []*string `type:"list"`
  4757  }
  4758  
  4759  // String returns the string representation.
  4760  //
  4761  // API parameter values that are decorated as "sensitive" in the API will not
  4762  // be included in the string output. The member name will be present, but the
  4763  // value will be replaced with "sensitive".
  4764  func (s DescribeLoadBalancerPolicyTypesInput) String() string {
  4765  	return awsutil.Prettify(s)
  4766  }
  4767  
  4768  // GoString returns the string representation.
  4769  //
  4770  // API parameter values that are decorated as "sensitive" in the API will not
  4771  // be included in the string output. The member name will be present, but the
  4772  // value will be replaced with "sensitive".
  4773  func (s DescribeLoadBalancerPolicyTypesInput) GoString() string {
  4774  	return s.String()
  4775  }
  4776  
  4777  // SetPolicyTypeNames sets the PolicyTypeNames field's value.
  4778  func (s *DescribeLoadBalancerPolicyTypesInput) SetPolicyTypeNames(v []*string) *DescribeLoadBalancerPolicyTypesInput {
  4779  	s.PolicyTypeNames = v
  4780  	return s
  4781  }
  4782  
  4783  // Contains the output of DescribeLoadBalancerPolicyTypes.
  4784  type DescribeLoadBalancerPolicyTypesOutput struct {
  4785  	_ struct{} `type:"structure"`
  4786  
  4787  	// Information about the policy types.
  4788  	PolicyTypeDescriptions []*PolicyTypeDescription `type:"list"`
  4789  }
  4790  
  4791  // String 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 DescribeLoadBalancerPolicyTypesOutput) String() string {
  4797  	return awsutil.Prettify(s)
  4798  }
  4799  
  4800  // GoString returns the string representation.
  4801  //
  4802  // API parameter values that are decorated as "sensitive" in the API will not
  4803  // be included in the string output. The member name will be present, but the
  4804  // value will be replaced with "sensitive".
  4805  func (s DescribeLoadBalancerPolicyTypesOutput) GoString() string {
  4806  	return s.String()
  4807  }
  4808  
  4809  // SetPolicyTypeDescriptions sets the PolicyTypeDescriptions field's value.
  4810  func (s *DescribeLoadBalancerPolicyTypesOutput) SetPolicyTypeDescriptions(v []*PolicyTypeDescription) *DescribeLoadBalancerPolicyTypesOutput {
  4811  	s.PolicyTypeDescriptions = v
  4812  	return s
  4813  }
  4814  
  4815  // Contains the parameters for DescribeLoadBalancers.
  4816  type DescribeLoadBalancersInput struct {
  4817  	_ struct{} `type:"structure"`
  4818  
  4819  	// The names of the load balancers.
  4820  	LoadBalancerNames []*string `type:"list"`
  4821  
  4822  	// The marker for the next set of results. (You received this marker from a
  4823  	// previous call.)
  4824  	Marker *string `type:"string"`
  4825  
  4826  	// The maximum number of results to return with this call (a number from 1 to
  4827  	// 400). The default is 400.
  4828  	PageSize *int64 `min:"1" type:"integer"`
  4829  }
  4830  
  4831  // String returns the string representation.
  4832  //
  4833  // API parameter values that are decorated as "sensitive" in the API will not
  4834  // be included in the string output. The member name will be present, but the
  4835  // value will be replaced with "sensitive".
  4836  func (s DescribeLoadBalancersInput) String() string {
  4837  	return awsutil.Prettify(s)
  4838  }
  4839  
  4840  // GoString returns the string representation.
  4841  //
  4842  // API parameter values that are decorated as "sensitive" in the API will not
  4843  // be included in the string output. The member name will be present, but the
  4844  // value will be replaced with "sensitive".
  4845  func (s DescribeLoadBalancersInput) GoString() string {
  4846  	return s.String()
  4847  }
  4848  
  4849  // Validate inspects the fields of the type to determine if they are valid.
  4850  func (s *DescribeLoadBalancersInput) Validate() error {
  4851  	invalidParams := request.ErrInvalidParams{Context: "DescribeLoadBalancersInput"}
  4852  	if s.PageSize != nil && *s.PageSize < 1 {
  4853  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
  4854  	}
  4855  
  4856  	if invalidParams.Len() > 0 {
  4857  		return invalidParams
  4858  	}
  4859  	return nil
  4860  }
  4861  
  4862  // SetLoadBalancerNames sets the LoadBalancerNames field's value.
  4863  func (s *DescribeLoadBalancersInput) SetLoadBalancerNames(v []*string) *DescribeLoadBalancersInput {
  4864  	s.LoadBalancerNames = v
  4865  	return s
  4866  }
  4867  
  4868  // SetMarker sets the Marker field's value.
  4869  func (s *DescribeLoadBalancersInput) SetMarker(v string) *DescribeLoadBalancersInput {
  4870  	s.Marker = &v
  4871  	return s
  4872  }
  4873  
  4874  // SetPageSize sets the PageSize field's value.
  4875  func (s *DescribeLoadBalancersInput) SetPageSize(v int64) *DescribeLoadBalancersInput {
  4876  	s.PageSize = &v
  4877  	return s
  4878  }
  4879  
  4880  // Contains the parameters for DescribeLoadBalancers.
  4881  type DescribeLoadBalancersOutput struct {
  4882  	_ struct{} `type:"structure"`
  4883  
  4884  	// Information about the load balancers.
  4885  	LoadBalancerDescriptions []*LoadBalancerDescription `type:"list"`
  4886  
  4887  	// The marker to use when requesting the next set of results. If there are no
  4888  	// additional results, the string is empty.
  4889  	NextMarker *string `type:"string"`
  4890  }
  4891  
  4892  // String returns the string representation.
  4893  //
  4894  // API parameter values that are decorated as "sensitive" in the API will not
  4895  // be included in the string output. The member name will be present, but the
  4896  // value will be replaced with "sensitive".
  4897  func (s DescribeLoadBalancersOutput) String() string {
  4898  	return awsutil.Prettify(s)
  4899  }
  4900  
  4901  // GoString returns the string representation.
  4902  //
  4903  // API parameter values that are decorated as "sensitive" in the API will not
  4904  // be included in the string output. The member name will be present, but the
  4905  // value will be replaced with "sensitive".
  4906  func (s DescribeLoadBalancersOutput) GoString() string {
  4907  	return s.String()
  4908  }
  4909  
  4910  // SetLoadBalancerDescriptions sets the LoadBalancerDescriptions field's value.
  4911  func (s *DescribeLoadBalancersOutput) SetLoadBalancerDescriptions(v []*LoadBalancerDescription) *DescribeLoadBalancersOutput {
  4912  	s.LoadBalancerDescriptions = v
  4913  	return s
  4914  }
  4915  
  4916  // SetNextMarker sets the NextMarker field's value.
  4917  func (s *DescribeLoadBalancersOutput) SetNextMarker(v string) *DescribeLoadBalancersOutput {
  4918  	s.NextMarker = &v
  4919  	return s
  4920  }
  4921  
  4922  // Contains the parameters for DescribeTags.
  4923  type DescribeTagsInput struct {
  4924  	_ struct{} `type:"structure"`
  4925  
  4926  	// The names of the load balancers.
  4927  	//
  4928  	// LoadBalancerNames is a required field
  4929  	LoadBalancerNames []*string `min:"1" type:"list" required:"true"`
  4930  }
  4931  
  4932  // String returns the string representation.
  4933  //
  4934  // API parameter values that are decorated as "sensitive" in the API will not
  4935  // be included in the string output. The member name will be present, but the
  4936  // value will be replaced with "sensitive".
  4937  func (s DescribeTagsInput) String() string {
  4938  	return awsutil.Prettify(s)
  4939  }
  4940  
  4941  // GoString returns the string representation.
  4942  //
  4943  // API parameter values that are decorated as "sensitive" in the API will not
  4944  // be included in the string output. The member name will be present, but the
  4945  // value will be replaced with "sensitive".
  4946  func (s DescribeTagsInput) GoString() string {
  4947  	return s.String()
  4948  }
  4949  
  4950  // Validate inspects the fields of the type to determine if they are valid.
  4951  func (s *DescribeTagsInput) Validate() error {
  4952  	invalidParams := request.ErrInvalidParams{Context: "DescribeTagsInput"}
  4953  	if s.LoadBalancerNames == nil {
  4954  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerNames"))
  4955  	}
  4956  	if s.LoadBalancerNames != nil && len(s.LoadBalancerNames) < 1 {
  4957  		invalidParams.Add(request.NewErrParamMinLen("LoadBalancerNames", 1))
  4958  	}
  4959  
  4960  	if invalidParams.Len() > 0 {
  4961  		return invalidParams
  4962  	}
  4963  	return nil
  4964  }
  4965  
  4966  // SetLoadBalancerNames sets the LoadBalancerNames field's value.
  4967  func (s *DescribeTagsInput) SetLoadBalancerNames(v []*string) *DescribeTagsInput {
  4968  	s.LoadBalancerNames = v
  4969  	return s
  4970  }
  4971  
  4972  // Contains the output for DescribeTags.
  4973  type DescribeTagsOutput struct {
  4974  	_ struct{} `type:"structure"`
  4975  
  4976  	// Information about the tags.
  4977  	TagDescriptions []*TagDescription `type:"list"`
  4978  }
  4979  
  4980  // String returns the string representation.
  4981  //
  4982  // API parameter values that are decorated as "sensitive" in the API will not
  4983  // be included in the string output. The member name will be present, but the
  4984  // value will be replaced with "sensitive".
  4985  func (s DescribeTagsOutput) String() string {
  4986  	return awsutil.Prettify(s)
  4987  }
  4988  
  4989  // GoString returns the string representation.
  4990  //
  4991  // API parameter values that are decorated as "sensitive" in the API will not
  4992  // be included in the string output. The member name will be present, but the
  4993  // value will be replaced with "sensitive".
  4994  func (s DescribeTagsOutput) GoString() string {
  4995  	return s.String()
  4996  }
  4997  
  4998  // SetTagDescriptions sets the TagDescriptions field's value.
  4999  func (s *DescribeTagsOutput) SetTagDescriptions(v []*TagDescription) *DescribeTagsOutput {
  5000  	s.TagDescriptions = v
  5001  	return s
  5002  }
  5003  
  5004  // Contains the parameters for DetachLoadBalancerFromSubnets.
  5005  type DetachLoadBalancerFromSubnetsInput struct {
  5006  	_ struct{} `type:"structure"`
  5007  
  5008  	// The name of the load balancer.
  5009  	//
  5010  	// LoadBalancerName is a required field
  5011  	LoadBalancerName *string `type:"string" required:"true"`
  5012  
  5013  	// The IDs of the subnets.
  5014  	//
  5015  	// Subnets is a required field
  5016  	Subnets []*string `type:"list" required:"true"`
  5017  }
  5018  
  5019  // String returns the string representation.
  5020  //
  5021  // API parameter values that are decorated as "sensitive" in the API will not
  5022  // be included in the string output. The member name will be present, but the
  5023  // value will be replaced with "sensitive".
  5024  func (s DetachLoadBalancerFromSubnetsInput) String() string {
  5025  	return awsutil.Prettify(s)
  5026  }
  5027  
  5028  // GoString returns the string representation.
  5029  //
  5030  // API parameter values that are decorated as "sensitive" in the API will not
  5031  // be included in the string output. The member name will be present, but the
  5032  // value will be replaced with "sensitive".
  5033  func (s DetachLoadBalancerFromSubnetsInput) GoString() string {
  5034  	return s.String()
  5035  }
  5036  
  5037  // Validate inspects the fields of the type to determine if they are valid.
  5038  func (s *DetachLoadBalancerFromSubnetsInput) Validate() error {
  5039  	invalidParams := request.ErrInvalidParams{Context: "DetachLoadBalancerFromSubnetsInput"}
  5040  	if s.LoadBalancerName == nil {
  5041  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  5042  	}
  5043  	if s.Subnets == nil {
  5044  		invalidParams.Add(request.NewErrParamRequired("Subnets"))
  5045  	}
  5046  
  5047  	if invalidParams.Len() > 0 {
  5048  		return invalidParams
  5049  	}
  5050  	return nil
  5051  }
  5052  
  5053  // SetLoadBalancerName sets the LoadBalancerName field's value.
  5054  func (s *DetachLoadBalancerFromSubnetsInput) SetLoadBalancerName(v string) *DetachLoadBalancerFromSubnetsInput {
  5055  	s.LoadBalancerName = &v
  5056  	return s
  5057  }
  5058  
  5059  // SetSubnets sets the Subnets field's value.
  5060  func (s *DetachLoadBalancerFromSubnetsInput) SetSubnets(v []*string) *DetachLoadBalancerFromSubnetsInput {
  5061  	s.Subnets = v
  5062  	return s
  5063  }
  5064  
  5065  // Contains the output of DetachLoadBalancerFromSubnets.
  5066  type DetachLoadBalancerFromSubnetsOutput struct {
  5067  	_ struct{} `type:"structure"`
  5068  
  5069  	// The IDs of the remaining subnets for the load balancer.
  5070  	Subnets []*string `type:"list"`
  5071  }
  5072  
  5073  // String returns the string representation.
  5074  //
  5075  // API parameter values that are decorated as "sensitive" in the API will not
  5076  // be included in the string output. The member name will be present, but the
  5077  // value will be replaced with "sensitive".
  5078  func (s DetachLoadBalancerFromSubnetsOutput) String() string {
  5079  	return awsutil.Prettify(s)
  5080  }
  5081  
  5082  // GoString returns the string representation.
  5083  //
  5084  // API parameter values that are decorated as "sensitive" in the API will not
  5085  // be included in the string output. The member name will be present, but the
  5086  // value will be replaced with "sensitive".
  5087  func (s DetachLoadBalancerFromSubnetsOutput) GoString() string {
  5088  	return s.String()
  5089  }
  5090  
  5091  // SetSubnets sets the Subnets field's value.
  5092  func (s *DetachLoadBalancerFromSubnetsOutput) SetSubnets(v []*string) *DetachLoadBalancerFromSubnetsOutput {
  5093  	s.Subnets = v
  5094  	return s
  5095  }
  5096  
  5097  // Contains the parameters for DisableAvailabilityZonesForLoadBalancer.
  5098  type DisableAvailabilityZonesForLoadBalancerInput struct {
  5099  	_ struct{} `type:"structure"`
  5100  
  5101  	// The Availability Zones.
  5102  	//
  5103  	// AvailabilityZones is a required field
  5104  	AvailabilityZones []*string `type:"list" required:"true"`
  5105  
  5106  	// The name of the load balancer.
  5107  	//
  5108  	// LoadBalancerName is a required field
  5109  	LoadBalancerName *string `type:"string" required:"true"`
  5110  }
  5111  
  5112  // String returns the string representation.
  5113  //
  5114  // API parameter values that are decorated as "sensitive" in the API will not
  5115  // be included in the string output. The member name will be present, but the
  5116  // value will be replaced with "sensitive".
  5117  func (s DisableAvailabilityZonesForLoadBalancerInput) String() string {
  5118  	return awsutil.Prettify(s)
  5119  }
  5120  
  5121  // GoString returns the string representation.
  5122  //
  5123  // API parameter values that are decorated as "sensitive" in the API will not
  5124  // be included in the string output. The member name will be present, but the
  5125  // value will be replaced with "sensitive".
  5126  func (s DisableAvailabilityZonesForLoadBalancerInput) GoString() string {
  5127  	return s.String()
  5128  }
  5129  
  5130  // Validate inspects the fields of the type to determine if they are valid.
  5131  func (s *DisableAvailabilityZonesForLoadBalancerInput) Validate() error {
  5132  	invalidParams := request.ErrInvalidParams{Context: "DisableAvailabilityZonesForLoadBalancerInput"}
  5133  	if s.AvailabilityZones == nil {
  5134  		invalidParams.Add(request.NewErrParamRequired("AvailabilityZones"))
  5135  	}
  5136  	if s.LoadBalancerName == nil {
  5137  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  5138  	}
  5139  
  5140  	if invalidParams.Len() > 0 {
  5141  		return invalidParams
  5142  	}
  5143  	return nil
  5144  }
  5145  
  5146  // SetAvailabilityZones sets the AvailabilityZones field's value.
  5147  func (s *DisableAvailabilityZonesForLoadBalancerInput) SetAvailabilityZones(v []*string) *DisableAvailabilityZonesForLoadBalancerInput {
  5148  	s.AvailabilityZones = v
  5149  	return s
  5150  }
  5151  
  5152  // SetLoadBalancerName sets the LoadBalancerName field's value.
  5153  func (s *DisableAvailabilityZonesForLoadBalancerInput) SetLoadBalancerName(v string) *DisableAvailabilityZonesForLoadBalancerInput {
  5154  	s.LoadBalancerName = &v
  5155  	return s
  5156  }
  5157  
  5158  // Contains the output for DisableAvailabilityZonesForLoadBalancer.
  5159  type DisableAvailabilityZonesForLoadBalancerOutput struct {
  5160  	_ struct{} `type:"structure"`
  5161  
  5162  	// The remaining Availability Zones for the load balancer.
  5163  	AvailabilityZones []*string `type:"list"`
  5164  }
  5165  
  5166  // String returns the string representation.
  5167  //
  5168  // API parameter values that are decorated as "sensitive" in the API will not
  5169  // be included in the string output. The member name will be present, but the
  5170  // value will be replaced with "sensitive".
  5171  func (s DisableAvailabilityZonesForLoadBalancerOutput) String() string {
  5172  	return awsutil.Prettify(s)
  5173  }
  5174  
  5175  // GoString returns the string representation.
  5176  //
  5177  // API parameter values that are decorated as "sensitive" in the API will not
  5178  // be included in the string output. The member name will be present, but the
  5179  // value will be replaced with "sensitive".
  5180  func (s DisableAvailabilityZonesForLoadBalancerOutput) GoString() string {
  5181  	return s.String()
  5182  }
  5183  
  5184  // SetAvailabilityZones sets the AvailabilityZones field's value.
  5185  func (s *DisableAvailabilityZonesForLoadBalancerOutput) SetAvailabilityZones(v []*string) *DisableAvailabilityZonesForLoadBalancerOutput {
  5186  	s.AvailabilityZones = v
  5187  	return s
  5188  }
  5189  
  5190  // Contains the parameters for EnableAvailabilityZonesForLoadBalancer.
  5191  type EnableAvailabilityZonesForLoadBalancerInput struct {
  5192  	_ struct{} `type:"structure"`
  5193  
  5194  	// The Availability Zones. These must be in the same region as the load balancer.
  5195  	//
  5196  	// AvailabilityZones is a required field
  5197  	AvailabilityZones []*string `type:"list" required:"true"`
  5198  
  5199  	// The name of the load balancer.
  5200  	//
  5201  	// LoadBalancerName is a required field
  5202  	LoadBalancerName *string `type:"string" required:"true"`
  5203  }
  5204  
  5205  // String returns the string representation.
  5206  //
  5207  // API parameter values that are decorated as "sensitive" in the API will not
  5208  // be included in the string output. The member name will be present, but the
  5209  // value will be replaced with "sensitive".
  5210  func (s EnableAvailabilityZonesForLoadBalancerInput) String() string {
  5211  	return awsutil.Prettify(s)
  5212  }
  5213  
  5214  // GoString returns the string representation.
  5215  //
  5216  // API parameter values that are decorated as "sensitive" in the API will not
  5217  // be included in the string output. The member name will be present, but the
  5218  // value will be replaced with "sensitive".
  5219  func (s EnableAvailabilityZonesForLoadBalancerInput) GoString() string {
  5220  	return s.String()
  5221  }
  5222  
  5223  // Validate inspects the fields of the type to determine if they are valid.
  5224  func (s *EnableAvailabilityZonesForLoadBalancerInput) Validate() error {
  5225  	invalidParams := request.ErrInvalidParams{Context: "EnableAvailabilityZonesForLoadBalancerInput"}
  5226  	if s.AvailabilityZones == nil {
  5227  		invalidParams.Add(request.NewErrParamRequired("AvailabilityZones"))
  5228  	}
  5229  	if s.LoadBalancerName == nil {
  5230  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  5231  	}
  5232  
  5233  	if invalidParams.Len() > 0 {
  5234  		return invalidParams
  5235  	}
  5236  	return nil
  5237  }
  5238  
  5239  // SetAvailabilityZones sets the AvailabilityZones field's value.
  5240  func (s *EnableAvailabilityZonesForLoadBalancerInput) SetAvailabilityZones(v []*string) *EnableAvailabilityZonesForLoadBalancerInput {
  5241  	s.AvailabilityZones = v
  5242  	return s
  5243  }
  5244  
  5245  // SetLoadBalancerName sets the LoadBalancerName field's value.
  5246  func (s *EnableAvailabilityZonesForLoadBalancerInput) SetLoadBalancerName(v string) *EnableAvailabilityZonesForLoadBalancerInput {
  5247  	s.LoadBalancerName = &v
  5248  	return s
  5249  }
  5250  
  5251  // Contains the output of EnableAvailabilityZonesForLoadBalancer.
  5252  type EnableAvailabilityZonesForLoadBalancerOutput struct {
  5253  	_ struct{} `type:"structure"`
  5254  
  5255  	// The updated list of Availability Zones for the load balancer.
  5256  	AvailabilityZones []*string `type:"list"`
  5257  }
  5258  
  5259  // String returns the string representation.
  5260  //
  5261  // API parameter values that are decorated as "sensitive" in the API will not
  5262  // be included in the string output. The member name will be present, but the
  5263  // value will be replaced with "sensitive".
  5264  func (s EnableAvailabilityZonesForLoadBalancerOutput) String() string {
  5265  	return awsutil.Prettify(s)
  5266  }
  5267  
  5268  // GoString returns the string representation.
  5269  //
  5270  // API parameter values that are decorated as "sensitive" in the API will not
  5271  // be included in the string output. The member name will be present, but the
  5272  // value will be replaced with "sensitive".
  5273  func (s EnableAvailabilityZonesForLoadBalancerOutput) GoString() string {
  5274  	return s.String()
  5275  }
  5276  
  5277  // SetAvailabilityZones sets the AvailabilityZones field's value.
  5278  func (s *EnableAvailabilityZonesForLoadBalancerOutput) SetAvailabilityZones(v []*string) *EnableAvailabilityZonesForLoadBalancerOutput {
  5279  	s.AvailabilityZones = v
  5280  	return s
  5281  }
  5282  
  5283  // Information about a health check.
  5284  type HealthCheck struct {
  5285  	_ struct{} `type:"structure"`
  5286  
  5287  	// The number of consecutive health checks successes required before moving
  5288  	// the instance to the Healthy state.
  5289  	//
  5290  	// HealthyThreshold is a required field
  5291  	HealthyThreshold *int64 `min:"2" type:"integer" required:"true"`
  5292  
  5293  	// The approximate interval, in seconds, between health checks of an individual
  5294  	// instance.
  5295  	//
  5296  	// Interval is a required field
  5297  	Interval *int64 `min:"5" type:"integer" required:"true"`
  5298  
  5299  	// The instance being checked. The protocol is either TCP, HTTP, HTTPS, or SSL.
  5300  	// The range of valid ports is one (1) through 65535.
  5301  	//
  5302  	// TCP is the default, specified as a TCP: port pair, for example "TCP:5000".
  5303  	// In this case, a health check simply attempts to open a TCP connection to
  5304  	// the instance on the specified port. Failure to connect within the configured
  5305  	// timeout is considered unhealthy.
  5306  	//
  5307  	// SSL is also specified as SSL: port pair, for example, SSL:5000.
  5308  	//
  5309  	// For HTTP/HTTPS, you must include a ping path in the string. HTTP is specified
  5310  	// as a HTTP:port;/;PathToPing; grouping, for example "HTTP:80/weather/us/wa/seattle".
  5311  	// In this case, a HTTP GET request is issued to the instance on the given port
  5312  	// and path. Any answer other than "200 OK" within the timeout period is considered
  5313  	// unhealthy.
  5314  	//
  5315  	// The total length of the HTTP ping target must be 1024 16-bit Unicode characters
  5316  	// or less.
  5317  	//
  5318  	// Target is a required field
  5319  	Target *string `type:"string" required:"true"`
  5320  
  5321  	// The amount of time, in seconds, during which no response means a failed health
  5322  	// check.
  5323  	//
  5324  	// This value must be less than the Interval value.
  5325  	//
  5326  	// Timeout is a required field
  5327  	Timeout *int64 `min:"2" type:"integer" required:"true"`
  5328  
  5329  	// The number of consecutive health check failures required before moving the
  5330  	// instance to the Unhealthy state.
  5331  	//
  5332  	// UnhealthyThreshold is a required field
  5333  	UnhealthyThreshold *int64 `min:"2" type:"integer" required:"true"`
  5334  }
  5335  
  5336  // String returns the string representation.
  5337  //
  5338  // API parameter values that are decorated as "sensitive" in the API will not
  5339  // be included in the string output. The member name will be present, but the
  5340  // value will be replaced with "sensitive".
  5341  func (s HealthCheck) String() string {
  5342  	return awsutil.Prettify(s)
  5343  }
  5344  
  5345  // GoString returns the string representation.
  5346  //
  5347  // API parameter values that are decorated as "sensitive" in the API will not
  5348  // be included in the string output. The member name will be present, but the
  5349  // value will be replaced with "sensitive".
  5350  func (s HealthCheck) GoString() string {
  5351  	return s.String()
  5352  }
  5353  
  5354  // Validate inspects the fields of the type to determine if they are valid.
  5355  func (s *HealthCheck) Validate() error {
  5356  	invalidParams := request.ErrInvalidParams{Context: "HealthCheck"}
  5357  	if s.HealthyThreshold == nil {
  5358  		invalidParams.Add(request.NewErrParamRequired("HealthyThreshold"))
  5359  	}
  5360  	if s.HealthyThreshold != nil && *s.HealthyThreshold < 2 {
  5361  		invalidParams.Add(request.NewErrParamMinValue("HealthyThreshold", 2))
  5362  	}
  5363  	if s.Interval == nil {
  5364  		invalidParams.Add(request.NewErrParamRequired("Interval"))
  5365  	}
  5366  	if s.Interval != nil && *s.Interval < 5 {
  5367  		invalidParams.Add(request.NewErrParamMinValue("Interval", 5))
  5368  	}
  5369  	if s.Target == nil {
  5370  		invalidParams.Add(request.NewErrParamRequired("Target"))
  5371  	}
  5372  	if s.Timeout == nil {
  5373  		invalidParams.Add(request.NewErrParamRequired("Timeout"))
  5374  	}
  5375  	if s.Timeout != nil && *s.Timeout < 2 {
  5376  		invalidParams.Add(request.NewErrParamMinValue("Timeout", 2))
  5377  	}
  5378  	if s.UnhealthyThreshold == nil {
  5379  		invalidParams.Add(request.NewErrParamRequired("UnhealthyThreshold"))
  5380  	}
  5381  	if s.UnhealthyThreshold != nil && *s.UnhealthyThreshold < 2 {
  5382  		invalidParams.Add(request.NewErrParamMinValue("UnhealthyThreshold", 2))
  5383  	}
  5384  
  5385  	if invalidParams.Len() > 0 {
  5386  		return invalidParams
  5387  	}
  5388  	return nil
  5389  }
  5390  
  5391  // SetHealthyThreshold sets the HealthyThreshold field's value.
  5392  func (s *HealthCheck) SetHealthyThreshold(v int64) *HealthCheck {
  5393  	s.HealthyThreshold = &v
  5394  	return s
  5395  }
  5396  
  5397  // SetInterval sets the Interval field's value.
  5398  func (s *HealthCheck) SetInterval(v int64) *HealthCheck {
  5399  	s.Interval = &v
  5400  	return s
  5401  }
  5402  
  5403  // SetTarget sets the Target field's value.
  5404  func (s *HealthCheck) SetTarget(v string) *HealthCheck {
  5405  	s.Target = &v
  5406  	return s
  5407  }
  5408  
  5409  // SetTimeout sets the Timeout field's value.
  5410  func (s *HealthCheck) SetTimeout(v int64) *HealthCheck {
  5411  	s.Timeout = &v
  5412  	return s
  5413  }
  5414  
  5415  // SetUnhealthyThreshold sets the UnhealthyThreshold field's value.
  5416  func (s *HealthCheck) SetUnhealthyThreshold(v int64) *HealthCheck {
  5417  	s.UnhealthyThreshold = &v
  5418  	return s
  5419  }
  5420  
  5421  // The ID of an EC2 instance.
  5422  type Instance struct {
  5423  	_ struct{} `type:"structure"`
  5424  
  5425  	// The instance ID.
  5426  	InstanceId *string `type:"string"`
  5427  }
  5428  
  5429  // String returns the string representation.
  5430  //
  5431  // API parameter values that are decorated as "sensitive" in the API will not
  5432  // be included in the string output. The member name will be present, but the
  5433  // value will be replaced with "sensitive".
  5434  func (s Instance) String() string {
  5435  	return awsutil.Prettify(s)
  5436  }
  5437  
  5438  // GoString returns the string representation.
  5439  //
  5440  // API parameter values that are decorated as "sensitive" in the API will not
  5441  // be included in the string output. The member name will be present, but the
  5442  // value will be replaced with "sensitive".
  5443  func (s Instance) GoString() string {
  5444  	return s.String()
  5445  }
  5446  
  5447  // SetInstanceId sets the InstanceId field's value.
  5448  func (s *Instance) SetInstanceId(v string) *Instance {
  5449  	s.InstanceId = &v
  5450  	return s
  5451  }
  5452  
  5453  // Information about the state of an EC2 instance.
  5454  type InstanceState struct {
  5455  	_ struct{} `type:"structure"`
  5456  
  5457  	// A description of the instance state. This string can contain one or more
  5458  	// of the following messages.
  5459  	//
  5460  	//    * N/A
  5461  	//
  5462  	//    * A transient error occurred. Please try again later.
  5463  	//
  5464  	//    * Instance has failed at least the UnhealthyThreshold number of health
  5465  	//    checks consecutively.
  5466  	//
  5467  	//    * Instance has not passed the configured HealthyThreshold number of health
  5468  	//    checks consecutively.
  5469  	//
  5470  	//    * Instance registration is still in progress.
  5471  	//
  5472  	//    * Instance is in the EC2 Availability Zone for which LoadBalancer is not
  5473  	//    configured to route traffic to.
  5474  	//
  5475  	//    * Instance is not currently registered with the LoadBalancer.
  5476  	//
  5477  	//    * Instance deregistration currently in progress.
  5478  	//
  5479  	//    * Disable Availability Zone is currently in progress.
  5480  	//
  5481  	//    * Instance is in pending state.
  5482  	//
  5483  	//    * Instance is in stopped state.
  5484  	//
  5485  	//    * Instance is in terminated state.
  5486  	Description *string `type:"string"`
  5487  
  5488  	// The ID of the instance.
  5489  	InstanceId *string `type:"string"`
  5490  
  5491  	// Information about the cause of OutOfService instances. Specifically, whether
  5492  	// the cause is Elastic Load Balancing or the instance.
  5493  	//
  5494  	// Valid values: ELB | Instance | N/A
  5495  	ReasonCode *string `type:"string"`
  5496  
  5497  	// The current state of the instance.
  5498  	//
  5499  	// Valid values: InService | OutOfService | Unknown
  5500  	State *string `type:"string"`
  5501  }
  5502  
  5503  // String returns the string representation.
  5504  //
  5505  // API parameter values that are decorated as "sensitive" in the API will not
  5506  // be included in the string output. The member name will be present, but the
  5507  // value will be replaced with "sensitive".
  5508  func (s InstanceState) String() string {
  5509  	return awsutil.Prettify(s)
  5510  }
  5511  
  5512  // GoString returns the string representation.
  5513  //
  5514  // API parameter values that are decorated as "sensitive" in the API will not
  5515  // be included in the string output. The member name will be present, but the
  5516  // value will be replaced with "sensitive".
  5517  func (s InstanceState) GoString() string {
  5518  	return s.String()
  5519  }
  5520  
  5521  // SetDescription sets the Description field's value.
  5522  func (s *InstanceState) SetDescription(v string) *InstanceState {
  5523  	s.Description = &v
  5524  	return s
  5525  }
  5526  
  5527  // SetInstanceId sets the InstanceId field's value.
  5528  func (s *InstanceState) SetInstanceId(v string) *InstanceState {
  5529  	s.InstanceId = &v
  5530  	return s
  5531  }
  5532  
  5533  // SetReasonCode sets the ReasonCode field's value.
  5534  func (s *InstanceState) SetReasonCode(v string) *InstanceState {
  5535  	s.ReasonCode = &v
  5536  	return s
  5537  }
  5538  
  5539  // SetState sets the State field's value.
  5540  func (s *InstanceState) SetState(v string) *InstanceState {
  5541  	s.State = &v
  5542  	return s
  5543  }
  5544  
  5545  // Information about a policy for duration-based session stickiness.
  5546  type LBCookieStickinessPolicy struct {
  5547  	_ struct{} `type:"structure"`
  5548  
  5549  	// The time period, in seconds, after which the cookie should be considered
  5550  	// stale. If this parameter is not specified, the stickiness session lasts for
  5551  	// the duration of the browser session.
  5552  	CookieExpirationPeriod *int64 `type:"long"`
  5553  
  5554  	// The name of the policy. This name must be unique within the set of policies
  5555  	// for this load balancer.
  5556  	PolicyName *string `type:"string"`
  5557  }
  5558  
  5559  // String 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 LBCookieStickinessPolicy) String() string {
  5565  	return awsutil.Prettify(s)
  5566  }
  5567  
  5568  // GoString returns the string representation.
  5569  //
  5570  // API parameter values that are decorated as "sensitive" in the API will not
  5571  // be included in the string output. The member name will be present, but the
  5572  // value will be replaced with "sensitive".
  5573  func (s LBCookieStickinessPolicy) GoString() string {
  5574  	return s.String()
  5575  }
  5576  
  5577  // SetCookieExpirationPeriod sets the CookieExpirationPeriod field's value.
  5578  func (s *LBCookieStickinessPolicy) SetCookieExpirationPeriod(v int64) *LBCookieStickinessPolicy {
  5579  	s.CookieExpirationPeriod = &v
  5580  	return s
  5581  }
  5582  
  5583  // SetPolicyName sets the PolicyName field's value.
  5584  func (s *LBCookieStickinessPolicy) SetPolicyName(v string) *LBCookieStickinessPolicy {
  5585  	s.PolicyName = &v
  5586  	return s
  5587  }
  5588  
  5589  // Information about an Elastic Load Balancing resource limit for your AWS account.
  5590  type Limit struct {
  5591  	_ struct{} `type:"structure"`
  5592  
  5593  	// The maximum value of the limit.
  5594  	Max *string `type:"string"`
  5595  
  5596  	// The name of the limit. The possible values are:
  5597  	//
  5598  	//    * classic-listeners
  5599  	//
  5600  	//    * classic-load-balancers
  5601  	//
  5602  	//    * classic-registered-instances
  5603  	Name *string `type:"string"`
  5604  }
  5605  
  5606  // String returns the string representation.
  5607  //
  5608  // API parameter values that are decorated as "sensitive" in the API will not
  5609  // be included in the string output. The member name will be present, but the
  5610  // value will be replaced with "sensitive".
  5611  func (s Limit) String() string {
  5612  	return awsutil.Prettify(s)
  5613  }
  5614  
  5615  // GoString returns the string representation.
  5616  //
  5617  // API parameter values that are decorated as "sensitive" in the API will not
  5618  // be included in the string output. The member name will be present, but the
  5619  // value will be replaced with "sensitive".
  5620  func (s Limit) GoString() string {
  5621  	return s.String()
  5622  }
  5623  
  5624  // SetMax sets the Max field's value.
  5625  func (s *Limit) SetMax(v string) *Limit {
  5626  	s.Max = &v
  5627  	return s
  5628  }
  5629  
  5630  // SetName sets the Name field's value.
  5631  func (s *Limit) SetName(v string) *Limit {
  5632  	s.Name = &v
  5633  	return s
  5634  }
  5635  
  5636  // Information about a listener.
  5637  //
  5638  // For information about the protocols and the ports supported by Elastic Load
  5639  // Balancing, see Listeners for Your Classic Load Balancer (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-listener-config.html)
  5640  // in the Classic Load Balancers Guide.
  5641  type Listener struct {
  5642  	_ struct{} `type:"structure"`
  5643  
  5644  	// The port on which the instance is listening.
  5645  	//
  5646  	// InstancePort is a required field
  5647  	InstancePort *int64 `min:"1" type:"integer" required:"true"`
  5648  
  5649  	// The protocol to use for routing traffic to instances: HTTP, HTTPS, TCP, or
  5650  	// SSL.
  5651  	//
  5652  	// If the front-end protocol is TCP or SSL, the back-end protocol must be TCP
  5653  	// or SSL. If the front-end protocol is HTTP or HTTPS, the back-end protocol
  5654  	// must be HTTP or HTTPS.
  5655  	//
  5656  	// If there is another listener with the same InstancePort whose InstanceProtocol
  5657  	// is secure, (HTTPS or SSL), the listener's InstanceProtocol must also be secure.
  5658  	//
  5659  	// If there is another listener with the same InstancePort whose InstanceProtocol
  5660  	// is HTTP or TCP, the listener's InstanceProtocol must be HTTP or TCP.
  5661  	InstanceProtocol *string `type:"string"`
  5662  
  5663  	// The port on which the load balancer is listening. On EC2-VPC, you can specify
  5664  	// any port from the range 1-65535. On EC2-Classic, you can specify any port
  5665  	// from the following list: 25, 80, 443, 465, 587, 1024-65535.
  5666  	//
  5667  	// LoadBalancerPort is a required field
  5668  	LoadBalancerPort *int64 `type:"integer" required:"true"`
  5669  
  5670  	// The load balancer transport protocol to use for routing: HTTP, HTTPS, TCP,
  5671  	// or SSL.
  5672  	//
  5673  	// Protocol is a required field
  5674  	Protocol *string `type:"string" required:"true"`
  5675  
  5676  	// The Amazon Resource Name (ARN) of the server certificate.
  5677  	SSLCertificateId *string `type:"string"`
  5678  }
  5679  
  5680  // String returns the string representation.
  5681  //
  5682  // API parameter values that are decorated as "sensitive" in the API will not
  5683  // be included in the string output. The member name will be present, but the
  5684  // value will be replaced with "sensitive".
  5685  func (s Listener) String() string {
  5686  	return awsutil.Prettify(s)
  5687  }
  5688  
  5689  // GoString returns the string representation.
  5690  //
  5691  // API parameter values that are decorated as "sensitive" in the API will not
  5692  // be included in the string output. The member name will be present, but the
  5693  // value will be replaced with "sensitive".
  5694  func (s Listener) GoString() string {
  5695  	return s.String()
  5696  }
  5697  
  5698  // Validate inspects the fields of the type to determine if they are valid.
  5699  func (s *Listener) Validate() error {
  5700  	invalidParams := request.ErrInvalidParams{Context: "Listener"}
  5701  	if s.InstancePort == nil {
  5702  		invalidParams.Add(request.NewErrParamRequired("InstancePort"))
  5703  	}
  5704  	if s.InstancePort != nil && *s.InstancePort < 1 {
  5705  		invalidParams.Add(request.NewErrParamMinValue("InstancePort", 1))
  5706  	}
  5707  	if s.LoadBalancerPort == nil {
  5708  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerPort"))
  5709  	}
  5710  	if s.Protocol == nil {
  5711  		invalidParams.Add(request.NewErrParamRequired("Protocol"))
  5712  	}
  5713  
  5714  	if invalidParams.Len() > 0 {
  5715  		return invalidParams
  5716  	}
  5717  	return nil
  5718  }
  5719  
  5720  // SetInstancePort sets the InstancePort field's value.
  5721  func (s *Listener) SetInstancePort(v int64) *Listener {
  5722  	s.InstancePort = &v
  5723  	return s
  5724  }
  5725  
  5726  // SetInstanceProtocol sets the InstanceProtocol field's value.
  5727  func (s *Listener) SetInstanceProtocol(v string) *Listener {
  5728  	s.InstanceProtocol = &v
  5729  	return s
  5730  }
  5731  
  5732  // SetLoadBalancerPort sets the LoadBalancerPort field's value.
  5733  func (s *Listener) SetLoadBalancerPort(v int64) *Listener {
  5734  	s.LoadBalancerPort = &v
  5735  	return s
  5736  }
  5737  
  5738  // SetProtocol sets the Protocol field's value.
  5739  func (s *Listener) SetProtocol(v string) *Listener {
  5740  	s.Protocol = &v
  5741  	return s
  5742  }
  5743  
  5744  // SetSSLCertificateId sets the SSLCertificateId field's value.
  5745  func (s *Listener) SetSSLCertificateId(v string) *Listener {
  5746  	s.SSLCertificateId = &v
  5747  	return s
  5748  }
  5749  
  5750  // The policies enabled for a listener.
  5751  type ListenerDescription struct {
  5752  	_ struct{} `type:"structure"`
  5753  
  5754  	// The listener.
  5755  	Listener *Listener `type:"structure"`
  5756  
  5757  	// The policies. If there are no policies enabled, the list is empty.
  5758  	PolicyNames []*string `type:"list"`
  5759  }
  5760  
  5761  // String returns the string representation.
  5762  //
  5763  // API parameter values that are decorated as "sensitive" in the API will not
  5764  // be included in the string output. The member name will be present, but the
  5765  // value will be replaced with "sensitive".
  5766  func (s ListenerDescription) String() string {
  5767  	return awsutil.Prettify(s)
  5768  }
  5769  
  5770  // GoString returns the string representation.
  5771  //
  5772  // API parameter values that are decorated as "sensitive" in the API will not
  5773  // be included in the string output. The member name will be present, but the
  5774  // value will be replaced with "sensitive".
  5775  func (s ListenerDescription) GoString() string {
  5776  	return s.String()
  5777  }
  5778  
  5779  // SetListener sets the Listener field's value.
  5780  func (s *ListenerDescription) SetListener(v *Listener) *ListenerDescription {
  5781  	s.Listener = v
  5782  	return s
  5783  }
  5784  
  5785  // SetPolicyNames sets the PolicyNames field's value.
  5786  func (s *ListenerDescription) SetPolicyNames(v []*string) *ListenerDescription {
  5787  	s.PolicyNames = v
  5788  	return s
  5789  }
  5790  
  5791  // The attributes for a load balancer.
  5792  type LoadBalancerAttributes struct {
  5793  	_ struct{} `type:"structure"`
  5794  
  5795  	// If enabled, the load balancer captures detailed information of all requests
  5796  	// and delivers the information to the Amazon S3 bucket that you specify.
  5797  	//
  5798  	// For more information, see Enable Access Logs (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html)
  5799  	// in the Classic Load Balancers Guide.
  5800  	AccessLog *AccessLog `type:"structure"`
  5801  
  5802  	// Any additional attributes.
  5803  	AdditionalAttributes []*AdditionalAttribute `type:"list"`
  5804  
  5805  	// If enabled, the load balancer allows existing requests to complete before
  5806  	// the load balancer shifts traffic away from a deregistered or unhealthy instance.
  5807  	//
  5808  	// For more information, see Configure Connection Draining (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html)
  5809  	// in the Classic Load Balancers Guide.
  5810  	ConnectionDraining *ConnectionDraining `type:"structure"`
  5811  
  5812  	// If enabled, the load balancer allows the connections to remain idle (no data
  5813  	// is sent over the connection) for the specified duration.
  5814  	//
  5815  	// By default, Elastic Load Balancing maintains a 60-second idle connection
  5816  	// timeout for both front-end and back-end connections of your load balancer.
  5817  	// For more information, see Configure Idle Connection Timeout (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html)
  5818  	// in the Classic Load Balancers Guide.
  5819  	ConnectionSettings *ConnectionSettings `type:"structure"`
  5820  
  5821  	// If enabled, the load balancer routes the request traffic evenly across all
  5822  	// instances regardless of the Availability Zones.
  5823  	//
  5824  	// For more information, see Configure Cross-Zone Load Balancing (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html)
  5825  	// in the Classic Load Balancers Guide.
  5826  	CrossZoneLoadBalancing *CrossZoneLoadBalancing `type:"structure"`
  5827  }
  5828  
  5829  // String returns the string representation.
  5830  //
  5831  // API parameter values that are decorated as "sensitive" in the API will not
  5832  // be included in the string output. The member name will be present, but the
  5833  // value will be replaced with "sensitive".
  5834  func (s LoadBalancerAttributes) String() string {
  5835  	return awsutil.Prettify(s)
  5836  }
  5837  
  5838  // GoString returns the string representation.
  5839  //
  5840  // API parameter values that are decorated as "sensitive" in the API will not
  5841  // be included in the string output. The member name will be present, but the
  5842  // value will be replaced with "sensitive".
  5843  func (s LoadBalancerAttributes) GoString() string {
  5844  	return s.String()
  5845  }
  5846  
  5847  // Validate inspects the fields of the type to determine if they are valid.
  5848  func (s *LoadBalancerAttributes) Validate() error {
  5849  	invalidParams := request.ErrInvalidParams{Context: "LoadBalancerAttributes"}
  5850  	if s.AccessLog != nil {
  5851  		if err := s.AccessLog.Validate(); err != nil {
  5852  			invalidParams.AddNested("AccessLog", err.(request.ErrInvalidParams))
  5853  		}
  5854  	}
  5855  	if s.ConnectionDraining != nil {
  5856  		if err := s.ConnectionDraining.Validate(); err != nil {
  5857  			invalidParams.AddNested("ConnectionDraining", err.(request.ErrInvalidParams))
  5858  		}
  5859  	}
  5860  	if s.ConnectionSettings != nil {
  5861  		if err := s.ConnectionSettings.Validate(); err != nil {
  5862  			invalidParams.AddNested("ConnectionSettings", err.(request.ErrInvalidParams))
  5863  		}
  5864  	}
  5865  	if s.CrossZoneLoadBalancing != nil {
  5866  		if err := s.CrossZoneLoadBalancing.Validate(); err != nil {
  5867  			invalidParams.AddNested("CrossZoneLoadBalancing", err.(request.ErrInvalidParams))
  5868  		}
  5869  	}
  5870  
  5871  	if invalidParams.Len() > 0 {
  5872  		return invalidParams
  5873  	}
  5874  	return nil
  5875  }
  5876  
  5877  // SetAccessLog sets the AccessLog field's value.
  5878  func (s *LoadBalancerAttributes) SetAccessLog(v *AccessLog) *LoadBalancerAttributes {
  5879  	s.AccessLog = v
  5880  	return s
  5881  }
  5882  
  5883  // SetAdditionalAttributes sets the AdditionalAttributes field's value.
  5884  func (s *LoadBalancerAttributes) SetAdditionalAttributes(v []*AdditionalAttribute) *LoadBalancerAttributes {
  5885  	s.AdditionalAttributes = v
  5886  	return s
  5887  }
  5888  
  5889  // SetConnectionDraining sets the ConnectionDraining field's value.
  5890  func (s *LoadBalancerAttributes) SetConnectionDraining(v *ConnectionDraining) *LoadBalancerAttributes {
  5891  	s.ConnectionDraining = v
  5892  	return s
  5893  }
  5894  
  5895  // SetConnectionSettings sets the ConnectionSettings field's value.
  5896  func (s *LoadBalancerAttributes) SetConnectionSettings(v *ConnectionSettings) *LoadBalancerAttributes {
  5897  	s.ConnectionSettings = v
  5898  	return s
  5899  }
  5900  
  5901  // SetCrossZoneLoadBalancing sets the CrossZoneLoadBalancing field's value.
  5902  func (s *LoadBalancerAttributes) SetCrossZoneLoadBalancing(v *CrossZoneLoadBalancing) *LoadBalancerAttributes {
  5903  	s.CrossZoneLoadBalancing = v
  5904  	return s
  5905  }
  5906  
  5907  // Information about a load balancer.
  5908  type LoadBalancerDescription struct {
  5909  	_ struct{} `type:"structure"`
  5910  
  5911  	// The Availability Zones for the load balancer.
  5912  	AvailabilityZones []*string `type:"list"`
  5913  
  5914  	// Information about your EC2 instances.
  5915  	BackendServerDescriptions []*BackendServerDescription `type:"list"`
  5916  
  5917  	// The DNS name of the load balancer.
  5918  	//
  5919  	// For more information, see Configure a Custom Domain Name (https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/using-domain-names-with-elb.html)
  5920  	// in the Classic Load Balancers Guide.
  5921  	CanonicalHostedZoneName *string `type:"string"`
  5922  
  5923  	// The ID of the Amazon Route 53 hosted zone for the load balancer.
  5924  	CanonicalHostedZoneNameID *string `type:"string"`
  5925  
  5926  	// The date and time the load balancer was created.
  5927  	CreatedTime *time.Time `type:"timestamp"`
  5928  
  5929  	// The DNS name of the load balancer.
  5930  	DNSName *string `type:"string"`
  5931  
  5932  	// Information about the health checks conducted on the load balancer.
  5933  	HealthCheck *HealthCheck `type:"structure"`
  5934  
  5935  	// The IDs of the instances for the load balancer.
  5936  	Instances []*Instance `type:"list"`
  5937  
  5938  	// The listeners for the load balancer.
  5939  	ListenerDescriptions []*ListenerDescription `type:"list"`
  5940  
  5941  	// The name of the load balancer.
  5942  	LoadBalancerName *string `type:"string"`
  5943  
  5944  	// The policies defined for the load balancer.
  5945  	Policies *Policies `type:"structure"`
  5946  
  5947  	// The type of load balancer. Valid only for load balancers in a VPC.
  5948  	//
  5949  	// If Scheme is internet-facing, the load balancer has a public DNS name that
  5950  	// resolves to a public IP address.
  5951  	//
  5952  	// If Scheme is internal, the load balancer has a public DNS name that resolves
  5953  	// to a private IP address.
  5954  	Scheme *string `type:"string"`
  5955  
  5956  	// The security groups for the load balancer. Valid only for load balancers
  5957  	// in a VPC.
  5958  	SecurityGroups []*string `type:"list"`
  5959  
  5960  	// The security group for the load balancer, which you can use as part of your
  5961  	// inbound rules for your registered instances. To only allow traffic from load
  5962  	// balancers, add a security group rule that specifies this source security
  5963  	// group as the inbound source.
  5964  	SourceSecurityGroup *SourceSecurityGroup `type:"structure"`
  5965  
  5966  	// The IDs of the subnets for the load balancer.
  5967  	Subnets []*string `type:"list"`
  5968  
  5969  	// The ID of the VPC for the load balancer.
  5970  	VPCId *string `type:"string"`
  5971  }
  5972  
  5973  // String returns the string representation.
  5974  //
  5975  // API parameter values that are decorated as "sensitive" in the API will not
  5976  // be included in the string output. The member name will be present, but the
  5977  // value will be replaced with "sensitive".
  5978  func (s LoadBalancerDescription) String() string {
  5979  	return awsutil.Prettify(s)
  5980  }
  5981  
  5982  // GoString returns the string representation.
  5983  //
  5984  // API parameter values that are decorated as "sensitive" in the API will not
  5985  // be included in the string output. The member name will be present, but the
  5986  // value will be replaced with "sensitive".
  5987  func (s LoadBalancerDescription) GoString() string {
  5988  	return s.String()
  5989  }
  5990  
  5991  // SetAvailabilityZones sets the AvailabilityZones field's value.
  5992  func (s *LoadBalancerDescription) SetAvailabilityZones(v []*string) *LoadBalancerDescription {
  5993  	s.AvailabilityZones = v
  5994  	return s
  5995  }
  5996  
  5997  // SetBackendServerDescriptions sets the BackendServerDescriptions field's value.
  5998  func (s *LoadBalancerDescription) SetBackendServerDescriptions(v []*BackendServerDescription) *LoadBalancerDescription {
  5999  	s.BackendServerDescriptions = v
  6000  	return s
  6001  }
  6002  
  6003  // SetCanonicalHostedZoneName sets the CanonicalHostedZoneName field's value.
  6004  func (s *LoadBalancerDescription) SetCanonicalHostedZoneName(v string) *LoadBalancerDescription {
  6005  	s.CanonicalHostedZoneName = &v
  6006  	return s
  6007  }
  6008  
  6009  // SetCanonicalHostedZoneNameID sets the CanonicalHostedZoneNameID field's value.
  6010  func (s *LoadBalancerDescription) SetCanonicalHostedZoneNameID(v string) *LoadBalancerDescription {
  6011  	s.CanonicalHostedZoneNameID = &v
  6012  	return s
  6013  }
  6014  
  6015  // SetCreatedTime sets the CreatedTime field's value.
  6016  func (s *LoadBalancerDescription) SetCreatedTime(v time.Time) *LoadBalancerDescription {
  6017  	s.CreatedTime = &v
  6018  	return s
  6019  }
  6020  
  6021  // SetDNSName sets the DNSName field's value.
  6022  func (s *LoadBalancerDescription) SetDNSName(v string) *LoadBalancerDescription {
  6023  	s.DNSName = &v
  6024  	return s
  6025  }
  6026  
  6027  // SetHealthCheck sets the HealthCheck field's value.
  6028  func (s *LoadBalancerDescription) SetHealthCheck(v *HealthCheck) *LoadBalancerDescription {
  6029  	s.HealthCheck = v
  6030  	return s
  6031  }
  6032  
  6033  // SetInstances sets the Instances field's value.
  6034  func (s *LoadBalancerDescription) SetInstances(v []*Instance) *LoadBalancerDescription {
  6035  	s.Instances = v
  6036  	return s
  6037  }
  6038  
  6039  // SetListenerDescriptions sets the ListenerDescriptions field's value.
  6040  func (s *LoadBalancerDescription) SetListenerDescriptions(v []*ListenerDescription) *LoadBalancerDescription {
  6041  	s.ListenerDescriptions = v
  6042  	return s
  6043  }
  6044  
  6045  // SetLoadBalancerName sets the LoadBalancerName field's value.
  6046  func (s *LoadBalancerDescription) SetLoadBalancerName(v string) *LoadBalancerDescription {
  6047  	s.LoadBalancerName = &v
  6048  	return s
  6049  }
  6050  
  6051  // SetPolicies sets the Policies field's value.
  6052  func (s *LoadBalancerDescription) SetPolicies(v *Policies) *LoadBalancerDescription {
  6053  	s.Policies = v
  6054  	return s
  6055  }
  6056  
  6057  // SetScheme sets the Scheme field's value.
  6058  func (s *LoadBalancerDescription) SetScheme(v string) *LoadBalancerDescription {
  6059  	s.Scheme = &v
  6060  	return s
  6061  }
  6062  
  6063  // SetSecurityGroups sets the SecurityGroups field's value.
  6064  func (s *LoadBalancerDescription) SetSecurityGroups(v []*string) *LoadBalancerDescription {
  6065  	s.SecurityGroups = v
  6066  	return s
  6067  }
  6068  
  6069  // SetSourceSecurityGroup sets the SourceSecurityGroup field's value.
  6070  func (s *LoadBalancerDescription) SetSourceSecurityGroup(v *SourceSecurityGroup) *LoadBalancerDescription {
  6071  	s.SourceSecurityGroup = v
  6072  	return s
  6073  }
  6074  
  6075  // SetSubnets sets the Subnets field's value.
  6076  func (s *LoadBalancerDescription) SetSubnets(v []*string) *LoadBalancerDescription {
  6077  	s.Subnets = v
  6078  	return s
  6079  }
  6080  
  6081  // SetVPCId sets the VPCId field's value.
  6082  func (s *LoadBalancerDescription) SetVPCId(v string) *LoadBalancerDescription {
  6083  	s.VPCId = &v
  6084  	return s
  6085  }
  6086  
  6087  // Contains the parameters for ModifyLoadBalancerAttributes.
  6088  type ModifyLoadBalancerAttributesInput struct {
  6089  	_ struct{} `type:"structure"`
  6090  
  6091  	// The attributes for the load balancer.
  6092  	//
  6093  	// LoadBalancerAttributes is a required field
  6094  	LoadBalancerAttributes *LoadBalancerAttributes `type:"structure" required:"true"`
  6095  
  6096  	// The name of the load balancer.
  6097  	//
  6098  	// LoadBalancerName is a required field
  6099  	LoadBalancerName *string `type:"string" required:"true"`
  6100  }
  6101  
  6102  // String returns the string representation.
  6103  //
  6104  // API parameter values that are decorated as "sensitive" in the API will not
  6105  // be included in the string output. The member name will be present, but the
  6106  // value will be replaced with "sensitive".
  6107  func (s ModifyLoadBalancerAttributesInput) String() string {
  6108  	return awsutil.Prettify(s)
  6109  }
  6110  
  6111  // GoString returns the string representation.
  6112  //
  6113  // API parameter values that are decorated as "sensitive" in the API will not
  6114  // be included in the string output. The member name will be present, but the
  6115  // value will be replaced with "sensitive".
  6116  func (s ModifyLoadBalancerAttributesInput) GoString() string {
  6117  	return s.String()
  6118  }
  6119  
  6120  // Validate inspects the fields of the type to determine if they are valid.
  6121  func (s *ModifyLoadBalancerAttributesInput) Validate() error {
  6122  	invalidParams := request.ErrInvalidParams{Context: "ModifyLoadBalancerAttributesInput"}
  6123  	if s.LoadBalancerAttributes == nil {
  6124  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerAttributes"))
  6125  	}
  6126  	if s.LoadBalancerName == nil {
  6127  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  6128  	}
  6129  	if s.LoadBalancerAttributes != nil {
  6130  		if err := s.LoadBalancerAttributes.Validate(); err != nil {
  6131  			invalidParams.AddNested("LoadBalancerAttributes", err.(request.ErrInvalidParams))
  6132  		}
  6133  	}
  6134  
  6135  	if invalidParams.Len() > 0 {
  6136  		return invalidParams
  6137  	}
  6138  	return nil
  6139  }
  6140  
  6141  // SetLoadBalancerAttributes sets the LoadBalancerAttributes field's value.
  6142  func (s *ModifyLoadBalancerAttributesInput) SetLoadBalancerAttributes(v *LoadBalancerAttributes) *ModifyLoadBalancerAttributesInput {
  6143  	s.LoadBalancerAttributes = v
  6144  	return s
  6145  }
  6146  
  6147  // SetLoadBalancerName sets the LoadBalancerName field's value.
  6148  func (s *ModifyLoadBalancerAttributesInput) SetLoadBalancerName(v string) *ModifyLoadBalancerAttributesInput {
  6149  	s.LoadBalancerName = &v
  6150  	return s
  6151  }
  6152  
  6153  // Contains the output of ModifyLoadBalancerAttributes.
  6154  type ModifyLoadBalancerAttributesOutput struct {
  6155  	_ struct{} `type:"structure"`
  6156  
  6157  	// Information about the load balancer attributes.
  6158  	LoadBalancerAttributes *LoadBalancerAttributes `type:"structure"`
  6159  
  6160  	// The name of the load balancer.
  6161  	LoadBalancerName *string `type:"string"`
  6162  }
  6163  
  6164  // String returns the string representation.
  6165  //
  6166  // API parameter values that are decorated as "sensitive" in the API will not
  6167  // be included in the string output. The member name will be present, but the
  6168  // value will be replaced with "sensitive".
  6169  func (s ModifyLoadBalancerAttributesOutput) String() string {
  6170  	return awsutil.Prettify(s)
  6171  }
  6172  
  6173  // GoString returns the string representation.
  6174  //
  6175  // API parameter values that are decorated as "sensitive" in the API will not
  6176  // be included in the string output. The member name will be present, but the
  6177  // value will be replaced with "sensitive".
  6178  func (s ModifyLoadBalancerAttributesOutput) GoString() string {
  6179  	return s.String()
  6180  }
  6181  
  6182  // SetLoadBalancerAttributes sets the LoadBalancerAttributes field's value.
  6183  func (s *ModifyLoadBalancerAttributesOutput) SetLoadBalancerAttributes(v *LoadBalancerAttributes) *ModifyLoadBalancerAttributesOutput {
  6184  	s.LoadBalancerAttributes = v
  6185  	return s
  6186  }
  6187  
  6188  // SetLoadBalancerName sets the LoadBalancerName field's value.
  6189  func (s *ModifyLoadBalancerAttributesOutput) SetLoadBalancerName(v string) *ModifyLoadBalancerAttributesOutput {
  6190  	s.LoadBalancerName = &v
  6191  	return s
  6192  }
  6193  
  6194  // The policies for a load balancer.
  6195  type Policies struct {
  6196  	_ struct{} `type:"structure"`
  6197  
  6198  	// The stickiness policies created using CreateAppCookieStickinessPolicy.
  6199  	AppCookieStickinessPolicies []*AppCookieStickinessPolicy `type:"list"`
  6200  
  6201  	// The stickiness policies created using CreateLBCookieStickinessPolicy.
  6202  	LBCookieStickinessPolicies []*LBCookieStickinessPolicy `type:"list"`
  6203  
  6204  	// The policies other than the stickiness policies.
  6205  	OtherPolicies []*string `type:"list"`
  6206  }
  6207  
  6208  // String returns the string representation.
  6209  //
  6210  // API parameter values that are decorated as "sensitive" in the API will not
  6211  // be included in the string output. The member name will be present, but the
  6212  // value will be replaced with "sensitive".
  6213  func (s Policies) String() string {
  6214  	return awsutil.Prettify(s)
  6215  }
  6216  
  6217  // GoString returns the string representation.
  6218  //
  6219  // API parameter values that are decorated as "sensitive" in the API will not
  6220  // be included in the string output. The member name will be present, but the
  6221  // value will be replaced with "sensitive".
  6222  func (s Policies) GoString() string {
  6223  	return s.String()
  6224  }
  6225  
  6226  // SetAppCookieStickinessPolicies sets the AppCookieStickinessPolicies field's value.
  6227  func (s *Policies) SetAppCookieStickinessPolicies(v []*AppCookieStickinessPolicy) *Policies {
  6228  	s.AppCookieStickinessPolicies = v
  6229  	return s
  6230  }
  6231  
  6232  // SetLBCookieStickinessPolicies sets the LBCookieStickinessPolicies field's value.
  6233  func (s *Policies) SetLBCookieStickinessPolicies(v []*LBCookieStickinessPolicy) *Policies {
  6234  	s.LBCookieStickinessPolicies = v
  6235  	return s
  6236  }
  6237  
  6238  // SetOtherPolicies sets the OtherPolicies field's value.
  6239  func (s *Policies) SetOtherPolicies(v []*string) *Policies {
  6240  	s.OtherPolicies = v
  6241  	return s
  6242  }
  6243  
  6244  // Information about a policy attribute.
  6245  type PolicyAttribute struct {
  6246  	_ struct{} `type:"structure"`
  6247  
  6248  	// The name of the attribute.
  6249  	AttributeName *string `type:"string"`
  6250  
  6251  	// The value of the attribute.
  6252  	AttributeValue *string `type:"string"`
  6253  }
  6254  
  6255  // String returns the string representation.
  6256  //
  6257  // API parameter values that are decorated as "sensitive" in the API will not
  6258  // be included in the string output. The member name will be present, but the
  6259  // value will be replaced with "sensitive".
  6260  func (s PolicyAttribute) String() string {
  6261  	return awsutil.Prettify(s)
  6262  }
  6263  
  6264  // GoString 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 PolicyAttribute) GoString() string {
  6270  	return s.String()
  6271  }
  6272  
  6273  // SetAttributeName sets the AttributeName field's value.
  6274  func (s *PolicyAttribute) SetAttributeName(v string) *PolicyAttribute {
  6275  	s.AttributeName = &v
  6276  	return s
  6277  }
  6278  
  6279  // SetAttributeValue sets the AttributeValue field's value.
  6280  func (s *PolicyAttribute) SetAttributeValue(v string) *PolicyAttribute {
  6281  	s.AttributeValue = &v
  6282  	return s
  6283  }
  6284  
  6285  // Information about a policy attribute.
  6286  type PolicyAttributeDescription struct {
  6287  	_ struct{} `type:"structure"`
  6288  
  6289  	// The name of the attribute.
  6290  	AttributeName *string `type:"string"`
  6291  
  6292  	// The value of the attribute.
  6293  	AttributeValue *string `type:"string"`
  6294  }
  6295  
  6296  // String returns the string representation.
  6297  //
  6298  // API parameter values that are decorated as "sensitive" in the API will not
  6299  // be included in the string output. The member name will be present, but the
  6300  // value will be replaced with "sensitive".
  6301  func (s PolicyAttributeDescription) String() string {
  6302  	return awsutil.Prettify(s)
  6303  }
  6304  
  6305  // GoString returns the string representation.
  6306  //
  6307  // API parameter values that are decorated as "sensitive" in the API will not
  6308  // be included in the string output. The member name will be present, but the
  6309  // value will be replaced with "sensitive".
  6310  func (s PolicyAttributeDescription) GoString() string {
  6311  	return s.String()
  6312  }
  6313  
  6314  // SetAttributeName sets the AttributeName field's value.
  6315  func (s *PolicyAttributeDescription) SetAttributeName(v string) *PolicyAttributeDescription {
  6316  	s.AttributeName = &v
  6317  	return s
  6318  }
  6319  
  6320  // SetAttributeValue sets the AttributeValue field's value.
  6321  func (s *PolicyAttributeDescription) SetAttributeValue(v string) *PolicyAttributeDescription {
  6322  	s.AttributeValue = &v
  6323  	return s
  6324  }
  6325  
  6326  // Information about a policy attribute type.
  6327  type PolicyAttributeTypeDescription struct {
  6328  	_ struct{} `type:"structure"`
  6329  
  6330  	// The name of the attribute.
  6331  	AttributeName *string `type:"string"`
  6332  
  6333  	// The type of the attribute. For example, Boolean or Integer.
  6334  	AttributeType *string `type:"string"`
  6335  
  6336  	// The cardinality of the attribute.
  6337  	//
  6338  	// Valid values:
  6339  	//
  6340  	//    * ONE(1) : Single value required
  6341  	//
  6342  	//    * ZERO_OR_ONE(0..1) : Up to one value is allowed
  6343  	//
  6344  	//    * ZERO_OR_MORE(0..*) : Optional. Multiple values are allowed
  6345  	//
  6346  	//    * ONE_OR_MORE(1..*0) : Required. Multiple values are allowed
  6347  	Cardinality *string `type:"string"`
  6348  
  6349  	// The default value of the attribute, if applicable.
  6350  	DefaultValue *string `type:"string"`
  6351  
  6352  	// A description of the attribute.
  6353  	Description *string `type:"string"`
  6354  }
  6355  
  6356  // String returns the string representation.
  6357  //
  6358  // API parameter values that are decorated as "sensitive" in the API will not
  6359  // be included in the string output. The member name will be present, but the
  6360  // value will be replaced with "sensitive".
  6361  func (s PolicyAttributeTypeDescription) String() string {
  6362  	return awsutil.Prettify(s)
  6363  }
  6364  
  6365  // GoString returns the string representation.
  6366  //
  6367  // API parameter values that are decorated as "sensitive" in the API will not
  6368  // be included in the string output. The member name will be present, but the
  6369  // value will be replaced with "sensitive".
  6370  func (s PolicyAttributeTypeDescription) GoString() string {
  6371  	return s.String()
  6372  }
  6373  
  6374  // SetAttributeName sets the AttributeName field's value.
  6375  func (s *PolicyAttributeTypeDescription) SetAttributeName(v string) *PolicyAttributeTypeDescription {
  6376  	s.AttributeName = &v
  6377  	return s
  6378  }
  6379  
  6380  // SetAttributeType sets the AttributeType field's value.
  6381  func (s *PolicyAttributeTypeDescription) SetAttributeType(v string) *PolicyAttributeTypeDescription {
  6382  	s.AttributeType = &v
  6383  	return s
  6384  }
  6385  
  6386  // SetCardinality sets the Cardinality field's value.
  6387  func (s *PolicyAttributeTypeDescription) SetCardinality(v string) *PolicyAttributeTypeDescription {
  6388  	s.Cardinality = &v
  6389  	return s
  6390  }
  6391  
  6392  // SetDefaultValue sets the DefaultValue field's value.
  6393  func (s *PolicyAttributeTypeDescription) SetDefaultValue(v string) *PolicyAttributeTypeDescription {
  6394  	s.DefaultValue = &v
  6395  	return s
  6396  }
  6397  
  6398  // SetDescription sets the Description field's value.
  6399  func (s *PolicyAttributeTypeDescription) SetDescription(v string) *PolicyAttributeTypeDescription {
  6400  	s.Description = &v
  6401  	return s
  6402  }
  6403  
  6404  // Information about a policy.
  6405  type PolicyDescription struct {
  6406  	_ struct{} `type:"structure"`
  6407  
  6408  	// The policy attributes.
  6409  	PolicyAttributeDescriptions []*PolicyAttributeDescription `type:"list"`
  6410  
  6411  	// The name of the policy.
  6412  	PolicyName *string `type:"string"`
  6413  
  6414  	// The name of the policy type.
  6415  	PolicyTypeName *string `type:"string"`
  6416  }
  6417  
  6418  // String returns the string representation.
  6419  //
  6420  // API parameter values that are decorated as "sensitive" in the API will not
  6421  // be included in the string output. The member name will be present, but the
  6422  // value will be replaced with "sensitive".
  6423  func (s PolicyDescription) String() string {
  6424  	return awsutil.Prettify(s)
  6425  }
  6426  
  6427  // GoString returns the string representation.
  6428  //
  6429  // API parameter values that are decorated as "sensitive" in the API will not
  6430  // be included in the string output. The member name will be present, but the
  6431  // value will be replaced with "sensitive".
  6432  func (s PolicyDescription) GoString() string {
  6433  	return s.String()
  6434  }
  6435  
  6436  // SetPolicyAttributeDescriptions sets the PolicyAttributeDescriptions field's value.
  6437  func (s *PolicyDescription) SetPolicyAttributeDescriptions(v []*PolicyAttributeDescription) *PolicyDescription {
  6438  	s.PolicyAttributeDescriptions = v
  6439  	return s
  6440  }
  6441  
  6442  // SetPolicyName sets the PolicyName field's value.
  6443  func (s *PolicyDescription) SetPolicyName(v string) *PolicyDescription {
  6444  	s.PolicyName = &v
  6445  	return s
  6446  }
  6447  
  6448  // SetPolicyTypeName sets the PolicyTypeName field's value.
  6449  func (s *PolicyDescription) SetPolicyTypeName(v string) *PolicyDescription {
  6450  	s.PolicyTypeName = &v
  6451  	return s
  6452  }
  6453  
  6454  // Information about a policy type.
  6455  type PolicyTypeDescription struct {
  6456  	_ struct{} `type:"structure"`
  6457  
  6458  	// A description of the policy type.
  6459  	Description *string `type:"string"`
  6460  
  6461  	// The description of the policy attributes associated with the policies defined
  6462  	// by Elastic Load Balancing.
  6463  	PolicyAttributeTypeDescriptions []*PolicyAttributeTypeDescription `type:"list"`
  6464  
  6465  	// The name of the policy type.
  6466  	PolicyTypeName *string `type:"string"`
  6467  }
  6468  
  6469  // String returns the string representation.
  6470  //
  6471  // API parameter values that are decorated as "sensitive" in the API will not
  6472  // be included in the string output. The member name will be present, but the
  6473  // value will be replaced with "sensitive".
  6474  func (s PolicyTypeDescription) String() string {
  6475  	return awsutil.Prettify(s)
  6476  }
  6477  
  6478  // GoString returns the string representation.
  6479  //
  6480  // API parameter values that are decorated as "sensitive" in the API will not
  6481  // be included in the string output. The member name will be present, but the
  6482  // value will be replaced with "sensitive".
  6483  func (s PolicyTypeDescription) GoString() string {
  6484  	return s.String()
  6485  }
  6486  
  6487  // SetDescription sets the Description field's value.
  6488  func (s *PolicyTypeDescription) SetDescription(v string) *PolicyTypeDescription {
  6489  	s.Description = &v
  6490  	return s
  6491  }
  6492  
  6493  // SetPolicyAttributeTypeDescriptions sets the PolicyAttributeTypeDescriptions field's value.
  6494  func (s *PolicyTypeDescription) SetPolicyAttributeTypeDescriptions(v []*PolicyAttributeTypeDescription) *PolicyTypeDescription {
  6495  	s.PolicyAttributeTypeDescriptions = v
  6496  	return s
  6497  }
  6498  
  6499  // SetPolicyTypeName sets the PolicyTypeName field's value.
  6500  func (s *PolicyTypeDescription) SetPolicyTypeName(v string) *PolicyTypeDescription {
  6501  	s.PolicyTypeName = &v
  6502  	return s
  6503  }
  6504  
  6505  // Contains the parameters for RegisterInstancesWithLoadBalancer.
  6506  type RegisterInstancesWithLoadBalancerInput struct {
  6507  	_ struct{} `type:"structure"`
  6508  
  6509  	// The IDs of the instances.
  6510  	//
  6511  	// Instances is a required field
  6512  	Instances []*Instance `type:"list" required:"true"`
  6513  
  6514  	// The name of the load balancer.
  6515  	//
  6516  	// LoadBalancerName is a required field
  6517  	LoadBalancerName *string `type:"string" required:"true"`
  6518  }
  6519  
  6520  // String returns the string representation.
  6521  //
  6522  // API parameter values that are decorated as "sensitive" in the API will not
  6523  // be included in the string output. The member name will be present, but the
  6524  // value will be replaced with "sensitive".
  6525  func (s RegisterInstancesWithLoadBalancerInput) String() string {
  6526  	return awsutil.Prettify(s)
  6527  }
  6528  
  6529  // GoString returns the string representation.
  6530  //
  6531  // API parameter values that are decorated as "sensitive" in the API will not
  6532  // be included in the string output. The member name will be present, but the
  6533  // value will be replaced with "sensitive".
  6534  func (s RegisterInstancesWithLoadBalancerInput) GoString() string {
  6535  	return s.String()
  6536  }
  6537  
  6538  // Validate inspects the fields of the type to determine if they are valid.
  6539  func (s *RegisterInstancesWithLoadBalancerInput) Validate() error {
  6540  	invalidParams := request.ErrInvalidParams{Context: "RegisterInstancesWithLoadBalancerInput"}
  6541  	if s.Instances == nil {
  6542  		invalidParams.Add(request.NewErrParamRequired("Instances"))
  6543  	}
  6544  	if s.LoadBalancerName == nil {
  6545  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  6546  	}
  6547  
  6548  	if invalidParams.Len() > 0 {
  6549  		return invalidParams
  6550  	}
  6551  	return nil
  6552  }
  6553  
  6554  // SetInstances sets the Instances field's value.
  6555  func (s *RegisterInstancesWithLoadBalancerInput) SetInstances(v []*Instance) *RegisterInstancesWithLoadBalancerInput {
  6556  	s.Instances = v
  6557  	return s
  6558  }
  6559  
  6560  // SetLoadBalancerName sets the LoadBalancerName field's value.
  6561  func (s *RegisterInstancesWithLoadBalancerInput) SetLoadBalancerName(v string) *RegisterInstancesWithLoadBalancerInput {
  6562  	s.LoadBalancerName = &v
  6563  	return s
  6564  }
  6565  
  6566  // Contains the output of RegisterInstancesWithLoadBalancer.
  6567  type RegisterInstancesWithLoadBalancerOutput struct {
  6568  	_ struct{} `type:"structure"`
  6569  
  6570  	// The updated list of instances for the load balancer.
  6571  	Instances []*Instance `type:"list"`
  6572  }
  6573  
  6574  // String returns the string representation.
  6575  //
  6576  // API parameter values that are decorated as "sensitive" in the API will not
  6577  // be included in the string output. The member name will be present, but the
  6578  // value will be replaced with "sensitive".
  6579  func (s RegisterInstancesWithLoadBalancerOutput) String() string {
  6580  	return awsutil.Prettify(s)
  6581  }
  6582  
  6583  // GoString returns the string representation.
  6584  //
  6585  // API parameter values that are decorated as "sensitive" in the API will not
  6586  // be included in the string output. The member name will be present, but the
  6587  // value will be replaced with "sensitive".
  6588  func (s RegisterInstancesWithLoadBalancerOutput) GoString() string {
  6589  	return s.String()
  6590  }
  6591  
  6592  // SetInstances sets the Instances field's value.
  6593  func (s *RegisterInstancesWithLoadBalancerOutput) SetInstances(v []*Instance) *RegisterInstancesWithLoadBalancerOutput {
  6594  	s.Instances = v
  6595  	return s
  6596  }
  6597  
  6598  // Contains the parameters for RemoveTags.
  6599  type RemoveTagsInput struct {
  6600  	_ struct{} `type:"structure"`
  6601  
  6602  	// The name of the load balancer. You can specify a maximum of one load balancer
  6603  	// name.
  6604  	//
  6605  	// LoadBalancerNames is a required field
  6606  	LoadBalancerNames []*string `type:"list" required:"true"`
  6607  
  6608  	// The list of tag keys to remove.
  6609  	//
  6610  	// Tags is a required field
  6611  	Tags []*TagKeyOnly `min:"1" type:"list" required:"true"`
  6612  }
  6613  
  6614  // String returns the string representation.
  6615  //
  6616  // API parameter values that are decorated as "sensitive" in the API will not
  6617  // be included in the string output. The member name will be present, but the
  6618  // value will be replaced with "sensitive".
  6619  func (s RemoveTagsInput) String() string {
  6620  	return awsutil.Prettify(s)
  6621  }
  6622  
  6623  // GoString returns the string representation.
  6624  //
  6625  // API parameter values that are decorated as "sensitive" in the API will not
  6626  // be included in the string output. The member name will be present, but the
  6627  // value will be replaced with "sensitive".
  6628  func (s RemoveTagsInput) GoString() string {
  6629  	return s.String()
  6630  }
  6631  
  6632  // Validate inspects the fields of the type to determine if they are valid.
  6633  func (s *RemoveTagsInput) Validate() error {
  6634  	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsInput"}
  6635  	if s.LoadBalancerNames == nil {
  6636  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerNames"))
  6637  	}
  6638  	if s.Tags == nil {
  6639  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  6640  	}
  6641  	if s.Tags != nil && len(s.Tags) < 1 {
  6642  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  6643  	}
  6644  	if s.Tags != nil {
  6645  		for i, v := range s.Tags {
  6646  			if v == nil {
  6647  				continue
  6648  			}
  6649  			if err := v.Validate(); err != nil {
  6650  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  6651  			}
  6652  		}
  6653  	}
  6654  
  6655  	if invalidParams.Len() > 0 {
  6656  		return invalidParams
  6657  	}
  6658  	return nil
  6659  }
  6660  
  6661  // SetLoadBalancerNames sets the LoadBalancerNames field's value.
  6662  func (s *RemoveTagsInput) SetLoadBalancerNames(v []*string) *RemoveTagsInput {
  6663  	s.LoadBalancerNames = v
  6664  	return s
  6665  }
  6666  
  6667  // SetTags sets the Tags field's value.
  6668  func (s *RemoveTagsInput) SetTags(v []*TagKeyOnly) *RemoveTagsInput {
  6669  	s.Tags = v
  6670  	return s
  6671  }
  6672  
  6673  // Contains the output of RemoveTags.
  6674  type RemoveTagsOutput struct {
  6675  	_ struct{} `type:"structure"`
  6676  }
  6677  
  6678  // String returns the string representation.
  6679  //
  6680  // API parameter values that are decorated as "sensitive" in the API will not
  6681  // be included in the string output. The member name will be present, but the
  6682  // value will be replaced with "sensitive".
  6683  func (s RemoveTagsOutput) String() string {
  6684  	return awsutil.Prettify(s)
  6685  }
  6686  
  6687  // GoString returns the string representation.
  6688  //
  6689  // API parameter values that are decorated as "sensitive" in the API will not
  6690  // be included in the string output. The member name will be present, but the
  6691  // value will be replaced with "sensitive".
  6692  func (s RemoveTagsOutput) GoString() string {
  6693  	return s.String()
  6694  }
  6695  
  6696  // Contains the parameters for SetLoadBalancerListenerSSLCertificate.
  6697  type SetLoadBalancerListenerSSLCertificateInput struct {
  6698  	_ struct{} `type:"structure"`
  6699  
  6700  	// The name of the load balancer.
  6701  	//
  6702  	// LoadBalancerName is a required field
  6703  	LoadBalancerName *string `type:"string" required:"true"`
  6704  
  6705  	// The port that uses the specified SSL certificate.
  6706  	//
  6707  	// LoadBalancerPort is a required field
  6708  	LoadBalancerPort *int64 `type:"integer" required:"true"`
  6709  
  6710  	// The Amazon Resource Name (ARN) of the SSL certificate.
  6711  	//
  6712  	// SSLCertificateId is a required field
  6713  	SSLCertificateId *string `type:"string" required:"true"`
  6714  }
  6715  
  6716  // String returns the string representation.
  6717  //
  6718  // API parameter values that are decorated as "sensitive" in the API will not
  6719  // be included in the string output. The member name will be present, but the
  6720  // value will be replaced with "sensitive".
  6721  func (s SetLoadBalancerListenerSSLCertificateInput) String() string {
  6722  	return awsutil.Prettify(s)
  6723  }
  6724  
  6725  // GoString returns the string representation.
  6726  //
  6727  // API parameter values that are decorated as "sensitive" in the API will not
  6728  // be included in the string output. The member name will be present, but the
  6729  // value will be replaced with "sensitive".
  6730  func (s SetLoadBalancerListenerSSLCertificateInput) GoString() string {
  6731  	return s.String()
  6732  }
  6733  
  6734  // Validate inspects the fields of the type to determine if they are valid.
  6735  func (s *SetLoadBalancerListenerSSLCertificateInput) Validate() error {
  6736  	invalidParams := request.ErrInvalidParams{Context: "SetLoadBalancerListenerSSLCertificateInput"}
  6737  	if s.LoadBalancerName == nil {
  6738  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  6739  	}
  6740  	if s.LoadBalancerPort == nil {
  6741  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerPort"))
  6742  	}
  6743  	if s.SSLCertificateId == nil {
  6744  		invalidParams.Add(request.NewErrParamRequired("SSLCertificateId"))
  6745  	}
  6746  
  6747  	if invalidParams.Len() > 0 {
  6748  		return invalidParams
  6749  	}
  6750  	return nil
  6751  }
  6752  
  6753  // SetLoadBalancerName sets the LoadBalancerName field's value.
  6754  func (s *SetLoadBalancerListenerSSLCertificateInput) SetLoadBalancerName(v string) *SetLoadBalancerListenerSSLCertificateInput {
  6755  	s.LoadBalancerName = &v
  6756  	return s
  6757  }
  6758  
  6759  // SetLoadBalancerPort sets the LoadBalancerPort field's value.
  6760  func (s *SetLoadBalancerListenerSSLCertificateInput) SetLoadBalancerPort(v int64) *SetLoadBalancerListenerSSLCertificateInput {
  6761  	s.LoadBalancerPort = &v
  6762  	return s
  6763  }
  6764  
  6765  // SetSSLCertificateId sets the SSLCertificateId field's value.
  6766  func (s *SetLoadBalancerListenerSSLCertificateInput) SetSSLCertificateId(v string) *SetLoadBalancerListenerSSLCertificateInput {
  6767  	s.SSLCertificateId = &v
  6768  	return s
  6769  }
  6770  
  6771  // Contains the output of SetLoadBalancerListenerSSLCertificate.
  6772  type SetLoadBalancerListenerSSLCertificateOutput struct {
  6773  	_ struct{} `type:"structure"`
  6774  }
  6775  
  6776  // String returns the string representation.
  6777  //
  6778  // API parameter values that are decorated as "sensitive" in the API will not
  6779  // be included in the string output. The member name will be present, but the
  6780  // value will be replaced with "sensitive".
  6781  func (s SetLoadBalancerListenerSSLCertificateOutput) String() string {
  6782  	return awsutil.Prettify(s)
  6783  }
  6784  
  6785  // GoString returns the string representation.
  6786  //
  6787  // API parameter values that are decorated as "sensitive" in the API will not
  6788  // be included in the string output. The member name will be present, but the
  6789  // value will be replaced with "sensitive".
  6790  func (s SetLoadBalancerListenerSSLCertificateOutput) GoString() string {
  6791  	return s.String()
  6792  }
  6793  
  6794  // Contains the parameters for SetLoadBalancerPoliciesForBackendServer.
  6795  type SetLoadBalancerPoliciesForBackendServerInput struct {
  6796  	_ struct{} `type:"structure"`
  6797  
  6798  	// The port number associated with the EC2 instance.
  6799  	//
  6800  	// InstancePort is a required field
  6801  	InstancePort *int64 `type:"integer" required:"true"`
  6802  
  6803  	// The name of the load balancer.
  6804  	//
  6805  	// LoadBalancerName is a required field
  6806  	LoadBalancerName *string `type:"string" required:"true"`
  6807  
  6808  	// The names of the policies. If the list is empty, then all current polices
  6809  	// are removed from the EC2 instance.
  6810  	//
  6811  	// PolicyNames is a required field
  6812  	PolicyNames []*string `type:"list" required:"true"`
  6813  }
  6814  
  6815  // String returns the string representation.
  6816  //
  6817  // API parameter values that are decorated as "sensitive" in the API will not
  6818  // be included in the string output. The member name will be present, but the
  6819  // value will be replaced with "sensitive".
  6820  func (s SetLoadBalancerPoliciesForBackendServerInput) String() string {
  6821  	return awsutil.Prettify(s)
  6822  }
  6823  
  6824  // GoString returns the string representation.
  6825  //
  6826  // API parameter values that are decorated as "sensitive" in the API will not
  6827  // be included in the string output. The member name will be present, but the
  6828  // value will be replaced with "sensitive".
  6829  func (s SetLoadBalancerPoliciesForBackendServerInput) GoString() string {
  6830  	return s.String()
  6831  }
  6832  
  6833  // Validate inspects the fields of the type to determine if they are valid.
  6834  func (s *SetLoadBalancerPoliciesForBackendServerInput) Validate() error {
  6835  	invalidParams := request.ErrInvalidParams{Context: "SetLoadBalancerPoliciesForBackendServerInput"}
  6836  	if s.InstancePort == nil {
  6837  		invalidParams.Add(request.NewErrParamRequired("InstancePort"))
  6838  	}
  6839  	if s.LoadBalancerName == nil {
  6840  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  6841  	}
  6842  	if s.PolicyNames == nil {
  6843  		invalidParams.Add(request.NewErrParamRequired("PolicyNames"))
  6844  	}
  6845  
  6846  	if invalidParams.Len() > 0 {
  6847  		return invalidParams
  6848  	}
  6849  	return nil
  6850  }
  6851  
  6852  // SetInstancePort sets the InstancePort field's value.
  6853  func (s *SetLoadBalancerPoliciesForBackendServerInput) SetInstancePort(v int64) *SetLoadBalancerPoliciesForBackendServerInput {
  6854  	s.InstancePort = &v
  6855  	return s
  6856  }
  6857  
  6858  // SetLoadBalancerName sets the LoadBalancerName field's value.
  6859  func (s *SetLoadBalancerPoliciesForBackendServerInput) SetLoadBalancerName(v string) *SetLoadBalancerPoliciesForBackendServerInput {
  6860  	s.LoadBalancerName = &v
  6861  	return s
  6862  }
  6863  
  6864  // SetPolicyNames sets the PolicyNames field's value.
  6865  func (s *SetLoadBalancerPoliciesForBackendServerInput) SetPolicyNames(v []*string) *SetLoadBalancerPoliciesForBackendServerInput {
  6866  	s.PolicyNames = v
  6867  	return s
  6868  }
  6869  
  6870  // Contains the output of SetLoadBalancerPoliciesForBackendServer.
  6871  type SetLoadBalancerPoliciesForBackendServerOutput struct {
  6872  	_ struct{} `type:"structure"`
  6873  }
  6874  
  6875  // String returns the string representation.
  6876  //
  6877  // API parameter values that are decorated as "sensitive" in the API will not
  6878  // be included in the string output. The member name will be present, but the
  6879  // value will be replaced with "sensitive".
  6880  func (s SetLoadBalancerPoliciesForBackendServerOutput) String() string {
  6881  	return awsutil.Prettify(s)
  6882  }
  6883  
  6884  // GoString returns the string representation.
  6885  //
  6886  // API parameter values that are decorated as "sensitive" in the API will not
  6887  // be included in the string output. The member name will be present, but the
  6888  // value will be replaced with "sensitive".
  6889  func (s SetLoadBalancerPoliciesForBackendServerOutput) GoString() string {
  6890  	return s.String()
  6891  }
  6892  
  6893  // Contains the parameters for SetLoadBalancePoliciesOfListener.
  6894  type SetLoadBalancerPoliciesOfListenerInput struct {
  6895  	_ struct{} `type:"structure"`
  6896  
  6897  	// The name of the load balancer.
  6898  	//
  6899  	// LoadBalancerName is a required field
  6900  	LoadBalancerName *string `type:"string" required:"true"`
  6901  
  6902  	// The external port of the load balancer.
  6903  	//
  6904  	// LoadBalancerPort is a required field
  6905  	LoadBalancerPort *int64 `type:"integer" required:"true"`
  6906  
  6907  	// The names of the policies. This list must include all policies to be enabled.
  6908  	// If you omit a policy that is currently enabled, it is disabled. If the list
  6909  	// is empty, all current policies are disabled.
  6910  	//
  6911  	// PolicyNames is a required field
  6912  	PolicyNames []*string `type:"list" required:"true"`
  6913  }
  6914  
  6915  // String returns the string representation.
  6916  //
  6917  // API parameter values that are decorated as "sensitive" in the API will not
  6918  // be included in the string output. The member name will be present, but the
  6919  // value will be replaced with "sensitive".
  6920  func (s SetLoadBalancerPoliciesOfListenerInput) String() string {
  6921  	return awsutil.Prettify(s)
  6922  }
  6923  
  6924  // GoString returns the string representation.
  6925  //
  6926  // API parameter values that are decorated as "sensitive" in the API will not
  6927  // be included in the string output. The member name will be present, but the
  6928  // value will be replaced with "sensitive".
  6929  func (s SetLoadBalancerPoliciesOfListenerInput) GoString() string {
  6930  	return s.String()
  6931  }
  6932  
  6933  // Validate inspects the fields of the type to determine if they are valid.
  6934  func (s *SetLoadBalancerPoliciesOfListenerInput) Validate() error {
  6935  	invalidParams := request.ErrInvalidParams{Context: "SetLoadBalancerPoliciesOfListenerInput"}
  6936  	if s.LoadBalancerName == nil {
  6937  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerName"))
  6938  	}
  6939  	if s.LoadBalancerPort == nil {
  6940  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerPort"))
  6941  	}
  6942  	if s.PolicyNames == nil {
  6943  		invalidParams.Add(request.NewErrParamRequired("PolicyNames"))
  6944  	}
  6945  
  6946  	if invalidParams.Len() > 0 {
  6947  		return invalidParams
  6948  	}
  6949  	return nil
  6950  }
  6951  
  6952  // SetLoadBalancerName sets the LoadBalancerName field's value.
  6953  func (s *SetLoadBalancerPoliciesOfListenerInput) SetLoadBalancerName(v string) *SetLoadBalancerPoliciesOfListenerInput {
  6954  	s.LoadBalancerName = &v
  6955  	return s
  6956  }
  6957  
  6958  // SetLoadBalancerPort sets the LoadBalancerPort field's value.
  6959  func (s *SetLoadBalancerPoliciesOfListenerInput) SetLoadBalancerPort(v int64) *SetLoadBalancerPoliciesOfListenerInput {
  6960  	s.LoadBalancerPort = &v
  6961  	return s
  6962  }
  6963  
  6964  // SetPolicyNames sets the PolicyNames field's value.
  6965  func (s *SetLoadBalancerPoliciesOfListenerInput) SetPolicyNames(v []*string) *SetLoadBalancerPoliciesOfListenerInput {
  6966  	s.PolicyNames = v
  6967  	return s
  6968  }
  6969  
  6970  // Contains the output of SetLoadBalancePoliciesOfListener.
  6971  type SetLoadBalancerPoliciesOfListenerOutput struct {
  6972  	_ struct{} `type:"structure"`
  6973  }
  6974  
  6975  // String returns the string representation.
  6976  //
  6977  // API parameter values that are decorated as "sensitive" in the API will not
  6978  // be included in the string output. The member name will be present, but the
  6979  // value will be replaced with "sensitive".
  6980  func (s SetLoadBalancerPoliciesOfListenerOutput) String() string {
  6981  	return awsutil.Prettify(s)
  6982  }
  6983  
  6984  // GoString returns the string representation.
  6985  //
  6986  // API parameter values that are decorated as "sensitive" in the API will not
  6987  // be included in the string output. The member name will be present, but the
  6988  // value will be replaced with "sensitive".
  6989  func (s SetLoadBalancerPoliciesOfListenerOutput) GoString() string {
  6990  	return s.String()
  6991  }
  6992  
  6993  // Information about a source security group.
  6994  type SourceSecurityGroup struct {
  6995  	_ struct{} `type:"structure"`
  6996  
  6997  	// The name of the security group.
  6998  	GroupName *string `type:"string"`
  6999  
  7000  	// The owner of the security group.
  7001  	OwnerAlias *string `type:"string"`
  7002  }
  7003  
  7004  // String returns the string representation.
  7005  //
  7006  // API parameter values that are decorated as "sensitive" in the API will not
  7007  // be included in the string output. The member name will be present, but the
  7008  // value will be replaced with "sensitive".
  7009  func (s SourceSecurityGroup) String() string {
  7010  	return awsutil.Prettify(s)
  7011  }
  7012  
  7013  // GoString returns the string representation.
  7014  //
  7015  // API parameter values that are decorated as "sensitive" in the API will not
  7016  // be included in the string output. The member name will be present, but the
  7017  // value will be replaced with "sensitive".
  7018  func (s SourceSecurityGroup) GoString() string {
  7019  	return s.String()
  7020  }
  7021  
  7022  // SetGroupName sets the GroupName field's value.
  7023  func (s *SourceSecurityGroup) SetGroupName(v string) *SourceSecurityGroup {
  7024  	s.GroupName = &v
  7025  	return s
  7026  }
  7027  
  7028  // SetOwnerAlias sets the OwnerAlias field's value.
  7029  func (s *SourceSecurityGroup) SetOwnerAlias(v string) *SourceSecurityGroup {
  7030  	s.OwnerAlias = &v
  7031  	return s
  7032  }
  7033  
  7034  // Information about a tag.
  7035  type Tag struct {
  7036  	_ struct{} `type:"structure"`
  7037  
  7038  	// The key of the tag.
  7039  	//
  7040  	// Key is a required field
  7041  	Key *string `min:"1" type:"string" required:"true"`
  7042  
  7043  	// The value of the tag.
  7044  	Value *string `type:"string"`
  7045  }
  7046  
  7047  // String returns the string representation.
  7048  //
  7049  // API parameter values that are decorated as "sensitive" in the API will not
  7050  // be included in the string output. The member name will be present, but the
  7051  // value will be replaced with "sensitive".
  7052  func (s Tag) String() string {
  7053  	return awsutil.Prettify(s)
  7054  }
  7055  
  7056  // GoString returns the string representation.
  7057  //
  7058  // API parameter values that are decorated as "sensitive" in the API will not
  7059  // be included in the string output. The member name will be present, but the
  7060  // value will be replaced with "sensitive".
  7061  func (s Tag) GoString() string {
  7062  	return s.String()
  7063  }
  7064  
  7065  // Validate inspects the fields of the type to determine if they are valid.
  7066  func (s *Tag) Validate() error {
  7067  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
  7068  	if s.Key == nil {
  7069  		invalidParams.Add(request.NewErrParamRequired("Key"))
  7070  	}
  7071  	if s.Key != nil && len(*s.Key) < 1 {
  7072  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  7073  	}
  7074  
  7075  	if invalidParams.Len() > 0 {
  7076  		return invalidParams
  7077  	}
  7078  	return nil
  7079  }
  7080  
  7081  // SetKey sets the Key field's value.
  7082  func (s *Tag) SetKey(v string) *Tag {
  7083  	s.Key = &v
  7084  	return s
  7085  }
  7086  
  7087  // SetValue sets the Value field's value.
  7088  func (s *Tag) SetValue(v string) *Tag {
  7089  	s.Value = &v
  7090  	return s
  7091  }
  7092  
  7093  // The tags associated with a load balancer.
  7094  type TagDescription struct {
  7095  	_ struct{} `type:"structure"`
  7096  
  7097  	// The name of the load balancer.
  7098  	LoadBalancerName *string `type:"string"`
  7099  
  7100  	// The tags.
  7101  	Tags []*Tag `min:"1" type:"list"`
  7102  }
  7103  
  7104  // String returns the string representation.
  7105  //
  7106  // API parameter values that are decorated as "sensitive" in the API will not
  7107  // be included in the string output. The member name will be present, but the
  7108  // value will be replaced with "sensitive".
  7109  func (s TagDescription) String() string {
  7110  	return awsutil.Prettify(s)
  7111  }
  7112  
  7113  // GoString returns the string representation.
  7114  //
  7115  // API parameter values that are decorated as "sensitive" in the API will not
  7116  // be included in the string output. The member name will be present, but the
  7117  // value will be replaced with "sensitive".
  7118  func (s TagDescription) GoString() string {
  7119  	return s.String()
  7120  }
  7121  
  7122  // SetLoadBalancerName sets the LoadBalancerName field's value.
  7123  func (s *TagDescription) SetLoadBalancerName(v string) *TagDescription {
  7124  	s.LoadBalancerName = &v
  7125  	return s
  7126  }
  7127  
  7128  // SetTags sets the Tags field's value.
  7129  func (s *TagDescription) SetTags(v []*Tag) *TagDescription {
  7130  	s.Tags = v
  7131  	return s
  7132  }
  7133  
  7134  // The key of a tag.
  7135  type TagKeyOnly struct {
  7136  	_ struct{} `type:"structure"`
  7137  
  7138  	// The name of the key.
  7139  	Key *string `min:"1" type:"string"`
  7140  }
  7141  
  7142  // String returns the string representation.
  7143  //
  7144  // API parameter values that are decorated as "sensitive" in the API will not
  7145  // be included in the string output. The member name will be present, but the
  7146  // value will be replaced with "sensitive".
  7147  func (s TagKeyOnly) String() string {
  7148  	return awsutil.Prettify(s)
  7149  }
  7150  
  7151  // GoString returns the string representation.
  7152  //
  7153  // API parameter values that are decorated as "sensitive" in the API will not
  7154  // be included in the string output. The member name will be present, but the
  7155  // value will be replaced with "sensitive".
  7156  func (s TagKeyOnly) GoString() string {
  7157  	return s.String()
  7158  }
  7159  
  7160  // Validate inspects the fields of the type to determine if they are valid.
  7161  func (s *TagKeyOnly) Validate() error {
  7162  	invalidParams := request.ErrInvalidParams{Context: "TagKeyOnly"}
  7163  	if s.Key != nil && len(*s.Key) < 1 {
  7164  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  7165  	}
  7166  
  7167  	if invalidParams.Len() > 0 {
  7168  		return invalidParams
  7169  	}
  7170  	return nil
  7171  }
  7172  
  7173  // SetKey sets the Key field's value.
  7174  func (s *TagKeyOnly) SetKey(v string) *TagKeyOnly {
  7175  	s.Key = &v
  7176  	return s
  7177  }